diff --git a/bfps/DNS.py b/bfps/DNS.py index e6ef006ad5b8251dd7bc893512f240aeb70714ca..e6ace758a1f6efb240cfa0655cc661a83a1ab6e2 100644 --- a/bfps/DNS.py +++ b/bfps/DNS.py @@ -148,6 +148,11 @@ class DNS(_code): self.NSVEp_extra_parameters['tracers0_integration_steps'] = int(4) self.NSVEp_extra_parameters['tracers0_neighbours'] = int(1) self.NSVEp_extra_parameters['tracers0_smoothness'] = int(1) + self.NSVEp_extra_parameters['tracers0_enable_p2p'] = int(0) + self.NSVEp_extra_parameters['tracers0_enable_inner'] = int(0) + self.NSVEp_extra_parameters['tracers0_enable_vorticity_omega'] = int(0) + self.NSVEp_extra_parameters['tracers0_cutoff'] = float(1) + self.NSVEp_extra_parameters['tracers0_inner_v0'] = float(1) #self.extra_parameters = {} #for key in ['NSVE', 'NSVE_no_output', 'NSVEparticles', 'NSVEparticles_no_output', 'NSVEcomplex_particles']: # self.extra_parameters[key] = {} diff --git a/bfps/cpp/full_code/NSVE_no_output.hpp b/bfps/cpp/full_code/NSVE_no_output.hpp index 0047a45a02dd58ae8934f78fdd8d804424ae817c..b98f89f6de95b806128a0b9d84dc322602234f71 100644 --- a/bfps/cpp/full_code/NSVE_no_output.hpp +++ b/bfps/cpp/full_code/NSVE_no_output.hpp @@ -18,7 +18,6 @@ class NSVE_no_output: public NSVE<rnumber> { return 0; } - int read_parameters(void); }; #endif//NSVE_NO_OUTPUT_HPP diff --git a/bfps/cpp/full_code/NSVEcomplex_particles.cpp b/bfps/cpp/full_code/NSVEcomplex_particles.cpp index 93d0edc17e24925b25513dd3a4832f687255329a..1e138711b19c9bf686a4cb6dcfe1c79f5c8f59fe 100644 --- a/bfps/cpp/full_code/NSVEcomplex_particles.cpp +++ b/bfps/cpp/full_code/NSVEcomplex_particles.cpp @@ -184,6 +184,29 @@ int NSVEcomplex_particles<rnumber>::do_stats() this->ps->getLocalNbParticles(), this->ps->get_step_idx()-1); + // deallocate temporary data array + // TODO: is it required/safe to call the release method here? + //pdata.release(); + + return EXIT_SUCCESS; +} + +template <typename rnumber> +int NSVEcomplex_particles<rnumber>::read_parameters(void) +{ + this->NSVE<rnumber>::read_parameters(); + hid_t parameter_file = H5Fopen((this->simname + ".h5").c_str(), H5F_ACC_RDONLY, H5P_DEFAULT); + this->niter_part = hdf5_tools::read_value<int>(parameter_file, "parameters/niter_part"); + this->nparticles = hdf5_tools::read_value<int>(parameter_file, "parameters/nparticles"); + this->tracers0_integration_steps = hdf5_tools::read_value<int>(parameter_file, "parameters/tracers0_integration_steps"); + this->tracers0_neighbours = hdf5_tools::read_value<int>(parameter_file, "parameters/tracers0_neighbours"); + this->tracers0_smoothness = hdf5_tools::read_value<int>(parameter_file, "parameters/tracers0_smoothness"); + this->enable_p2p = hdf5_tools::read_value<int>(parameter_file, "parameters/tracers0_enable_p2p"); + this->enable_inner = hdf5_tools::read_value<int>(parameter_file, "parameters/tracers0_enable_inner"); + this->enable_vorticity_omega = hdf5_tools::read_value<int>(parameter_file, "parameters/tracers0_enable_vorticity_omega"); + this->cutoff = hdf5_tools::read_value<double>(parameter_file, "parameters/tracers0_cutoff"); + this->inner_v0 = hdf5_tools::read_value<double>(parameter_file, "parameters/tracers0_inner_v0"); + H5Fclose(parameter_file); return EXIT_SUCCESS; } diff --git a/bfps/cpp/full_code/NSVEparticles_no_output.hpp b/bfps/cpp/full_code/NSVEparticles_no_output.hpp index 264fd75ac9b0628aff167d018d888030b7029a35..d3d40139ca80b424d314baadbec5ceb0153061a3 100644 --- a/bfps/cpp/full_code/NSVEparticles_no_output.hpp +++ b/bfps/cpp/full_code/NSVEparticles_no_output.hpp @@ -18,7 +18,6 @@ class NSVEparticles_no_output: public NSVEparticles<rnumber> { return 0; } - int read_parameters(void); }; #endif//NSVEPARTICLES_NO_OUTPUT_HPP diff --git a/bfps/cpp/full_code/postprocess.cpp b/bfps/cpp/full_code/postprocess.cpp index cb04a030123f3f5ecaa501ca11b22511d1a8ca84..430d87a55fdec51ca145e6ee41d6ed7b3ed73a98 100644 --- a/bfps/cpp/full_code/postprocess.cpp +++ b/bfps/cpp/full_code/postprocess.cpp @@ -33,41 +33,19 @@ int postprocess::main_loop(void) int postprocess::read_parameters() { - hid_t parameter_file; - char fname[256]; - sprintf(fname, "%s.h5", this->simname.c_str()); - parameter_file = H5Fopen(fname, H5F_ACC_RDONLY, H5P_DEFAULT); - this->dealias_type = hdf5_tools::read_value<int>( - parameter_file, "/parameters/dealias_type"); - this->dkx = hdf5_tools::read_value<double>( - parameter_file, "/parameters/dkx"); - this->dky = hdf5_tools::read_value<double>( - parameter_file, "/parameters/dky"); - this->dkz = hdf5_tools::read_value<double>( - parameter_file, "/parameters/dkz"); - this->dt = hdf5_tools::read_value<double>( - parameter_file, "/parameters/dt"); - this->famplitude = hdf5_tools::read_value<double>( - parameter_file, "/parameters/famplitude"); - this->friction_coefficient = hdf5_tools::read_value<double>( - parameter_file, "/parameters/friction_coefficient"); - this->fk0 = hdf5_tools::read_value<double>( - parameter_file, "/parameters/fk0"); - this->fk1 = hdf5_tools::read_value<double>( - parameter_file, "/parameters/fk1"); - this->fmode = hdf5_tools::read_value<int>( - parameter_file, "/parameters/fmode"); - sprintf(this->forcing_type, "%s", - hdf5_tools::read_string(parameter_file, "/parameters/forcing_type").c_str()); - this->nu = hdf5_tools::read_value<double>( - parameter_file, "/parameters/nu"); - this->nx = hdf5_tools::read_value<int>( - parameter_file, "/parameters/nx"); - this->ny = hdf5_tools::read_value<int>( - parameter_file, "/parameters/ny"); - this->nz = hdf5_tools::read_value<int>( - parameter_file, "/parameters/nz"); + this->code_base::read_parameters(); + hid_t parameter_file = H5Fopen((this->simname + ".h5").c_str(), H5F_ACC_RDONLY, H5P_DEFAULT); + this->nu = hdf5_tools::read_value<double>(parameter_file, "parameters/nu"); + this->dt = hdf5_tools::read_value<double>(parameter_file, "parameters/dt"); + this->fmode = hdf5_tools::read_value<int>(parameter_file, "parameters/fmode"); + this->famplitude = hdf5_tools::read_value<double>(parameter_file, "parameters/famplitude"); + this->friction_coefficient = hdf5_tools::read_value<double>(parameter_file, "parameters/friction_coefficient"); + this->fk0 = hdf5_tools::read_value<double>(parameter_file, "parameters/fk0"); + this->fk1 = hdf5_tools::read_value<double>(parameter_file, "parameters/fk1"); + this->energy = hdf5_tools::read_value<double>(parameter_file, "parameters/energy"); + std::string tmp = hdf5_tools::read_string(parameter_file, "parameters/forcing_type"); + snprintf(this->forcing_type, 511, "%s", tmp.c_str()); H5Fclose(parameter_file); - return 0; + return EXIT_SUCCESS; } diff --git a/bfps/cpp/full_code/postprocess.hpp b/bfps/cpp/full_code/postprocess.hpp index 660e561a1ddba6b355ee5ecf49c5cea1b7153eff..65e6eadd1fd05615eb69cb7d8ca1754abd1b7e42 100644 --- a/bfps/cpp/full_code/postprocess.hpp +++ b/bfps/cpp/full_code/postprocess.hpp @@ -46,6 +46,7 @@ class postprocess: public code_base double friction_coefficient; double fk0; double fk1; + double energy; int fmode; char forcing_type[512]; double nu; diff --git a/bfps/cpp/full_code/test.cpp b/bfps/cpp/full_code/test.cpp index 9c2e4e6744b4ecd8945615da730c9dcd14382e78..e382efb45238b621c0b9086d0619d46a9078c61b 100644 --- a/bfps/cpp/full_code/test.cpp +++ b/bfps/cpp/full_code/test.cpp @@ -18,36 +18,3 @@ int test::main_loop(void) return EXIT_SUCCESS; } - -int test::read_parameters() -{ - hid_t parameter_file; - hid_t dset; - char fname[256]; - sprintf(fname, "%s.h5", this->simname.c_str()); - parameter_file = H5Fopen(fname, H5F_ACC_RDONLY, H5P_DEFAULT); - dset = H5Dopen(parameter_file, "/parameters/dealias_type", H5P_DEFAULT); - H5Dread(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &this->dealias_type); - H5Dclose(dset); - dset = H5Dopen(parameter_file, "/parameters/dkx", H5P_DEFAULT); - H5Dread(dset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, &this->dkx); - H5Dclose(dset); - dset = H5Dopen(parameter_file, "/parameters/dky", H5P_DEFAULT); - H5Dread(dset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, &this->dky); - H5Dclose(dset); - dset = H5Dopen(parameter_file, "/parameters/dkz", H5P_DEFAULT); - H5Dread(dset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, &this->dkz); - H5Dclose(dset); - dset = H5Dopen(parameter_file, "/parameters/nx", H5P_DEFAULT); - H5Dread(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &this->nx); - H5Dclose(dset); - dset = H5Dopen(parameter_file, "/parameters/ny", H5P_DEFAULT); - H5Dread(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &this->ny); - H5Dclose(dset); - dset = H5Dopen(parameter_file, "/parameters/nz", H5P_DEFAULT); - H5Dread(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &this->nz); - H5Dclose(dset); - H5Fclose(parameter_file); - return 0; -} - diff --git a/bfps/cpp/full_code/test.hpp b/bfps/cpp/full_code/test.hpp index 134a01512b3fd836a8ac4d40068b3954752c4844..96ddaf8104f1dd3d050b4acf16a68dbcd539b290 100644 --- a/bfps/cpp/full_code/test.hpp +++ b/bfps/cpp/full_code/test.hpp @@ -56,7 +56,6 @@ class test: public code_base virtual int finalize(void) = 0; int main_loop(void); - virtual int read_parameters(void); }; #endif//TEST_HPP