Skip to content
Snippets Groups Projects
Commit 6da89c47 authored by Chichi Lalescu's avatar Chichi Lalescu
Browse files

partial fix for convergence test for double

i.e. file sizes in resize now make sense
parent a78310d6
Branches
Tags
No related merge requests found
......@@ -41,7 +41,7 @@ int copy_complex_array(
min_fast_dim =
(fi->sizes[2] > fo->sizes[2]) ?
fo->sizes[2] : fi->sizes[2];
MPI_Datatype MPI_CNUM = (sizeof(rnumber) == 4) ? MPI_COMPLEX : MPI_COMPLEX16;
MPI_Datatype MPI_CNUM = (sizeof(rnumber) == 4) ? MPI_COMPLEX : MPI_C_DOUBLE_COMPLEX;
// clean up destination, in case we're padding with zeros
// (even if only for one dimension)
......@@ -164,7 +164,7 @@ int get_descriptors_3D(
field_descriptor<rnumber> **fc)
{
MPI_Datatype MPI_RNUM = (sizeof(rnumber) == 4) ? MPI_FLOAT : MPI_DOUBLE;
MPI_Datatype MPI_CNUM = (sizeof(rnumber) == 4) ? MPI_COMPLEX : MPI_COMPLEX16;
MPI_Datatype MPI_CNUM = (sizeof(rnumber) == 4) ? MPI_COMPLEX : MPI_C_DOUBLE_COMPLEX;
int ntmp[3];
ntmp[0] = n0;
ntmp[1] = n1;
......
......@@ -101,13 +101,6 @@ field_descriptor<rnumber>::field_descriptor(
tsubsizes[ndims-1] *= 2;
tstarts[ndims-1] *= 2;
}
if (this->mpi_dtype == MPI_DOUBLE ||
this->mpi_dtype == MPI_C_DOUBLE_COMPLEX)
{
tsizes[ndims-1] *= 2;
tsubsizes[ndims-1] *= 2;
tstarts[ndims-1] *= 2;
}
int local_zero_array[this->nprocs], zero_array[this->nprocs];
for (int i=0; i<this->nprocs; i++)
local_zero_array[i] = 0;
......
......@@ -32,12 +32,12 @@ class fluid_converter(bfps.fluid_base.fluid_particle_base):
name = 'fluid_converter',
work_dir = './',
simname = 'test',
dtype = np.float32):
fluid_precision = 'single'):
super(fluid_converter, self).__init__(
name = name,
work_dir = work_dir,
simname = simname,
dtype = dtype)
dtype = fluid_precision)
self.parameters['write_rvelocity'] = 1
self.parameters['write_rvorticity'] = 1
self.parameters['fluid_name'] = 'test'
......@@ -55,13 +55,13 @@ class fluid_converter(bfps.fluid_base.fluid_particle_base):
self.fluid_definitions += """
//begincpp
void do_conversion(fluid_solver<{0}> *bla)
{
{{
bla->read('v', 'c');
if (write_rvelocity)
bla->write('u', 'r');
if (write_rvorticity)
bla->write('v', 'r');
}
}}
//endcpp
""".format(C_dtype)
self.fluid_start += """
......
......@@ -304,7 +304,7 @@ def convergence_test(opt):
vec = c2.read_rfield(iteration = c2.parameters['niter_todo'], field = field_name)
plot_face_contours(a, .5*np.sum(vec**2, axis = 3), levels = levels)
a.set_title(c2.style['label'])
fig.savefig(field_name + '_contour.pdf', format = 'pdf')
fig.savefig(field_name + '_contour_' + opt.precision + '.pdf', format = 'pdf')
full_face_contours_fig()
full_face_contours_fig(field_name = 'vorticity')
# plot spectra
......@@ -320,7 +320,7 @@ def convergence_test(opt):
plot_spec(fig.add_subplot(131), c0)
plot_spec(fig.add_subplot(132), c1)
plot_spec(fig.add_subplot(133), c2)
fig.savefig('spectra.pdf', format = 'pdf')
fig.savefig('spectra_' + opt.precision + '.pdf', format = 'pdf')
# plot energy and enstrophy
fig = plt.figure(figsize = (12, 12))
a = fig.add_subplot(221)
......@@ -350,7 +350,7 @@ def convergence_test(opt):
(2*np.pi / c.parameters['nx'])),
dashes = c.style['dashes'])
a.set_title('$\\frac{\\Delta t \\| u \\|_\infty}{\\Delta x}$')
fig.savefig('convergence_stats.pdf', format = 'pdf')
fig.savefig('convergence_stats_' + opt.precision + '.pdf', format = 'pdf')
## particle test:
# compute distance between final positions for species 1
def get_traj_error(species):
......@@ -375,7 +375,7 @@ def convergence_test(opt):
a.set_xscale('log')
a.set_yscale('log')
a.legend(loc = 'best')
fig.savefig('traj_evdt.pdf', format = 'pdf')
fig.savefig('traj_evdt_' + opt.precision + '.pdf', format = 'pdf')
# plot all trajectories... just in case
for c in [c0, c1, c2]:
fig = plt.figure(figsize=(12,12))
......@@ -385,7 +385,7 @@ def convergence_test(opt):
a.plot(c.trajectories[i][:, t, 0],
c.trajectories[i][:, t, 1],
c.trajectories[i][:, t, 2])
fig.savefig('traj_N{0:0>3x}.pdf'.format(c.parameters['nx'], format = 'pdf'))
fig.savefig('traj_N{0:0>3x}_{1}.pdf'.format(c.parameters['nx'], opt.precision), format = 'pdf')
return None
def plain(opt):
......@@ -437,7 +437,7 @@ def plain(opt):
dashes = c.style['dashes'],
color = c.style['color'])
a.set_title('$\\frac{\\Delta t \\| u \\|_\infty}{\\Delta x}$')
fig.savefig('plain_stats.pdf', format = 'pdf')
fig.savefig('plain_stats_{0}.pdf'.format(opt.precision), format = 'pdf')
fig = plt.figure(figsize = (12, 12))
a = fig.add_subplot(221)
......@@ -461,7 +461,7 @@ def plain(opt):
a.plot(c0.statistics['t'],
data0 - data1)
a.set_title('$\\frac{\\Delta t \\| u \\|_\infty}{\\Delta x}$')
fig.savefig('plain_stat_diffs.pdf', format = 'pdf')
fig.savefig('plain_stat_diffs_{0}.pdf'.format(opt.precision), format = 'pdf')
# plot trajectory differences
for i in range(c0.particle_species):
......@@ -470,7 +470,7 @@ def plain(opt):
a = fig.add_subplot(131 + j)
for t in range(c0.parameters['nparticles']):
a.plot(c0.trajectories[i][:, t, j] - c1.trajectories[i][:, t, j])
fig.savefig('traj_s{0}.pdf'.format(i, format = 'pdf'))
fig.savefig('traj_s{0}_{1}.pdf'.format(i, opt.precision), format = 'pdf')
return None
if __name__ == '__main__':
......
......@@ -9,5 +9,6 @@ changedir =
{envtmpdir}
commands =
cp {toxinidir}/test.py {envtmpdir}
python test.py -n 32 --run --initialize --ncpu 2 --convergence --nsteps 16
python test.py -n 32 --run --initialize --ncpu 2 --convergence --nsteps 16 --precision single --wd "data/single"
python test.py -n 32 --run --initialize --ncpu 2 --convergence --nsteps 16 --precision double --wd "data/double"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment