STORMM Source Documentation
Loading...
Searching...
No Matches
minimization.h
1// -*-c++-*-
2#ifndef STORMM_MINIMIZATION_H
3#define STORMM_MINIMIZATION_H
4
5#include <cmath>
6#include "copyright.h"
7#include "Constants/fixed_precision.h"
8#include "Constants/generalized_born.h"
9#include "DataTypes/common_types.h"
10#include "Math/matrix_ops.h"
11#include "Namelists/nml_minimize.h"
12#include "Potential/energy_enumerators.h"
13#include "Potential/scorecard.h"
14#include "Potential/static_exclusionmask.h"
15#include "Restraints/restraint_apparatus.h"
16#include "Structure/virtual_site_handling.h"
17#include "Topology/atomgraph.h"
18#include "Topology/atomgraph_abstracts.h"
19#include "Topology/atomgraph_enumerators.h"
20#include "Trajectory/coordinateframe.h"
21#include "Trajectory/phasespace.h"
22#include "mm_evaluation.h"
23
24namespace stormm {
25namespace mm {
26
27using data_types::isSignedIntegralScalarType;
28using energy::EvaluateForce;
29using energy::ScoreCard;
30using energy::StateVariable;
31using energy::StaticExclusionMask;
32using energy::StaticExclusionMaskReader;
33using stmath::invertSquareMatrix;
34using stmath::matrixVectorMultiply;
35using namelist::MinimizeControls;
36using numerics::default_energy_scale_bits;
37using restraints::RestraintApparatus;
38using restraints::RestraintKit;
39using structure::placeVirtualSites;
40using structure::transmitVirtualSiteForces;
41using topology::AtomGraph;
42using topology::ImplicitSolventKit;
43using topology::ImplicitSolventModel;
44using topology::NonbondedKit;
45using topology::UnitCellType;
46using topology::ValenceKit;
47using topology::VirtualSiteKit;
48using trajectory::CoordinateFrame;
49using trajectory::CoordinateFrameReader;
50using trajectory::PhaseSpace;
51using trajectory::PhaseSpaceWriter;
52using namespace generalized_born_defaults;
53
75template <typename Tforce, typename Tcalc>
76void computeGradientMove(Tforce* xfrc, Tforce* yfrc, Tforce* zfrc, Tforce* xprv_move,
77 Tforce* yprv_move, Tforce* zprv_move, Tcalc* x_cg_temp,
78 Tcalc* y_cg_temp, Tcalc* z_cg_temp, int natom, int step, int sd_steps,
79 Tcalc force_factor = 1.0);
80
97template <typename Tcoord, typename Tforce, typename Tcalc>
98void moveParticles(Tcoord* xcrd, Tcoord* ycrd, Tcoord* zcrd, const Tforce* xmove,
99 const Tforce* ymove, const Tforce* zmove, const double* umat,
100 const double* invu, UnitCellType unit_cell, const VirtualSiteKit<Tcalc> &vsk,
101 int natom, Tcalc dist, Tcalc gpos_factor = 1.0, Tcalc force_factor = 1.0);
102
142template <typename Tcoord, typename Tforce, typename Tcalc, typename Tcalc2, typename Tcalc4>
143ScoreCard minimize(Tcoord* xcrd, Tcoord* ycrd, Tcoord* zcrd, Tforce* xfrc, Tforce* yfrc,
144 Tforce* zfrc, Tforce* xprv_move, Tforce* yprv_move, Tforce* zprv_move,
145 Tcalc* x_cg_temp, Tcalc* y_cg_temp, Tcalc* z_cg_temp,
146 const ValenceKit<Tcalc> &vk, const NonbondedKit<Tcalc> &nbk,
150 const MinimizeControls &mincon, int nrg_scale_bits = default_energy_scale_bits,
151 Tcalc gpos_factor = 1.0, Tcalc force_factor = 1.0);
152
153ScoreCard minimize(PhaseSpace *ps, const AtomGraph &ag, const RestraintApparatus &ra,
154 const StaticExclusionMask &se, const MinimizeControls &mincon,
155 int nrg_scale_bits = default_energy_scale_bits);
156
157ScoreCard minimize(PhaseSpace *ps, const AtomGraph &ag, const NeckGeneralizedBornTable &ngb_tab,
158 const RestraintApparatus &ra, const StaticExclusionMask &se,
159 const MinimizeControls &mincon, int nrg_scale_bits = default_energy_scale_bits);
160
161ScoreCard minimize(PhaseSpace *ps, const AtomGraph *ag, const StaticExclusionMask &se,
162 const MinimizeControls &mincon, int nrg_scale_bits = default_energy_scale_bits);
163
164ScoreCard minimize(PhaseSpace *ps, const AtomGraph *ag, const NeckGeneralizedBornTable &ngb_tab,
165 const StaticExclusionMask &se, const MinimizeControls &mincon,
166 int nrg_scale_bits = default_energy_scale_bits);
167
168ScoreCard minimize(PhaseSpaceWriter psw, const ValenceKit<double> &vk,
173 const MinimizeControls &mincon, int nrg_scale_bits = default_energy_scale_bits);
175
176} // namespace mm
177} // namespace stormm
178
179#include "minimization.tpp"
180
181#endif
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 energy minimization control information. Like other namelist encapsualtors,...
Definition nml_minimize.h:38
A collection of all restraints pertaining to a specific topology for the purposes of one simulation,...
Definition restraint_apparatus.h:109
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
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
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