STORMM Source Documentation
|
Collect the virtual site details and constraint parameters of the topology synthesis into a single abstract. This is designed to work in the context of the valence work units from the same topology synthesis, whether in a standalone function or as an extra step in a workflow that compute valence interactions and then moves particles. More...
#include <synthesis_abstracts.h>
Public Member Functions | |
SyAtomUpdateKit (const T *masses_in, const T *inv_masses_in, int largest_group_in, const T4 *vs_params_in, const T4 *settle_geom_in, const T4 *settle_mass_in, const T2 *cnst_grp_params_in, const uint2 *vste_insr_in, const uint2 *sett_insr_in, const uint2 *cnst_insr_in, const uint2 *vwu_manip_in, const int *free_dof_in, const int *cnst_dof_in) | |
The constructor takes a list of parameter arrays. Like other AtomGraphSynthesis abstracts, the actual numbers of parameters in each array, which are irrelevant to the implementation as long as the work unit instructions do not overrun the bounds, are omitted to save space on the constants imported as arguments to each kernel. The numbers of each instruction are found in the valence work units. | |
SyAtomUpdateKit (const SyAtomUpdateKit &original)=default | |
The copy and move constructors are taken at their default values for this abstract containing const elements. | |
SyAtomUpdateKit (SyAtomUpdateKit &&original)=default | |
Public Attributes | |
const T * | masses |
Masses of all particles. | |
const T * | inv_masses |
Inverse masses of all particles. | |
const int | largest_group |
const T4 * | vs_params |
const T4 * | settle_geom |
const T4 * | settle_mass |
const T2 * | cnst_grp_params |
const uint2 * | vste_insr |
Virtual site placement instructions. | |
const uint2 * | sett_insr |
SETTLE group constraints instructions. | |
const uint2 * | cnst_insr |
Hub-and-spoke constraint instructions. | |
const uint2 * | vwu_manip |
const int * | free_dof |
const int * | cnst_dof |
Collect the virtual site details and constraint parameters of the topology synthesis into a single abstract. This is designed to work in the context of the valence work units from the same topology synthesis, whether in a standalone function or as an extra step in a workflow that compute valence interactions and then moves particles.
const int* stormm::synthesis::SyAtomUpdateKit< T, T2, T4 >::cnst_dof |
The number of degrees of freedom, in each system as a whole, constraints are applied
const T2* stormm::synthesis::SyAtomUpdateKit< T, T2, T4 >::cnst_grp_params |
Squared bond length (x member) and the sum of inverse masses for both atoms (y member) in one constraint (of perhaps several) of a hub-and-spoke constraint group.
const int* stormm::synthesis::SyAtomUpdateKit< T, T2, T4 >::free_dof |
The number of degrees of freedom, in each system as a whole, when no constraints are applied
const int stormm::synthesis::SyAtomUpdateKit< T, T2, T4 >::largest_group |
Number of constrained bonds in the largest hub-and-spoke group found in any topology
const T4* stormm::synthesis::SyAtomUpdateKit< T, T2, T4 >::settle_geom |
Geometric considerations for SETTLE-constrained groups. The SETTLE instructions will indicate which parameter set, and thus which index of this array to take. The "x", "y", "z", and "w" members of each tuple contain what are known as ra, rb, rc, and the combined mass of the heavy atom and one of the light atoms (for lack of a better place to put the information which is needed at nearly the same time as the three geometric values).
const T4* stormm::synthesis::SyAtomUpdateKit< T, T2, T4 >::settle_mass |
Inverse mass considerations for SETTLE-constrained groups. The SETTLE instructions will indicate which parameter set, and thus which index of this array, to take.
const T4* stormm::synthesis::SyAtomUpdateKit< T, T2, T4 >::vs_params |
Unique virtual site frames, with the first, second, and third dimension parameters in the x, y, and z members of the tuple. The frame type is stored in the w member as a static_cast (not a bitwise reinterpretation).
const uint2* stormm::synthesis::SyAtomUpdateKit< T, T2, T4 >::vwu_manip |
Manipulation masks (movement in x member, update in y member) for all valence work units