STORMM Source Documentation
Loading...
Searching...
No Matches
hpc_dynamics.h
1// -*-c++-*-
2#ifndef STORMM_HPC_DYNAMICS_H
3#define STORMM_HPC_DYNAMICS_H
4
5#include <string>
6#include "copyright.h"
7#include "Accelerator/core_kernel_manager.h"
8#include "Accelerator/gpu_details.h"
9#include "Constants/behavior.h"
10#include "Constants/fixed_precision.h"
11#include "MolecularMechanics/mm_controls.h"
12#include "Namelists/nml_dynamics.h"
13#include "Numerics/numeric_enumerators.h"
14#include "Potential/cacheresource.h"
15#include "Potential/energy_enumerators.h"
16#include "Potential/scorecard.h"
17#include "Synthesis/atomgraph_synthesis.h"
18#include "Synthesis/implicit_solvent_workspace.h"
19#include "Synthesis/nonbonded_workunit.h"
20#include "Synthesis/synthesis_enumerators.h"
21#include "Synthesis/synthesis_cache_map.h"
22#include "Synthesis/systemcache.h"
23#include "Synthesis/valence_workunit.h"
24#include "Trajectory/motion_sweeper.h"
25#include "Trajectory/thermostat.h"
26#include "UnitTesting/stopwatch.h"
27
28namespace stormm {
29namespace mm {
30
31using card::CoreKlManager;
32using card::GpuDetails;
33using constants::PrecisionModel;
34using energy::CacheResource;
35using energy::ScoreCard;
36using namelist::DynamicsControls;
37using numerics::AccumulationMethod;
38using numerics::default_energy_scale_bits;
39using synthesis::AtomGraphSynthesis;
40using synthesis::ImplicitSolventWorkspace;
41using synthesis::maximum_valence_work_unit_atoms;
42using synthesis::NbwuKind;
43using synthesis::PhaseSpaceSynthesis;
44using synthesis::small_block_max_atoms;
45using synthesis::StaticExclusionMaskSynthesis;
46using synthesis::SynthesisCacheMap;
47using synthesis::SystemCache;
48using testing::StopWatch;
49using trajectory::MotionSweeper;
50using trajectory::Thermostat;
51
101void launchDynamics(PrecisionModel valence_prec, PrecisionModel nonbond_prec,
102 const AtomGraphSynthesis &poly_ag, const StaticExclusionMaskSynthesis &poly_se,
103 Thermostat *tst, PhaseSpaceSynthesis *poly_ps, MotionSweeper *mos,
104 const DynamicsControls &dyncon, MolecularMechanicsControls *mmctrl_fe,
106 CacheResource *vale_fe_cache, CacheResource *vale_fx_cache,
107 CacheResource *nonb_fe_cache, CacheResource *nonb_fx_cache,
108 ImplicitSolventWorkspace *ism_space, AccumulationMethod acc_meth,
109 const SystemCache &sysc, const SynthesisCacheMap &syscmap,
110 const GpuDetails &gpu, const CoreKlManager &launcher,
111 StopWatch *timer = nullptr, const std::string &task_name = std::string(""));
112
113ScoreCard launchDynamics(const AtomGraphSynthesis &poly_ag,
114 const StaticExclusionMaskSynthesis &poly_se, Thermostat *tst,
115 PhaseSpaceSynthesis *poly_ps, const DynamicsControls &dyncon,
116 const SystemCache &sysc, const SynthesisCacheMap &syscmap,
117 const GpuDetails &gpu,
118 PrecisionModel valence_prec = PrecisionModel::SINGLE,
119 PrecisionModel nonbond_prec = PrecisionModel::SINGLE,
120 int energy_bits = default_energy_scale_bits,
121 StopWatch *timer = nullptr,
122 const std::string &task_name = std::string(""));
124
125} // namespace mm
126} // namespace stormm
127
128#endif
A class to guide the implementation of GPU kernels, with selected thread counts per block and block c...
Definition core_kernel_manager.h:56
Pertinent aspects of one particular GPU. Condensing the data for each GPU in this manner helps to ens...
Definition gpu_details.h:27
An object to hold temporary data for a particular work unit (whether bonded or non-bonded),...
Definition cacheresource.h:63
Track the energy components of a collection of systems in an HPC-capable array. This object uses the ...
Definition scorecard.h:101
A collection of contol data for molecular mechanics simulations, conveying the current step number,...
Definition mm_controls.h:100
Object to encapsulate molecular dynamics control information. Like other namelist encapsualtors,...
Definition nml_dynamics.h:123
A collection of one or more AtomGraph objects, with similar components arranged in contiguous arrays ...
Definition atomgraph_synthesis.h:55
A small collection of arrays to manage temporary accumulators for computing Born radii and their deri...
Definition implicit_solvent_workspace.h:65
A fixed-precision representation of coordinates, velocities, and forces to manage a set of simulation...
Definition phasespace_synthesis.h:325
An exclusion mask object for a compilation of systems. All systems are represented in full detail,...
Definition static_mask_synthesis.h:54
Encode a map between the systems of a snythesis and those of a SystemCache. The synthesis is expected...
Definition synthesis_cache_map.h:70
Simple but central struct to store the primitive form of the collection of systems that most STORMM a...
Definition systemcache.h:63
Object for managing calls to the C-standard function gettimeofday(), calculating deltas and categoriz...
Definition stopwatch.h:23
Object to manage and stage recentering and momentum removal for a coordinate synthesis....
Definition motion_sweeper.h:226
Store the parameters for a simulation thermostat. Includes Berendsen, Andersen, and Langevin methods....
Definition thermostat.h:221