2#ifndef STORMM_DYNAMICS_LIBRARY_H
3#define STORMM_DYNAMICS_LIBRARY_H
6#include "Constants/generalized_born.h"
7#include "DataTypes/stormm_vector_types.h"
8#include "MolecularMechanics/mm_evaluation.h"
9#include "Namelists/nml_dynamics.h"
10#include "Namelists/nml_pppm.h"
11#include "Namelists/nml_precision.h"
12#include "Potential/cellgrid.h"
13#include "Potential/energy_enumerators.h"
14#include "Potential/pme_potential.h"
15#include "Potential/pme_util.h"
16#include "Potential/scorecard.h"
17#include "Potential/local_exclusionmask.h"
18#include "Potential/static_exclusionmask.h"
19#include "Restraints/restraint_apparatus.h"
20#include "Structure/hub_and_spoke.h"
21#include "Structure/settle.h"
22#include "Structure/virtual_site_handling.h"
23#include "Synthesis/phasespace_synthesis.h"
24#include "Synthesis/synthesis_abstracts.h"
25#include "Topology/atomgraph.h"
26#include "Topology/atomgraph_abstracts.h"
27#include "Trajectory/integration.h"
28#include "Trajectory/motion_sweeper.h"
29#include "Trajectory/phasespace.h"
30#include "Trajectory/thermostat.h"
31#include "Trajectory/trim.h"
37using energy::CellGrid;
38using energy::CellGridReader;
39using energy::CellGridWriter;
40using energy::contributeCellGridForces;
41using energy::evaluateParticleParticleEnergy;
42using energy::ewaldCoefficient;
43using energy::LocalExclusionMask;
44using energy::LocalExclusionMaskReader;
45using energy::NonbondedTheme;
46using energy::restoreType;
47using energy::ScoreCard;
48using energy::ScoreCardWriter;
49using energy::StaticExclusionMask;
50using energy::StaticExclusionMaskReader;
51using energy::VdwSumMethod;
52using namelist::DynamicsControls;
53using namelist::PrecisionControls;
54using namelist::PPPMControls;
55using restraints::RestraintApparatus;
56using restraints::RestraintKit;
57using structure::placeVirtualSites;
58using structure::rattleVelocities;
59using structure::settlePositions;
60using structure::settleVelocities;
61using structure::shakePositions;
62using structure::transmitVirtualSiteForces;
63using synthesis::PhaseSpaceSynthesis;
64using synthesis::PsSynthesisReader;
65using synthesis::PsSynthesisWriter;
66using synthesis::SyAtomUpdateKit;
67using synthesis::SyNonbondedKit;
68using synthesis::SyRestraintKit;
69using synthesis::SyValenceKit;
70using topology::AtomGraph;
71using topology::ConstraintKit;
72using topology::ImplicitSolventKit;
73using topology::NonbondedKit;
74using topology::ValenceKit;
75using topology::VirtualSiteKit;
76using trajectory::MotionSweeper;
77using trajectory::PhaseSpace;
78using trajectory::PhaseSpaceWriter;
79using trajectory::removeMomentum;
80using trajectory::Thermostat;
81using trajectory::ThermostatReader;
82using trajectory::ThermostatWriter;
83using trajectory::velocityVerletVelocityUpdate;
84using trajectory::velocityVerletCoordinateUpdate;
85using namespace generalized_born_defaults;
136template <
typename Tcoord,
typename Tcalc,
typename Tcalc2,
typename Tcalc4>
137void dynaStep(
const Tcoord* xcrd,
const Tcoord* ycrd,
const Tcoord* zcrd,
const Tcoord* xvel,
138 const Tcoord* yvel,
const Tcoord* zvel, Tcoord* xfrc, Tcoord* yfrc, Tcoord* zfrc,
139 Tcoord* xalt, Tcoord* yalt, Tcoord* zalt, Tcoord* vxalt, Tcoord* vyalt,
140 Tcoord* vzalt, Tcoord* fxalt, Tcoord* fyalt, Tcoord* fzalt,
ScoreCard *sc,
147 const DynamicsControls &dyncon,
int system_index = 0, Tcalc gpos_scale_factor = 1.0,
148 Tcalc vel_scale_factor = 1.0, Tcalc frc_scale_factor = 1.0);
150template <
typename Tcoord,
typename Tacc,
typename Tcoord4,
151 typename Tcalc,
typename Tcalc2,
typename Tcalc4>
158 VdwSumMethod vdw_sum,
int ntpr);
190 const std::string &trajectory_file_name = std::string(
""),
191 const std::string &restart_file_name = std::string(
""));
196 const std::string &trajectory_file_name = std::string(
""),
197 const std::string &restart_file_name = std::string(
""));
199template <
typename Tcoord,
typename Tacc,
typename Tcalc,
typename Tcoord4>
213#include "dynamics.tpp"
An object to manage the spatial decomposition of a system of particles. The general strategy is to ar...
Definition cellgrid.h:562
The local exclusion mask is an generalized form of the ForwardExclusionMask, listing all exclusions i...
Definition local_exclusionmask.h:208
Track the energy components of a collection of systems in an HPC-capable array. This object uses the ...
Definition scorecard.h:101
A simple pair list for an all-to-all calculation with exclusion masks. The list stores masks for 16 x...
Definition static_exclusionmask.h:81
Object to hold a complex array of constants referenced by various GB calculations using the "neck" fo...
Definition generalized_born.h:151
Object to encapsulate molecular dynamics control information. Like other namelist encapsualtors,...
Definition nml_dynamics.h:123
Object to encapsulate electrostatic and Lennard-Jones particle-mesh interaction controls....
Definition nml_pppm.h:38
Object to encapsulate energy precision control information. Like other namelist encapsualtors,...
Definition nml_precision.h:40
A collection of all restraints pertaining to a specific topology for the purposes of one simulation,...
Definition restraint_apparatus.h:109
A collection of one or more AtomGraph objects, with similar components arranged in contiguous arrays ...
Definition atomgraph_synthesis.h:55
A fixed-precision representation of coordinates, velocities, and forces to manage a set of simulation...
Definition phasespace_synthesis.h:325
A struct to hold information relating to an Amber topology. This struct's member functions are limite...
Definition atomgraph.h:50
An object to complement a topology and hold positions, velocities, and forces of all particles in a s...
Definition phasespace.h:141
Store the parameters for a simulation thermostat. Includes Berendsen, Andersen, and Langevin methods....
Definition thermostat.h:221
Writeable abstract for the CellGrid object, able to receive new coordinates or accumulate forces.
Definition cellgrid.h:137
A lean, read-only abstract for the LocalExclusionMask class.
Definition local_exclusionmask.h:100
The abstract for a StaticExclusionMask object, read-only due to the const-ness of the data() member f...
Definition static_exclusionmask.h:45
Abstract for the NeckGeneralizedBornTable object, in single- or double-precision.
Definition generalized_born.h:130
Double-precision reader abstract for the RestraintApparatus class. Restraints are very detailed thing...
Definition restraint_apparatus.h:28
The writer for a PhaseSpaceSynthesis object, containing all of the data relevant for propagating dyna...
Definition phasespace_synthesis.h:87
Collect the virtual site details and constraint parameters of the topology synthesis into a single ab...
Definition synthesis_abstracts.h:257
Collect the critical non-bonded parameters and masking information for work unit-based evaluation of ...
Definition synthesis_abstracts.h:181
Collect the critical restraint parameters and masking information for work unit-based evaluation of t...
Definition synthesis_abstracts.h:100
Collect the critical valence parameters and indexing information for work unit-based evaluation of th...
Definition synthesis_abstracts.h:19
Information on atoms and residues which may be useful for applying atom masks or identifying specific...
Definition atomgraph_abstracts.h:382
Information needed to manage constraint groups. This additional abstract is needed due to the way tha...
Definition atomgraph_abstracts.h:466
Information needed for Generalized Born (and perhaps other) implicit solvent methods....
Definition atomgraph_abstracts.h:352
Information needed for non-bonded real-space calculations. Templating is used as above,...
Definition atomgraph_abstracts.h:287
Information need for bonded calculations. Templating is used to serve either of two levels of precisi...
Definition atomgraph_abstracts.h:88
Information needed for the placement of virtual sites and transmission of forces on these sites to th...
Definition atomgraph_abstracts.h:430
Collect constants and pointers to the components of a modifiable PhaseSpace object.
Definition phasespace.h:31
Partially writeable abstract for the Thermostat object. As with the MMControlKit struct (see the libr...
Definition thermostat.h:58