2#ifndef STORMM_MINIMIZATION_H
3#define STORMM_MINIMIZATION_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"
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;
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);
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,
101 int natom, Tcalc dist, Tcalc gpos_factor = 1.0, Tcalc force_factor = 1.0);
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,
150 const MinimizeControls &mincon,
int nrg_scale_bits = default_energy_scale_bits,
151 Tcalc gpos_factor = 1.0, Tcalc force_factor = 1.0);
155 int nrg_scale_bits = default_energy_scale_bits);
159 const MinimizeControls &mincon,
int nrg_scale_bits = default_energy_scale_bits);
162 const MinimizeControls &mincon,
int nrg_scale_bits = default_energy_scale_bits);
166 int nrg_scale_bits = default_energy_scale_bits);
173 const MinimizeControls &mincon,
int nrg_scale_bits = default_energy_scale_bits);
179#include "minimization.tpp"
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