コード例 #1
0
            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)

コード例 #2
0
        '-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,
コード例 #3
0
ファイル: test_particles.py プロジェクト: chichilalescu/bfps
             '--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),
コード例 #4
0
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)