Gromacs
2020.4
|
#include <gromacs/mdrun/legacysimulator.h>
Struct to handle setting up and running the different simulation types.
This struct is a mere aggregate of parameters to pass to run a simulation, so that future changes to names and types of them consume less time when refactoring other code.
Having multiple simulation types as member functions isn't a good design, and we definitely only intend one to be called, but the goal is to make it easy to change the names and types of members without having to make identical changes in several places in the code. Once many of them have become modules, we should change this approach.
Public Member Functions | |
void | run () override |
Function to run the correct SimulatorFunctionType, based on the .mdp integrator field. More... | |
Public Member Functions inherited from gmx::ISimulator | |
virtual | ~ISimulator ()=default |
Standard destructor. | |
ISimulator (FILE *fplog, t_commrec *cr, const gmx_multisim_t *ms, const MDLogger &mdlog, int nfile, const t_filenm *fnm, const gmx_output_env_t *oenv, const MdrunOptions &mdrunOptions, StartingBehavior startingBehavior, gmx_vsite_t *vsite, Constraints *constr, gmx_enfrot *enforcedRotation, BoxDeformation *deform, IMDOutputProvider *outputProvider, const MdModulesNotifier &mdModulesNotifier, t_inputrec *inputrec, ImdSession *imdSession, pull_t *pull_work, t_swap *swap, gmx_mtop_t *top_global, t_fcdata *fcd, t_state *state_global, ObservablesHistory *observablesHistory, MDAtoms *mdAtoms, t_nrnb *nrnb, gmx_wallcycle *wcycle, t_forcerec *fr, gmx_enerdata_t *enerd, gmx_ekindata_t *ekind, MdrunScheduleWorkload *runScheduleWork, const ReplicaExchangeParameters &replExParams, gmx_membed_t *membed, gmx_walltime_accounting *walltime_accounting, std::unique_ptr< StopHandlerBuilder > stopHandlerBuilder, bool doRerun) | |
The constructor. | |
Friends | |
class | SimulatorBuilder |
Additional Inherited Members | |
Protected Attributes inherited from gmx::ISimulator | |
FILE * | fplog |
Handles logging. | |
t_commrec * | cr |
Handles communication. | |
const gmx_multisim_t * | ms |
Coordinates multi-simulations. | |
const MDLogger & | mdlog |
Handles logging. | |
int | nfile |
Count of input file options. | |
const t_filenm * | fnm |
Content of input file options. | |
const gmx_output_env_t * | oenv |
Handles writing text output. | |
const MdrunOptions & | mdrunOptions |
Contains command-line options to mdrun. | |
const StartingBehavior | startingBehavior |
Whether the simulation will start afresh, or restart with/without appending. | |
gmx_vsite_t * | vsite |
Handles virtual sites. | |
Constraints * | constr |
Handles constraints. | |
gmx_enfrot * | enforcedRotation |
Handles enforced rotation. | |
BoxDeformation * | deform |
Handles box deformation. | |
IMDOutputProvider * | outputProvider |
Handles writing output files. | |
const MdModulesNotifier & | mdModulesNotifier |
Handles notifications to MdModules for checkpoint writing. | |
t_inputrec * | inputrec |
Contains user input mdp options. | |
ImdSession * | imdSession |
The Interactive Molecular Dynamics session. | |
pull_t * | pull_work |
The pull work object. | |
t_swap * | swap |
The coordinate-swapping session. | |
gmx_mtop_t * | top_global |
Full system topology. | |
t_fcdata * | fcd |
Helper struct for force calculations. | |
t_state * | state_global |
Full simulation state (only non-nullptr on master rank). | |
ObservablesHistory * | observablesHistory |
History of simulation observables. | |
MDAtoms * | mdAtoms |
Atom parameters for this domain. | |
t_nrnb * | nrnb |
Manages flop accounting. | |
gmx_wallcycle * | wcycle |
Manages wall cycle accounting. | |
t_forcerec * | fr |
Parameters for force calculations. | |
gmx_enerdata_t * | enerd |
Data for energy output. | |
gmx_ekindata_t * | ekind |
Kinetic energy data. | |
MdrunScheduleWorkload * | runScheduleWork |
Schedule of work for each MD step for this task. | |
const ReplicaExchangeParameters & | replExParams |
Parameters for replica exchange algorihtms. | |
gmx_membed_t * | membed |
Parameters for membrane embedding. | |
gmx_walltime_accounting * | walltime_accounting |
Manages wall time accounting. | |
std::unique_ptr < StopHandlerBuilder > | stopHandlerBuilder |
Registers stop conditions. | |
bool | doRerun |
Whether we're doing a rerun. | |
|
overridevirtual |
Function to run the correct SimulatorFunctionType, based on the .mdp integrator field.
Run the correct integrator function.
Implements gmx::ISimulator.