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

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
 

Detailed Description

template<typename T>
struct stormm::synthesis::NonbondedKit< T >

Information needed for non-bonded real-space calculations. Templating is used as above, to provide different levels of precision in the real number representation.

Member Data Documentation

◆ lj_type_corr

template<typename T>
const T* stormm::topology::NonbondedKit< T >::lj_type_corr

Lennard-Jones energy corrections for each atom type (used only in energy calculations)

◆ lja_14_coeff

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

◆ lja_coeff

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

◆ nb13x

template<typename T>
const int* stormm::topology::NonbondedKit< T >::nb13x

Non-bonded 1:3 exclusions, applicable to atoms in bond angles and Urey-Bradley terms

◆ q_parameter

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


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