2#ifndef STORMM_VALENCE_POTENTIAL_H
3#define STORMM_VALENCE_POTENTIAL_H
7#include "Constants/hpc_bounds.h"
8#include "Constants/symbol_values.h"
9#include "DataTypes/common_types.h"
10#include "Math/matrix_ops.h"
11#include "Math/rounding.h"
12#include "Math/vector_ops.h"
13#include "Numerics/split_fixed_precision.h"
14#include "Restraints/restraint_apparatus.h"
15#include "Restraints/restraint_util.h"
16#include "Structure/local_arrangement.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/coordinate_series.h"
22#include "Trajectory/phasespace.h"
23#include "energy_enumerators.h"
25#include "soft_core_potentials.h"
30using data_types::isSignedIntegralScalarType;
31using numerics::operator+=;
32using numerics::operator-=;
33using numerics::operator+;
34using numerics::operator-;
35using stmath::angleVerification;
36using stmath::crossProduct;
37using stmath::matrixMultiply;
38using stmath::matrixVectorMultiply;
40using restraints::computeRestraintMixture;
41using restraints::RestraintApparatus;
42using restraints::RestraintKit;
43using restraints::restraintDelta;
44using structure::displacement;
45using structure::imageCoordinates;
46using structure::ImagingMethod;
47using symbols::asymptotic_to_one_f;
48using symbols::asymptotic_to_one_lf;
49using symbols::inverse_twopi;
50using symbols::inverse_twopi_f;
51using symbols::inverse_one_minus_asymptote_f;
52using symbols::inverse_one_minus_asymptote_lf;
56using symbols::twopi_f;
57using topology::AtomGraph;
58using topology::ValenceKit;
59using topology::NonbondedKit;
60using topology::TorsionKind;
61using topology::UnitCellType;
62using trajectory::CoordinateFrame;
63using trajectory::CoordinateFrameReader;
64using trajectory::CoordinateFrameWriter;
65using trajectory::CoordinateSeriesReader;
66using trajectory::CoordinateSeriesWriter;
67using trajectory::PhaseSpace;
68using trajectory::PhaseSpaceWriter;
69using namespace stormm::numerics;
97template <
typename Tcoord,
typename Tforce,
typename Tcalc>
98Tcalc evalHarmonicStretch(
int i_atom,
int j_atom, Tcalc stiffness, Tcalc equilibrium,
99 const Tcoord* xcrd,
const Tcoord* ycrd,
const Tcoord* zcrd,
100 const double* umat,
const double* invu, UnitCellType unit_cell,
101 Tforce* xfrc, Tforce* yfrc, Tforce* zfrc, EvaluateForce eval_force,
102 Tcalc inv_gpos_factor = 1.0, Tcalc force_factor = 1.0,
103 const int* xcrd_ovrf =
nullptr,
const int* ycrd_ovrf =
nullptr,
104 const int* zcrd_ovrf =
nullptr,
int* xfrc_ovrf =
nullptr,
105 int* yfrc_ovrf =
nullptr,
int* zfrc_ovrf =
nullptr);
141template <
typename Tcoord,
typename Tforce,
typename Tcalc>
142double evaluateBondTerms(
const ValenceKit<Tcalc> vk,
const Tcoord* xcrd,
const Tcoord* ycrd,
143 const Tcoord* zcrd,
const double* umat,
const double* invu,
144 UnitCellType unit_cell, Tforce* xfrc, Tforce* yfrc, Tforce* zfrc,
145 ScoreCard *ecard, EvaluateForce eval_force = EvaluateForce::NO,
146 int system_index = 0, Tcalc inv_gpos_factor = 1.0,
147 Tcalc force_factor = 1.0);
150 EvaluateForce eval_force = EvaluateForce::NO,
int system_index = 0);
153 EvaluateForce eval_force = EvaluateForce::NO,
int system_index = 0);
156 EvaluateForce eval_force = EvaluateForce::NO,
int system_index = 0);
165 int system_index = 0);
168 int system_index = 0);
170template <
typename Tcoord,
typename Tcalc>
172 ScoreCard *ecard,
int system_index = 0,
int force_scale_bits = 23);
174template <
typename Tcoord,
typename Tcalc>
176 ScoreCard *ecard,
int system_index = 0,
int force_scale_bits = 23);
185template <
typename Tcoord,
typename Tforce,
typename Tcalc>
186Tcalc evalHarmonicBend(
int i_atom,
int j_atom,
int k_atom, Tcalc stiffness, Tcalc equilibrium,
187 const Tcoord* xcrd,
const Tcoord* ycrd,
const Tcoord* zcrd,
188 const double* umat,
const double* invu, UnitCellType unit_cell,
189 Tforce* xfrc, Tforce* yfrc, Tforce* zfrc, EvaluateForce eval_force,
190 Tcalc inv_gpos_factor = 1.0, Tcalc force_factor = 1.0,
191 const int* xcrd_ovrf =
nullptr,
const int* ycrd_ovrf =
nullptr,
192 const int* zcrd_ovrf =
nullptr,
int* xfrc_ovrf =
nullptr,
193 int* yfrc_ovrf =
nullptr,
int* zfrc_ovrf =
nullptr);
229template <
typename Tcoord,
typename Tforce,
typename Tcalc>
230double evaluateAngleTerms(
const ValenceKit<Tcalc> vk,
const Tcoord* xcrd,
const Tcoord* ycrd,
231 const Tcoord* zcrd,
const double* umat,
const double* invu,
232 UnitCellType unit_cell, Tforce* xfrc, Tforce* yfrc, Tforce* zfrc,
233 ScoreCard *ecard, EvaluateForce eval_force = EvaluateForce::NO,
234 int system_index = 0, Tcalc inv_gpos_factor = 1.0,
235 Tcalc force_factor = 1.0);
238 EvaluateForce eval_force = EvaluateForce::NO,
int system_index = 0);
241 EvaluateForce eval_force = EvaluateForce::NO,
int system_index = 0);
244 EvaluateForce eval_force = EvaluateForce::NO,
int system_index = 0);
253 int system_index = 0);
256 int system_index = 0);
258template <
typename Tcoord,
typename Tcalc>
260 ScoreCard *ecard,
int system_index = 0,
int force_scale_bits = 23);
262template <
typename Tcoord,
typename Tcalc>
264 ScoreCard *ecard,
int system_index = 0,
int force_scale_bits = 23);
276template <
typename Tcoord,
typename Tforce,
typename Tcalc>
277Tcalc evalDihedralTwist(
int i_atom,
int j_atom,
int k_atom,
int l_atom, Tcalc amplitude,
278 Tcalc phase_angle, Tcalc frequency, DihedralStyle kind,
279 const Tcoord* xcrd,
const Tcoord* ycrd,
const Tcoord* zcrd,
280 const double* umat,
const double* invu, UnitCellType unit_cell,
281 Tforce* xfrc, Tforce* yfrc, Tforce* zfrc, EvaluateForce eval_force,
282 Tcalc inv_gpos_factor = 1.0, Tcalc force_factor = 1.0,
283 const int* xcrd_ovrf =
nullptr,
const int* ycrd_ovrf =
nullptr,
284 const int* zcrd_ovrf =
nullptr,
int* xfrc_ovrf =
nullptr,
285 int* yfrc_ovrf =
nullptr,
int* zfrc_ovrf =
nullptr);
319template <
typename Tcoord,
typename Tforce,
typename Tcalc>
320double2 evaluateDihedralTerms(
const ValenceKit<Tcalc> vk,
const Tcoord* xcrd,
const Tcoord* ycrd,
321 const Tcoord* zcrd,
const double* umat,
const double* invu,
322 UnitCellType unit_cell, Tforce* xfrc, Tforce* yfrc, Tforce* zfrc,
323 ScoreCard *ecard, EvaluateForce eval_force = EvaluateForce::NO,
324 int system_index = 0, Tcalc inv_gpos_factor = 1.0,
325 Tcalc force_factor = 1.0);
328 EvaluateForce eval_force = EvaluateForce::NO,
int system_index = 0);
331 EvaluateForce eval_force = EvaluateForce::NO,
int system_index = 0);
334 EvaluateForce eval_force = EvaluateForce::NO,
int system_index = 0);
343 int system_index = 0);
346 int system_index = 0);
348template <
typename Tcoord,
typename Tcalc>
350 ScoreCard *ecard,
int system_index = 0,
int force_scale_bits = 23);
352template <
typename Tcoord,
typename Tcalc>
354 ScoreCard *ecard,
int system_index = 0,
int force_scale_bits = 23);
388template <
typename Tcoord,
typename Tforce,
typename Tcalc>
390 const Tcoord* ycrd,
const Tcoord* zcrd,
const double* umat,
391 const double* invu,
const UnitCellType unit_cell, Tforce* xfrc,
392 Tforce* yfrc, Tforce* zfrc,
ScoreCard *ecard,
393 EvaluateForce eval_force = EvaluateForce::NO,
394 int system_index = 0, Tcalc inv_gpos_factor = 1.0,
395 Tcalc force_factor = 1.0,
const int* xcrd_ovrf =
nullptr,
396 const int* ycrd_ovrf =
nullptr,
const int* zcrd_ovrf =
nullptr,
397 int* xfrc_ovrf =
nullptr,
int* yfrc_ovrf =
nullptr,
398 int* zfrc_ovrf =
nullptr);
401 ScoreCard *ecard, EvaluateForce eval_force = EvaluateForce::NO,
402 int system_index = 0);
405 EvaluateForce eval_force = EvaluateForce::NO,
406 int system_index = 0);
409 EvaluateForce eval_force = EvaluateForce::NO,
410 int system_index = 0);
419 int system_index = 0);
422 int system_index = 0);
424template <
typename Tcoord,
typename Tcalc>
427 int system_index = 0,
int force_scale_bits = 23);
429template <
typename Tcoord,
typename Tcalc>
432 int system_index = 0,
int force_scale_bits = 23);
466template <
typename Tcoord,
typename Tforce,
typename Tcalc>
467double evaluateCharmmImproperTerms(
const ValenceKit<Tcalc> vk,
const Tcoord* xcrd,
468 const Tcoord* ycrd,
const Tcoord* zcrd,
const double* umat,
469 const double* invu, UnitCellType unit_cell, Tforce* xfrc,
470 Tforce* yfrc, Tforce* zfrc,
ScoreCard *ecard,
471 EvaluateForce eval_force = EvaluateForce::NO,
472 int system_index = 0, Tcalc inv_gpos_factor = 1.0,
473 Tcalc force_factor = 1.0,
const int* xcrd_ovrf =
nullptr,
474 const int* ycrd_ovrf =
nullptr,
const int* zcrd_ovrf =
nullptr,
475 int* xfrc_ovrf =
nullptr,
int* yfrc_ovrf =
nullptr,
476 int* zfrc_ovrf =
nullptr);
479 ScoreCard *ecard, EvaluateForce eval_force = EvaluateForce::NO,
480 int system_index = 0);
483 EvaluateForce eval_force = EvaluateForce::NO,
484 int system_index = 0);
487 EvaluateForce eval_force = EvaluateForce::NO,
488 int system_index = 0);
502template <
typename Tcoord,
typename Tcalc>
505 int system_index = 0,
int force_scale_bits = 23);
507template <
typename Tcoord,
typename Tcalc>
510 int system_index = 0,
int force_scale_bits = 23);
541template <
typename Tcoord,
typename Tforce,
typename Tcalc>
542Tcalc evalCmap(
const Tcalc* cmap_patches,
const int* cmap_patch_bounds,
int surf_idx,
543 int surf_dim,
int i_atom,
int j_atom,
int k_atom,
int l_atom,
int m_atom,
544 const Tcoord* xcrd,
const Tcoord* ycrd,
const Tcoord* zcrd,
const double* umat,
545 const double* invu, UnitCellType unit_cell, Tforce* xfrc, Tforce* yfrc,
546 Tforce* zfrc, EvaluateForce eval_force, Tcalc inv_gpos_factor = 1.0,
547 Tcalc force_factor = 1.0,
const int* xcrd_ovrf =
nullptr,
548 const int* ycrd_ovrf =
nullptr,
const int* zcrd_ovrf =
nullptr,
549 int* xfrc_ovrf =
nullptr,
int* yfrc_ovrf =
nullptr,
int* zfrc_ovrf =
nullptr);
581template <
typename Tcoord,
typename Tforce,
typename Tcalc>
582double evaluateCmapTerms(
const ValenceKit<Tcalc> vk,
const Tcoord* xcrd,
const Tcoord* ycrd,
583 const Tcoord* zcrd,
const double* umat,
const double* invu,
584 UnitCellType unit_cell, Tforce* xfrc, Tforce* yfrc, Tforce* zfrc,
585 ScoreCard *ecard, EvaluateForce eval_force = EvaluateForce::NO,
586 int system_index = 0, Tcalc inv_gpos_factor = 1.0,
587 Tcalc force_factor = 1.0);
590 EvaluateForce eval_force = EvaluateForce::NO,
int system_index = 0);
593 EvaluateForce eval_force = EvaluateForce::NO,
int system_index = 0);
596 EvaluateForce eval_force = EvaluateForce::NO,
int system_index = 0);
605 int system_index = 0);
608 int system_index = 0);
610template <
typename Tcoord,
typename Tcalc>
612 ScoreCard *ecard,
int system_index = 0,
int force_scale_bits = 23);
614template <
typename Tcoord,
typename Tcalc>
616 ScoreCard *ecard,
int system_index = 0,
int force_scale_bits = 23);
652template <
typename Tcoord,
typename Tforce,
typename Tcalc>
653Vec2<Tcalc> evalAttenuated14Pair(
int i_atom,
int l_atom,
int attn_idx, Tcalc coulomb_constant,
654 const Tcalc* charges,
const int* lj_param_idx,
655 const Tcalc* attn14_elec_factors,
656 const Tcalc* attn14_vdw_factors,
const Tcalc* lja_14_coeff,
657 const Tcalc* ljb_14_coeff,
const Tcalc* lj_14_sigma,
658 int ljtab_offset,
int n_lj_types,
const Tcoord* xcrd,
659 const Tcoord* ycrd,
const Tcoord* zcrd,
const double* umat,
660 const double* invu, UnitCellType unit_cell, Tforce* xfrc,
661 Tforce* yfrc, Tforce* zfrc, EvaluateForce eval_elec_force,
662 EvaluateForce eval_vdw_force, Tcalc inv_gpos_factor = 1.0,
663 Tcalc force_factor = 1.0, Tcalc clash_minimum_distance = 0.0,
664 Tcalc clash_ratio = 0.0,
const int* xcrd_ovrf =
nullptr,
665 const int* ycrd_ovrf =
nullptr,
666 const int* zcrd_ovrf =
nullptr,
int* xfrc_ovrf =
nullptr,
667 int* yfrc_ovrf =
nullptr,
int* zfrc_ovrf =
nullptr);
669template <
typename Tcoord,
typename Tforce,
typename Tcalc>
670Vec2<Tcalc> evalAttenuated14Pair(
int i_atom,
int l_atom,
int attn_idx, Tcalc coulomb_constant,
671 const Tcalc* charges,
const int* lj_param_idx,
672 const Tcalc* attn14_elec_factors,
673 const Tcalc* attn14_vdw_factors,
const Tcalc* lja_14_coeff,
674 const Tcalc* ljb_14_coeff,
const Tcalc* lj_14_sigma,
675 int n_lj_types,
const Tcoord* xcrd,
const Tcoord* ycrd,
676 const Tcoord* zcrd,
const double* umat,
const double* invu,
677 UnitCellType unit_cell, Tforce* xfrc, Tforce* yfrc,
678 Tforce* zfrc, EvaluateForce eval_elec_force,
679 EvaluateForce eval_vdw_force, Tcalc inv_gpos_factor = 1.0,
680 Tcalc force_factor = 1.0, Tcalc clash_minimum_distance = 0.0,
681 Tcalc clash_ratio = 0.0,
const int* xcrd_ovrf =
nullptr,
682 const int* ycrd_ovrf =
nullptr,
683 const int* zcrd_ovrf =
nullptr,
int* xfrc_ovrf =
nullptr,
684 int* yfrc_ovrf =
nullptr,
int* zfrc_ovrf =
nullptr);
721template <
typename Tcoord,
typename Tforce,
typename Tcalc>
723 const Tcoord* xcrd,
const Tcoord* ycrd,
const Tcoord* zcrd,
724 const double* umat,
const double* invu,
725 UnitCellType unit_cell, Tforce* xfrc, Tforce* yfrc,
727 EvaluateForce eval_elec_force = EvaluateForce::NO,
728 EvaluateForce eval_vdw_force = EvaluateForce::NO,
729 int system_index = 0, Tcalc inv_gpos_factor = 1.0,
730 Tcalc force_factor = 1.0, Tcalc clash_minimum_distance = 0.0,
731 Tcalc clash_ratio = 0.0);
735 EvaluateForce eval_elec_force = EvaluateForce::NO,
736 EvaluateForce eval_vdw_force = EvaluateForce::NO,
737 int system_index = 0,
double clash_minimum_distance = 0.0,
738 double clash_ratio = 0.0);
741 EvaluateForce eval_elec_force = EvaluateForce::NO,
742 EvaluateForce eval_vdw_force = EvaluateForce::NO,
743 int system_index = 0,
double clash_minimum_distance = 0.0,
744 double clash_ratio = 0.0);
747 EvaluateForce eval_elec_force = EvaluateForce::NO,
748 EvaluateForce eval_vdw_force = EvaluateForce::NO,
749 int system_index = 0,
double clash_minimum_distance = 0.0,
750 double clash_ratio = 0.0);
754 int system_index = 0,
double clash_minimum_distance = 0.0,
755 double clash_ratio = 0.0);
759 int system_index = 0,
double clash_minimum_distance = 0.0,
760 double clash_ratio = 0.0);
764 double clash_minimum_distance = 0.0,
double clash_ratio = 0.0);
768 double clash_minimum_distance = 0.0,
double clash_ratio = 0.0);
770template <
typename Tcoord,
typename Tcalc>
773 int system_index = 0,
int force_scale_bits = 23,
774 Tcalc clash_minimum_distance = 0.0, Tcalc clash_ratio = 0.0);
776template <
typename Tcoord,
typename Tcalc>
779 int system_index = 0,
int force_scale_bits = 23,
780 Tcalc clash_minimum_distance = 0.0, Tcalc clash_ratio = 0.0);
809template <
typename Tcoord,
typename Tforce,
typename Tcalc,
typename Tcalc2,
typename Tcalc4>
810Tcalc evalPosnRestraint(
int p_atom,
int step_number,
int init_step,
int finl_step,
811 const Tcalc2 init_xy,
const Tcalc2 finl_xy, Tcalc init_z, Tcalc finl_z,
812 const Tcalc2 init_keq,
const Tcalc2 finl_keq,
const Tcalc4 init_r,
813 const Tcalc4 finl_r,
const Tcoord* xcrd,
const Tcoord* ycrd,
814 const Tcoord* zcrd,
const double* umat,
const double* invu,
815 UnitCellType unit_cell, Tforce* xfrc, Tforce* yfrc, Tforce* zfrc,
816 EvaluateForce eval_force, Tcalc inv_gpos_factor = 1.0,
817 Tcalc force_factor = 1.0,
const int* xcrd_ovrf =
nullptr,
818 const int* ycrd_ovrf =
nullptr,
const int* zcrd_ovrf =
nullptr,
819 int* xfrc_ovrf =
nullptr,
int* yfrc_ovrf =
nullptr,
820 int* zfrc_ovrf =
nullptr);
826template <
typename Tcoord,
typename Tforce,
typename Tcalc,
typename Tcalc2,
typename Tcalc4>
827Tcalc evalBondRestraint(
int i_atom,
int j_atom,
int step_number,
int init_step,
int finl_step,
828 const Tcalc2 init_keq,
const Tcalc2 finl_keq,
const Tcalc4 init_r,
829 const Tcalc4 finl_r,
const Tcoord* xcrd,
const Tcoord* ycrd,
830 const Tcoord* zcrd,
const double* umat,
const double* invu,
831 UnitCellType unit_cell, Tforce* xfrc, Tforce* yfrc, Tforce* zfrc,
832 EvaluateForce eval_force, Tcalc inv_gpos_factor = 1.0,
833 Tcalc force_factor = 1.0,
const int* xcrd_ovrf =
nullptr,
834 const int* ycrd_ovrf =
nullptr,
const int* zcrd_ovrf =
nullptr,
835 int* xfrc_ovrf =
nullptr,
int* yfrc_ovrf =
nullptr,
836 int* zfrc_ovrf =
nullptr);
842template <
typename Tcoord,
typename Tforce,
typename Tcalc,
typename Tcalc2,
typename Tcalc4>
843Tcalc evalAnglRestraint(
int i_atom,
int j_atom,
int k_atom,
int step_number,
const int init_step,
844 const int finl_step,
const Tcalc2 init_keq,
const Tcalc2 finl_keq,
845 const Tcalc4 init_r,
const Tcalc4 finl_r,
const Tcoord* xcrd,
846 const Tcoord* ycrd,
const Tcoord* zcrd,
const double* umat,
847 const double* invu, UnitCellType unit_cell, Tforce* xfrc, Tforce* yfrc,
848 Tforce* zfrc, EvaluateForce eval_force, Tcalc inv_gpos_factor = 1.0,
849 Tcalc force_factor = 1.0,
const int* xcrd_ovrf =
nullptr,
850 const int* ycrd_ovrf =
nullptr,
const int* zcrd_ovrf =
nullptr,
851 int* xfrc_ovrf =
nullptr,
int* yfrc_ovrf =
nullptr,
852 int* zfrc_ovrf =
nullptr);
858template <
typename Tcoord,
typename Tforce,
typename Tcalc,
typename Tcalc2,
typename Tcalc4>
859Tcalc evalDiheRestraint(
int i_atom,
int j_atom,
int k_atom,
int l_atom,
int step_number,
860 const int init_step,
const int finl_step,
const Tcalc2 init_keq,
861 const Tcalc2 finl_keq,
const Tcalc4 init_r,
const Tcalc4 finl_r,
862 const Tcoord* xcrd,
const Tcoord* ycrd,
const Tcoord* zcrd,
863 const double* umat,
const double* invu, UnitCellType unit_cell,
864 Tforce* xfrc, Tforce* yfrc, Tforce* zfrc, EvaluateForce eval_force,
865 Tcalc inv_gpos_factor = 1.0, Tcalc force_factor = 1.0,
866 const int* xcrd_ovrf =
nullptr,
const int* ycrd_ovrf =
nullptr,
867 const int* zcrd_ovrf =
nullptr,
int* xfrc_ovrf =
nullptr,
868 int* yfrc_ovrf =
nullptr,
int* zfrc_ovrf =
nullptr);
893template <
typename Tcoord,
typename Tforce,
typename Tcalc,
typename Tcalc2,
typename Tcalc4>
895 const Tcoord* ycrd,
const Tcoord* zcrd,
const double* umat,
896 const double* invu,
const UnitCellType unit_cell, Tforce* xfrc,
897 Tforce* yfrc, Tforce* zfrc,
ScoreCard *ecard,
898 EvaluateForce eval_force = EvaluateForce::NO,
int system_index = 0,
899 int step_number = 0, Tcalc inv_gpos_factor = 1.0,
900 Tcalc force_factor = 1.0);
904 EvaluateForce eval_force = EvaluateForce::NO,
int system_index = 0,
905 int step_number = 0);
908 EvaluateForce eval_force = EvaluateForce::NO,
int system_index = 0,
909 int step_number = 0);
912 EvaluateForce eval_force = EvaluateForce::NO,
int system_index = 0,
913 int step_number = 0);
917 int step_number = 0);
921 int step_number = 0);
924 ScoreCard *ecard,
int system_index = 0,
int step_number = 0);
927 ScoreCard *ecard,
int system_index = 0,
int step_number = 0);
929template <
typename Tcoord,
typename Tcalc,
typename Tcalc2,
typename Tcalc4>
932 int system_index = 0,
int step_number = 0,
int force_scale_bits = 23);
934template <
typename Tcoord,
typename Tcalc,
typename Tcalc2,
typename Tcalc4>
937 int system_index = 0,
int step_number = 0,
int force_scale_bits = 23);
943#include "valence_potential.tpp"
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 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
Store the coordinates and box information for a frame, only. This abridged struct can serve when the ...
Definition coordinateframe.h:111
An object to complement a topology and hold positions, velocities, and forces of all particles in a s...
Definition phasespace.h:141
Double-precision reader abstract for the RestraintApparatus class. Restraints are very detailed thing...
Definition restraint_apparatus.h:28
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
Collect C-style pointers for the elements of a read-only CoordinateFrame object.
Definition coordinateframe.h:65
Collect C-style pointers for the elements of a writable CoordinateFrame object.
Definition coordinateframe.h:30
Collect C-style pointers and critical constants for a read-only CoordinateSeries object.
Definition coordinate_series.h:96
Collect C-style pointers and critical constants for a writeable CoordinateSeries object.
Definition coordinate_series.h:66
Collect constants and pointers to the components of a modifiable PhaseSpace object.
Definition phasespace.h:31