STORMM Source Documentation
|
Unguarded struct to hold the results of a constraint analysis. Constraint groups as well as fast, rigid waters will be selected. All atoms that might participate in constraints will be selected and drawn into groups; whether those groups are applied is a matter for input parameters to decide further on in the program. More...
#include <atomgraph_refinement.h>
Public Member Functions | |
ConstraintTable (const std::vector< int > &atomic_numbers, const std::vector< double > &atomic_masses, const std::vector< int > &mol_limits, const std::vector< int > &mol_contents, const std::vector< int > &mol_home, const BasicValenceTable &bvt, const Map1234 &all_nb_excl, const std::vector< double > &bond_equilibria, const std::vector< double > &angl_equilibria) | |
The constructor handles all allocations based on its input arguments. | |
Public Attributes | |
int | cnst_group_count |
Number of constraint groups found. | |
int | settle_group_count |
Number of SETTLE-suitable fast rigid waters found. | |
int | cnst_parameter_count |
int | settle_parameter_count |
std::vector< int > | cnst_group_list |
Concatenated list of atoms in all constraint groups. | |
std::vector< int > | cnst_group_bounds |
Bounds array for cnst_group_list. | |
std::vector< int > | cnst_group_param_idx |
std::vector< int > | settle_ox_atoms |
std::vector< int > | settle_h1_atoms |
std::vector< int > | settle_h2_atoms |
std::vector< int > | settle_param_idx |
std::vector< double2 > | cnst_parameter_list |
std::vector< int > | cnst_parameter_bounds |
Bounds array for constraint_group_parameters. | |
std::vector< SettleParm > | settle_measurements |
Unguarded struct to hold the results of a constraint analysis. Constraint groups as well as fast, rigid waters will be selected. All atoms that might participate in constraints will be selected and drawn into groups; whether those groups are applied is a matter for input parameters to decide further on in the program.
stormm::topology::ConstraintTable::ConstraintTable | ( | const std::vector< int > & | atomic_numbers, |
const std::vector< double > & | atomic_masses, | ||
const std::vector< int > & | mol_limits, | ||
const std::vector< int > & | mol_contents, | ||
const std::vector< int > & | mol_home, | ||
const BasicValenceTable & | bvt, | ||
const Map1234 & | all_nb_excl, | ||
const std::vector< double > & | bond_equilibria, | ||
const std::vector< double > & | angl_equilibria ) |
The constructor handles all allocations based on its input arguments.
atomic_numbers | Atomic numbers of all atoms in the system (0 for virtual sites) |
atomic_mass | Masses of all atoms, in atomic mass units (Daltons) |
mol_limits | Starting an ending bounds for reading the contents of each molecule in mol_contents |
mol_contents | Topological atom indices indicating the contents of each molecule |
mol_home | Molecules to which each atom belongs, the kth element of the array being the molecule home of atom k in the topology |
all_nb_excl | Connectivity information can be inferred by examining the 1:2 exclusion information, which is reflexive within this object (if atom j excludes atom i, then atom i also excludes atom j) |
bond_equilibria | Equilibrium lengths of all harmonic bond parameters |
angl_equilibria | Equilibrium lengths of all harmonic angle parameters |
std::vector<int> stormm::topology::ConstraintTable::cnst_group_param_idx |
Indices into the list of constraint group parameter sets for each constraint group
int stormm::topology::ConstraintTable::cnst_parameter_count |
Number of unique constraint group parameters sets. A constraint group parameter set consists of the masses of every atom and the bond lengths between the central atom and each of its subsidiary hydrogens, in order. Every constraint group of unique size, i.e. one central atom with three subsidiaries, will have at least one unique parameter set.
std::vector<double2> stormm::topology::ConstraintTable::cnst_parameter_list |
Parameters for constraint groups–each stretch of the array is one parameter set, with demarcations provided by the following bounds array. Each tuple encodes an inverse atom mass in the x member and a target bond length in the y member. The order of these tuples follows the order of atoms in each constraint group: central heavy atom, followed by a series of bound hydrogen atoms. The bond length assigned to the central heavy atom is meaningless.
std::vector<int> stormm::topology::ConstraintTable::settle_h1_atoms |
Topological indices of the first "hydrogen" atoms in SETTLE groups
std::vector<int> stormm::topology::ConstraintTable::settle_h2_atoms |
Topological indices of the second "hydrogen" atoms in SETTLE groups
std::vector<int> stormm::topology::ConstraintTable::settle_ox_atoms |
Topological indices of "oxygen" atoms in SETTLE groups (this can also include other residues that match the "one heavy atom, two symmetric light atoms" shape requirements of the SETTLE algorithm)
std::vector<int> stormm::topology::ConstraintTable::settle_param_idx |
Indices into the lists of SETTLE constraint group parameter sets
int stormm::topology::ConstraintTable::settle_parameter_count |
Number of unique SETTLE parameter sets (a SETTLE parameter set consists of the masses of "oxygen" and "hydrogen" atoms plus the bond lengths between any pair of the three atoms–five numbers in all)