STORMM Source Documentation
|
Information needed to manage constraint groups. This additional abstract is needed due to the way that some collections of rigid bonds all connect to the same atom, and because analytic SETTLE constraints are a thing. More...
#include <atomgraph_abstracts.h>
Public Member Functions | |
ConstraintKit (const int nsettle_in, const int nsett_param_in, const int ngroup_in, const int ncnst_param_in, const int *settle_ox_atoms_in, const int *settle_h1_atoms_in, const int *settle_h2_atoms_in, const int *settle_param_idx_in, const int *group_list_in, const int *group_bounds_in, const int *group_param_idx_in, const int *group_param_bounds_in, const T *settle_mo_in, const T *settle_mh_in, const T *settle_moh_in, const T *settle_mormt_in, const T *settle_mhrmt_in, const T *settle_ra_in, const T *settle_rb_in, const T *settle_rc_in, const T *group_sq_lengths_in, const T *group_inv_masses_in) | |
The constructor follows other abstracts and is produced based on pointers from an AtomGraph object. | |
ConstraintKit (const ConstraintKit &original)=default | |
Take the default copy and move constructors. The assignment operators will get implicitly deleted as this is just a collection of constants. | |
ConstraintKit (ConstraintKit &&other)=default | |
Public Attributes | |
const int | nsettle |
Number of SETTLE (analytic) constrained groups of bonds. | |
const int | nsett_param |
The number of distinct SETTLE parameter sets. | |
const int | ngroup |
Number of "hub and spoke" constrained groups of bonds. | |
const int | ncnst_param |
The number of distinct constraint group parameter sets. | |
const int * | settle_ox_atoms |
Central 'oxygen' atoms for analytic SETTLE constraints. | |
const int * | settle_h1_atoms |
First 'hydrogen' atoms for analytic SETTLE constraints. | |
const int * | settle_h2_atoms |
Second 'hydrogen' atoms for analytic SETTLE constraints. | |
const int * | settle_param_idx |
Parameter set indices for each SETLLE group. | |
const int * | group_list |
const int * | group_bounds |
const int * | group_param_idx |
const int * | group_param_bounds |
Bounds array for the constraint group parameter arrays below. | |
const T * | settle_mo |
Mass of the oxygen (or, heaviest) atom. | |
const T * | settle_mh |
Mass of the hydrogen (or, lightest) atom. | |
const T * | settle_moh |
Combined mass of the heaviest and one of the two light atoms. | |
const T * | settle_mormt |
const T * | settle_mhrmt |
Proportional mass of "hydrogen" in SETTLE systems. | |
const T * | settle_ra |
Internal distance measurement of SETTLE groups. | |
const T * | settle_rb |
Internal distance measurement of SETTLE groups. | |
const T * | settle_rc |
Internal distance measurement of SETTLE groups. | |
const T * | group_sq_lengths |
Bond length targets for the group atoms. | |
const T * | group_inv_masses |
Inverse masses for the particles in each group. | |
Information needed to manage constraint groups. This additional abstract is needed due to the way that some collections of rigid bonds all connect to the same atom, and because analytic SETTLE constraints are a thing.
const int* stormm::topology::ConstraintKit< T >::group_bounds |
Bounds array for group_list above. Every segment of group_list will be at least two atoms, and generally two to five atoms.
const int* stormm::topology::ConstraintKit< T >::group_list |
List of all atoms involved in "hub and spoke" constraint groups. In each group, the central atom, to which all others bind, is listed first. It is the first atom of any of the constrained bonds. All other atoms are the distal termini of those constrained bonds.
const int* stormm::topology::ConstraintKit< T >::group_param_idx |
Parameters array for each constraint group. To reference parameter set k is an instruction to access indices k and k + 1 from the group_param_bounds array, read the group_lengths and group_inv_masses arrays between those limits, and apply the lengths and inverse masses to each particle in the group.
const T* stormm::topology::ConstraintKit< T >::settle_mormt |
Proportional mass of "oxygen" in SETTLE systems. The values for this and other mass-related arrays are pre-calculated in double-precision, then converted to the native type, compact retrieval and to mitigate roundoff error.