STORMM Source Documentation
|
Information needed for non-bonded real-space calculations. Templating is used as above, to provide different levels of precision in the real number representation. More...
#include <atomgraph_abstracts.h>
Public Member Functions | |
NonbondedKit (int natom_in, int n_q_types_in, int n_lj_types_in, const T coulomb_constant_in, const T *charge_in, const int *q_idx_in, const int *lj_idx_in, const T *q_parameter_in, const T *lja_coeff_in, const T *ljb_coeff_in, const T *ljc_coeff_in, const T *lja_14_coeff_in, const T *ljb_14_coeff_in, const T *ljc_14_coeff_in, const T *lj_sigma, const T *lj_14_sigma, const int *nb11x_in, const int *nb11_bounds_in, const int *nb12x_in, const int *nb12_bounds_in, const int *nb13x_in, const int *nb13_bounds_in, const int *nb14x_in, const int *nb14_bounds_in, const T *lj_type_corr_in) | |
As with most other astracts, the constructor is the only member function of significance. It takes a long list of arguments one for each of its member variables. | |
NonbondedKit (const NonbondedKit &original)=default | |
Take the default copy and move constructors. The assignment operators will get implicitly deleted as this is just a collection of constants. | |
NonbondedKit (NonbondedKit &&other)=default | |
Public Attributes | |
const int | natom |
The number of atoms in the system. | |
const int | n_q_types |
The number of unique charge types in the system. | |
const int | n_lj_types |
The number of unique Lennard-Jones atom types in the system. | |
const T | coulomb_constant |
Coulomb's constant in units of kcal-A/mol-e^2. | |
const T * | charge |
Partial atomic charges on all atoms. | |
const int * | q_idx |
Partial charge type indices for all atoms. | |
const int * | lj_idx |
Lennard-Jones type indices of all atoms. | |
const T * | q_parameter |
const T * | lja_coeff |
const T * | ljb_coeff |
Lennard_jones B coefficients, again tabulated as a square matrix. | |
const T * | ljc_coeff |
Lennard_jones C coefficients, again tabulated as a square matrix. | |
const T * | lja_14_coeff |
const T * | ljb_14_coeff |
Lennard_jones B coefficients for 1:4 interactions. | |
const T * | ljc_14_coeff |
Lennard_jones C coefficients for 1:4 interactions. | |
const T * | lj_sigma |
Lennard_jones sigma parameters. | |
const T * | lj_14_sigma |
Lennard_jones sigma parameters for 1:4 interactions. | |
const int * | nb11x |
Non-bonded 1:1 exclusions, applicable to virtual sites. | |
const int * | nb11_bounds |
Non-bonded 1:1 exclusion array bounds for each atom. | |
const int * | nb12x |
Non-bonded 1:2 exclusions, applicable to bonded atoms. | |
const int * | nb12_bounds |
Non-bonded 1:2 exclusion array bounds for each atom. | |
const int * | nb13x |
const int * | nb13_bounds |
Non-bonded 1:3 exclusion array bounds for each atom. | |
const int * | nb14x |
Non-bonded 1:4 exclusions, applicable to atoms in proper torsions. | |
const int * | nb14_bounds |
Non-bonded 1:4 exclusion array bounds for each atom. | |
const T * | lj_type_corr |
Information needed for non-bonded real-space calculations. Templating is used as above, to provide different levels of precision in the real number representation.
const T* stormm::topology::NonbondedKit< T >::lj_type_corr |
Lennard-Jones energy corrections for each atom type (used only in energy calculations)
const T* stormm::topology::NonbondedKit< T >::lja_14_coeff |
Lennard-Jones A coefficients for 1:4 interactions, tabulated as a square matrix in the same form as lja_coeff
const T* stormm::topology::NonbondedKit< T >::lja_coeff |
Lennard-Jones A coefficients for all atoms, tabulated as a square matrix of rank (number of Lennard-Jones types)
const int* stormm::topology::NonbondedKit< T >::nb13x |
Non-bonded 1:3 exclusions, applicable to atoms in bond angles and Urey-Bradley terms
const T* stormm::topology::NonbondedKit< T >::q_parameter |
Partial atomic charges for each charge type (this will almost certainly be smaller than the array of charges for every atom, as there are only about 350 unique chargees in a protein force field and two in most water models). The representation here is not more memory-efficient than accessing the single-precision charge data, however, as the 32-bit index is a memory access of its own. However, in the AtomGraphSynthesis an array of bit-packed unsigned integers that delivers both the charge and Lennard-Jones parameter indices for each atom will offer the most performant solution.