Skip to content
Snippets Groups Projects
Commit 7d118776 authored by Cristian Lalescu's avatar Cristian Lalescu
Browse files

update particle test

parent 36179d1d
No related branches found
No related tags found
No related merge requests found
......@@ -40,51 +40,25 @@ class FrozenFieldParticles(bfps.NavierStokes):
work_dir = work_dir,
simname = simname,
fluid_precision = fluid_precision,
frozen_fields = frozen_fields,
frozen_fields = True,
use_fftw_wisdom = use_fftw_wisdom)
return None
def fill_up_fluid_code(self):
self.fluid_includes += '#include <cstring>\n'
self.fluid_variables += 'fluid_solver<{0}> *fs;\n'.format(self.C_dtype)
self.write_fluid_stats()
self.fluid_start += """
//begincpp
char fname[512];
fs = new fluid_solver<{0}>(
simname,
nx, ny, nz,
dkx, dky, dkz);
fs->nu = nu;
fs->fmode = fmode;
fs->famplitude = famplitude;
fs->fk0 = fk0;
fs->fk1 = fk1;
strncpy(fs->forcing_type, forcing_type, 128);
fs->iteration = iteration;
fs->read('v', 'c');
//endcpp
""".format(self.C_dtype)
self.fluid_loop += """
//begincpp
fs->iteration++;
if (fs->iteration % niter_out == 0)
fs->write('v', 'c');
//endcpp
"""
self.fluid_end += """
//begincpp
if (fs->iteration % niter_out != 0)
fs->write('v', 'c');
delete fs;
//endcpp
"""
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(
parser.parse_args(),
opt,
launch,
code_class = FrozenFieldParticles)
......@@ -110,7 +110,7 @@ class err_finder:
self.xcRK = []
for c in self.clist:
self.xcRK.append(cRK(
c.trajectories[1][0].T,
c.get_particle_file()['tracers1/state'][0].T,
c.parameters['dt'],
c.parameters['niter_todo'],
ABC_flow))
......@@ -118,14 +118,14 @@ class err_finder:
for c in self.clist]
self.ctraj = [None]
for i in range(1, self.clist[0].particle_species):
self.ctraj.append([self.clist[j].trajectories[i].transpose((0, 2, 1))
self.ctraj.append([self.clist[j].get_particle_file()['tracers{0}/state'.format(i)].value.transpose((0, 2, 1))
for j in range(len(self.clist))])
return None
def get_AB_err(self, nsubsteps = 1):
self.xAB = []
for c in self.clist:
self.xAB.append(AdamsBashforth(
c.trajectories[1][0].T,
c.get_particle_file()['tracers1/state'][0].T,
c.parameters['dt'],
c.parameters['niter_todo'],
ABC_flow,
......@@ -178,7 +178,7 @@ if __name__ == '__main__':
a = fig.add_subplot(111)
for s in range(1, 5):
ef.get_AB_err(s)
errlist = [np.average(np.abs(ef.clist[i].trajectories[s][-1, :, :3] - ef.xAB[i][-1].T))
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),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment