Gromacs
2020.1
|
#include <gromacs/mdrun/isimulator.h>
The Simulator interface.
This is the general interface for any type of simulation type ran with GROMACS. This allows having a builder return different Simulator objects based on user input.
Public Member Functions | |
virtual void | run ()=0 |
The simulation run. More... | |
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. | |
Protected Attributes | |
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. | |
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. | |
|
pure virtual |
The simulation run.
This will be called by the owner of the simulator object. To be redefined by the child classes. This function is expected to run the simulation.
Implemented in gmx::LegacySimulator, and gmx::ModularSimulator.