Gromacs  2020.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions | Friends
gmx::LegacySimulator Class Reference

#include <gromacs/mdrun/legacysimulator.h>

+ Inheritance diagram for gmx::LegacySimulator:
+ Collaboration diagram for gmx::LegacySimulator:


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.


class SimulatorBuilder

Additional Inherited Members

- Protected Attributes inherited from gmx::ISimulator
FILE * fplog
 Handles logging.
t_commrec * cr
 Handles communication.
const gmx_multisim_tms
 Coordinates multi-simulations.
const MDLoggermdlog
 Handles logging.
int nfile
 Count of input file options.
const t_filenmfnm
 Content of input file options.
const gmx_output_env_t * oenv
 Handles writing text output.
const MdrunOptionsmdrunOptions
 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.
 Handles constraints.
 Handles enforced rotation.
BoxDeformation * deform
 Handles box deformation.
 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.
 The coordinate-swapping session.
gmx_mtop_t * top_global
 Full system topology.
t_fcdata * fcd
 Helper struct for force calculations.
 Full simulation state (only non-nullptr on master rank).
 History of simulation observables.
 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 ReplicaExchangeParametersreplExParams
 Parameters for replica exchange algorihtms.
gmx_membed_t * membed
 Parameters for membrane embedding.
 Manages wall time accounting.
< StopHandlerBuilder
 Registers stop conditions.
bool doRerun
 Whether we're doing a rerun.

Member Function Documentation

void gmx::LegacySimulator::run ( )

Function to run the correct SimulatorFunctionType, based on the .mdp integrator field.

Run the correct integrator function.

Implements gmx::ISimulator.

The documentation for this class was generated from the following files: