STORMM Source Documentation
Loading...
Searching...
No Matches
stormm::trajectory::ConstraintKit< T > Struct Template Reference

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.
 

Detailed Description

template<typename T>
struct stormm::trajectory::ConstraintKit< T >

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.

Member Data Documentation

◆ group_bounds

template<typename T>
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.

◆ group_list

template<typename T>
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.

◆ group_param_idx

template<typename T>
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.

◆ settle_mormt

template<typename T>
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.


The documentation for this struct was generated from the following file: