diff --git a/bfps/NSVorticityEquation.py b/bfps/NSVorticityEquation.py index 36ccfbc349a84986b33b84c7fa50cb42d4937b4b..b175845e6be9fd3e061b90456cc9fec249ac5f13 100644 --- a/bfps/NSVorticityEquation.py +++ b/bfps/NSVorticityEquation.py @@ -88,7 +88,6 @@ class NSVorticityEquation(_fluid_particle_base): //begincpp if (myrank == 0 && iteration == 0) { - DEBUG_MSG("about to store kspace\\n"); TIMEZONE("fluid_base::store_kspace"); hsize_t dims[4]; hid_t space, dset; @@ -119,7 +118,6 @@ class NSVorticityEquation(_fluid_particle_base): H5Dwrite(dset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, &fs->kk->dk); H5Dclose(dset); //H5Fclose(parameter_file); - DEBUG_MSG("finished storing kspace\\n"); } //endcpp """ @@ -150,7 +148,6 @@ class NSVorticityEquation(_fluid_particle_base): self.fluid_includes += '#include "fftw_tools.hpp"\n' self.stat_src += """ //begincpp - DEBUG_MSG("inside stat src\\n"); hid_t stat_group; if (myrank == 0) stat_group = H5Gopen(stat_file, "statistics", H5P_DEFAULT); @@ -162,22 +159,17 @@ class NSVorticityEquation(_fluid_particle_base): "velocity", fs->iteration / niter_stat, max_velocity_estimate/sqrt(3)); - DEBUG_MSG("after stats for %d\\n", fs->iteration); //endcpp """ self.stat_src += """ //begincpp *tmp_vec_field = fs->cvorticity->get_cdata(); - DEBUG_MSG("%g %g\\n", - tmp_vec_field->cval(tmp_vec_field->get_cindex(2, 1, 1), 0, 0), - tmp_vec_field->cval(tmp_vec_field->get_cindex(2, 1, 1), 0, 1)); tmp_vec_field->compute_stats( fs->kk, stat_group, "vorticity", fs->iteration / niter_stat, max_vorticity_estimate/sqrt(3)); - DEBUG_MSG("after vort stats for %d\\n", fs->iteration); //endcpp """ self.stat_src += """ @@ -270,8 +262,7 @@ class NSVorticityEquation(_fluid_particle_base): //endcpp """.format(self.C_dtype, self.fftw_plan_rigor, field_H5T) self.fluid_start += self.store_kspace - self.fluid_loop = ('fs->step(dt);\n' + - 'DEBUG_MSG("this is step %d\\n", fs->iteration);\n') + self.fluid_loop = 'fs->step(dt);\n' self.fluid_loop += ('if (fs->iteration % niter_out == 0)\n{\n' + self.fluid_output + '\n}\n') self.fluid_end = ('if (fs->iteration % niter_out != 0)\n{\n' + @@ -425,17 +416,17 @@ class NSVorticityEquation(_fluid_particle_base): style = {'dashes' : (None, None)}): self.style.update(style) return None - def read_cfield( + def convert_complex_from_binary( self, field_name = 'vorticity', - iteration = 0): + iteration = 0, + file_name = None): """read the Fourier representation of a vector field. Read the binary file containing iteration ``iteration`` of the - field ``field_name``, and return it as a properly shaped - ``numpy.memmap`` object. + field ``field_name``, and write it in a ``.h5`` file. """ - return np.memmap( + data = np.memmap( os.path.join(self.work_dir, self.simname + '_{0}_i{1:0>5x}'.format('c' + field_name, iteration)), dtype = self.ctype, @@ -444,6 +435,13 @@ class NSVorticityEquation(_fluid_particle_base): self.parameters['nz'], self.parameters['nx']//2+1, 3)) + if type(file_name) == type(None): + file_name = self.simname + '_{0}_i{1:0>5x}.h5'.format('c' + field_name, iteration) + file_name = os.path.join(self.work_dir, file_name) + f = h5py.File(file_name, 'a') + f[field_name + '/complex/{0}'.format(iteration)] = data + f.close() + return None def write_par( self, iter0 = 0): @@ -589,7 +587,11 @@ class NSVorticityEquation(_fluid_particle_base): src_file = os.path.join( os.path.realpath(opt.src_work_dir), opt.src_simname + '_cvorticity_i{0:0>5x}.h5'.format(opt.src_iteration)) - os.symlink(src_file, init_condition_file) + f = h5py.File(init_condition_file, 'w') + f['vorticity/complex/{0}'.format(0)] = h5py.ExternalLink( + src_file, + 'vorticity/complex/{0}'.format(opt.src_iteration)) + f.close() else: data = self.generate_vector_field( write_to_file = False,