frozen_fields = True, fluid_precision = 'single', use_fftw_wisdom = False): super(FrozenFieldParticles, self).__init__( name = name, work_dir = work_dir, simname = simname, fluid_precision = fluid_precision, frozen_fields = True, use_fftw_wisdom = use_fftw_wisdom) return None from test_convergence import convergence_test if __name__ == '__main__': opt = parser.parse_args( ['-n', '16', '--run', '--initialize', '--ncpu', '2', '--nparticles', '1000', '--niter_todo', '32', '--precision', 'single', '--wd', 'data/single'] + sys.argv[1:]) convergence_test( opt, launch, code_class = FrozenFieldParticles)
'-n', '16', '--run', '--initialize', '--frozen', '--ncpu', '2', '--nparticles', '128', '--niter_todo', '16', '--precision', 'single', '--wd', 'data/single' ] + sys.argv[1:]) if opt.precision == 'single': dtype = np.complex64 elif opt.precision == 'double': dtype = np.complex128 Kdata = generate_ABC_flow(parameters={ 'nx': opt.n, 'ny': opt.n, 'nz': opt.n }, dtype=dtype) c0, c1, c2 = convergence_test(opt, launch, code_class=FrozenFieldParticles, init_vorticity=Kdata) ef = err_finder([c0, c1, c2]) fig = plt.figure(figsize=(6, 6)) a = fig.add_subplot(111) for s in range(1, 5): ef.get_AB_err(s) errlist = [ np.average( np.abs(ef.clist[i].get_particle_file()[ 'tracers{0}/state'.format(s)].value[-1, :, :3] - ef.xAB[i][-1].T)) for i in range(len(ef.clist)) ] a.plot(ef.dtlist, errlist, label='directAB{0}'.format(s), marker='.') a.plot(ef.dtlist,
'--niter_todo', '16', '--precision', 'single', '--wd', 'data/single'] + sys.argv[1:]) if opt.precision == 'single': dtype = np.complex64 elif opt.precision == 'double': dtype = np.complex128 Kdata = generate_ABC_flow( parameters = {'nx': opt.n, 'ny': opt.n, 'nz': opt.n}, dtype = dtype) c0, c1, c2 = convergence_test( opt, launch, code_class = FrozenFieldParticles, init_vorticity = Kdata) ef = err_finder([c0, c1, c2]) fig = plt.figure(figsize=(6,6)) a = fig.add_subplot(111) for s in range(1, 5): ef.get_AB_err(s) errlist = [np.average(np.abs(ef.clist[i].get_particle_file()['tracers{0}/state'.format(s)].value[-1, :, :3] - ef.xAB[i][-1].T)) for i in range(len(ef.clist))] a.plot(ef.dtlist, errlist, label = 'directAB{0}'.format(s), marker = '.') a.plot(ef.dtlist, ef.get_spec_error(ef.ctraj[s]), label = 'specAB{0}'.format(s),
from base import * class FrozenFieldParticles(bfps.NavierStokes): def __init__(self, name='FrozenFieldParticles', work_dir='./', simname='test', frozen_fields=True, fluid_precision='single', use_fftw_wisdom=False): super(FrozenFieldParticles, self).__init__(name=name, work_dir=work_dir, simname=simname, fluid_precision=fluid_precision, frozen_fields=True, use_fftw_wisdom=use_fftw_wisdom) return None from test_convergence import convergence_test if __name__ == '__main__': opt = parser.parse_args([ '-n', '16', '--run', '--initialize', '--ncpu', '2', '--nparticles', '1000', '--niter_todo', '32', '--precision', 'single', '--wd', 'data/single' ] + sys.argv[1:]) convergence_test(opt, launch, code_class=FrozenFieldParticles)