Gromacs
2019-beta2
|
#include <gromacs/mdrun/integrator.h>
Struct to handle setting up and running the different "integrators".
This struct is a mere aggregate of parameters to pass to evaluate an energy, so that future changes to names and types of them consume less time when refactoring other code.
Aggregate initialization is used, for which the chief risk is that if a member is added at the end and not all initializer lists are updated, then the member will be value initialized, which will typically mean initialization to zero.
Having multiple integrators 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.
Note that the presence of const reference members means that the default constructor would be implicitly deleted. But we only want to make one of these when we know how to initialize these members, so that is perfect. To ensure this remains true even if we would remove those members, we explicitly delete this constructor. Other constructors, copies and moves are OK.
Public Member Functions | |
void | run (unsigned int ei, bool doRerun) |
Function to run the correct IntegratorFunctionType, based on the .mdp integrator field. More... | |
Public 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. | |
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. | |
t_inputrec * | inputrec |
Contains user input mdp options. | |
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. | |
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. | |
IntegratorFunctionType | do_md |
Implements the normal MD integrators. | |
IntegratorFunctionType | do_rerun |
Implements the rerun functionality. | |
IntegratorFunctionType | do_steep |
Implements steepest descent EM. | |
IntegratorFunctionType | do_cg |
Implements conjugate gradient energy minimization. | |
IntegratorFunctionType | do_lbfgs |
Implements onjugate gradient energy minimization using the L-BFGS algorithm. | |
IntegratorFunctionType | do_nm |
Implements normal mode analysis. | |
IntegratorFunctionType | do_tpi |
Implements test particle insertion. | |
IntegratorFunctionType | do_mimic |
Implements MiMiC QM/MM workflow. | |
void gmx::Integrator::run | ( | unsigned int | ei, |
bool | doRerun | ||
) |
Function to run the correct IntegratorFunctionType, based on the .mdp integrator field.
Run the correct integrator function.