TURTLE
|
Defines basic timer and method to check stopping condition. More...
#include <code_base.hpp>
Public Member Functions | |
code_base (const MPI_Comm COMMUNICATOR, const std::string &simulation_name) | |
virtual | ~code_base () noexcept(false) |
int | check_stopping_condition (void) |
int | start_simple_timer (void) |
int | print_simple_timer (const std::string operation_name) |
MPI_Comm | get_communicator () const |
int | get_nx () const |
int | get_ny () const |
int | get_nz () const |
virtual int | read_parameters (void) |
virtual int | initialize (void)=0 |
virtual int | main_loop (void)=0 |
virtual int | finalize (void)=0 |
Data Fields | |
int | myrank |
int | nprocs |
MPI_Comm | comm |
std::string | simname |
int | iteration |
bool | stop_code_now |
int | nx |
int | ny |
int | nz |
int | dealias_type |
double | dkx |
double | dky |
double | dkz |
Private Attributes | |
std::chrono::time_point< std::chrono::steady_clock > | time0 |
std::chrono::time_point< std::chrono::steady_clock > | time1 |
Defines basic timer and method to check stopping condition.
Any computational task will consist of a loop over temporal snapshots, be it a simulation or a postprocessing job. This class declares the three required methods (initialize, step and finalize functionalities). Implementation should be done in children classes, since it will be different for simulations or postprocessing jobs.
What the class actually implements is a basic timer (calls to system clock), and a method to check for a stopping condition. These are meant to be used by children classes as needed.
code_base::code_base | ( | const MPI_Comm | COMMUNICATOR, |
const std::string & | simulation_name ) |
|
inlinevirtual |
int code_base::check_stopping_condition | ( | void | ) |
|
pure virtual |
Implemented in bandpass_stats< rnumber >, dealias_test< rnumber >, field_output_test< rnumber >, field_single_to_double< rnumber >, field_test< rnumber >, filter_test< rnumber >, Gauss_field_test< rnumber >, get_3D_correlations< rnumber >, get_rfields< rnumber >, get_velocity< rnumber >, joint_acc_vel_stats< rnumber >, kraichnan_field< rnumber >, native_binary_to_hdf5< rnumber >, NSE< rnumber >, NSVE< rnumber >, NSVE_field_stats< rnumber >, NSVE_Stokes_particles< rnumber >, NSVEcomplex_particles< rnumber >, NSVEp_extra_sampling< rnumber >, NSVEparticles< rnumber >, phase_shift_test< rnumber >, pressure_stats< rnumber >, resize< rnumber >, shared_array_test< rnumber >, static_field< rnumber >, symmetrize_test< rnumber >, test_interpolation< rnumber >, test_interpolation_methods< rnumber >, test_particle_integration< rnumber >, test_tracer_set< rnumber >, write_filtered_test< rnumber >, write_rpressure< rnumber >, direct_numerical_simulation, postprocess, and test.
|
inline |
|
inline |
|
inline |
|
inline |
|
pure virtual |
Implemented in bandpass_stats< rnumber >, dealias_test< rnumber >, field_output_test< rnumber >, field_single_to_double< rnumber >, field_test< rnumber >, filter_test< rnumber >, Gauss_field_test< rnumber >, get_3D_correlations< rnumber >, get_rfields< rnumber >, get_velocity< rnumber >, joint_acc_vel_stats< rnumber >, kraichnan_field< rnumber >, native_binary_to_hdf5< rnumber >, NSE< rnumber >, NSVE< rnumber >, NSVE_field_stats< rnumber >, NSVE_Stokes_particles< rnumber >, NSVEcomplex_particles< rnumber >, NSVEp_extra_sampling< rnumber >, NSVEparticles< rnumber >, phase_shift_test< rnumber >, pressure_stats< rnumber >, resize< rnumber >, shared_array_test< rnumber >, static_field< rnumber >, symmetrize_test< rnumber >, test_interpolation< rnumber >, test_interpolation_methods< rnumber >, test_particle_integration< rnumber >, test_tracer_set< rnumber >, write_filtered_test< rnumber >, write_rpressure< rnumber >, direct_numerical_simulation, postprocess, and test.
|
pure virtual |
Implemented in direct_numerical_simulation, postprocess, and test.
|
inline |
|
virtual |
Reads parameters
MPI_Barrier
. Reimplemented in dealias_test< rnumber >, direct_numerical_simulation, field_output_test< rnumber >, field_test< rnumber >, filter_test< rnumber >, Gauss_field_test< rnumber >, kraichnan_field< rnumber >, native_binary_to_hdf5< rnumber >, NSE< rnumber >, NSVE< rnumber >, NSVE_Stokes_particles< rnumber >, NSVEcomplex_particles< rnumber >, NSVEp_extra_sampling< rnumber >, NSVEparticles< rnumber >, phase_shift_test< rnumber >, postprocess, shared_array_test< rnumber >, static_field< rnumber >, symmetrize_test< rnumber >, test_interpolation< rnumber >, test_interpolation_methods< rnumber >, test_particle_integration< rnumber >, test_tracer_set< rnumber >, and write_filtered_test< rnumber >.
|
inline |
MPI_Comm code_base::comm |
int code_base::dealias_type |
double code_base::dkx |
double code_base::dky |
double code_base::dkz |
int code_base::iteration |
int code_base::myrank |
int code_base::nprocs |
int code_base::nx |
int code_base::ny |
int code_base::nz |
std::string code_base::simname |
bool code_base::stop_code_now |
|
private |
|
private |