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

Collect the critical non-bonded parameters and masking information for work unit-based evaluation of the systems in an AtomGraphSynthesis. Compared to the abstracts for a single system's AtomGraph, this merges the ImplicitSolventKit and NonbondedKit. For comparison, the SyValenceKit object merges the information for valence interactions, constraints, and virtual sites abstracts from the single topology's set of abstracts. More...

#include <synthesis_abstracts.h>

Collaboration diagram for stormm::trajectory::SyNonbondedKit< T, T2 >:

Public Member Functions

 SyNonbondedKit (int nsys_in, UnitCellType unit_cell_in, int nnbwu_in, const int *nbwu_abstracts_in, const uint2 *nbwu_insr_in, const int *atom_offsets, const int *atom_counts, T coulomb_in, ImplicitSolventModel igb_in, int neck_table_size_in, T dielectric_in, T kappa_in, T saltcon_in, T gb_offset_in, T gb_neckscale_in, T gb_neckcut_in, const T *charge_in, const int *q_idx_in, const T *q_params_in, const int *lj_idx_in, const int *n_lj_types_in, const int *ljabc_offsets_in, const T2 *ljab_coeff_in, const T *ljc_coeff_in, const T *lj_sigma_in, const int *neck_gb_idx_in, const T *pb_radii_in, const T *gb_screen_in, const T *gb_alpha_in, const T *gb_beta_in, const T *gb_gamma_in, const T2 *neck_limits_in)
 The constructor takes a straight list of arguments for each member variable.
 
 SyNonbondedKit (const SyNonbondedKit &original)=default
 The copy and move constructors are taken at their default values for this abstract containing const elements.
 
 SyNonbondedKit (SyNonbondedKit &&original)=default
 

Public Attributes

const int nsys
 The total number of systems in the synthesis.
 
const UnitCellType unit_cell
 The type of unit cell for all systems.
 
const int nnbwu
 The number of non-bonded work units in the synthesis.
 
const int * nbwu_abstracts
 Abstracts for all non-bonded work units.
 
const uint2nbwu_insr
 Instructions for all non-bonded work units.
 
const int * atom_offsets
 
const int * atom_counts
 
const T coulomb
 
const ImplicitSolventModel igb
 
const int neck_table_size
 Length of each side of the square "neck" GB limit tables.
 
const T dielectric
 Solvent dielectric constant.
 
const T kappa
 Inverse of the Debye-Huckel length (based on the dielectic)
 
const T saltcon
 The salt concentration to use in GB calculations.
 
const T gb_offset
 
const T gb_neckscale
 Neck function scaling parameter for neck GB.
 
const T gb_neckcut
 Cutoff for the "neck" GB function.
 
const T * charge
 
const int * q_idx
 
const T * q_params
 
const int * lj_idx
 
const int * n_lj_types
 Lennard-Jones type counts for all systems.
 
const int * ljabc_offsets
 
const T2 * ljab_coeff
 Lennard-Jones interaction A and B coefficients.
 
const T * ljc_coeff
 Lennard-Jones interaction C coefficients.
 
const T * lj_sigma
 Lennard-Jones sigma parameters for all atom type pairs.
 
const int * neck_gb_idx
 
const T * pb_radii
 Atomic PB radii for all atoms in all systems.
 
const T * gb_screen
 Generalized Born screening factors for all atoms and systems.
 
const T * gb_alpha
 Generalized born alpha parameters (one parameter per atom)
 
const T * gb_beta
 Generalized born beta parameters (one parameter per atom)
 
const T * gb_gamma
 Generalized born gamma parameters (one parameter per atom)
 
const T2 * neck_limits
 Interlaced neck GB maximum separations and values tables.
 

Detailed Description

template<typename T, typename T2>
struct stormm::trajectory::SyNonbondedKit< T, T2 >

Collect the critical non-bonded parameters and masking information for work unit-based evaluation of the systems in an AtomGraphSynthesis. Compared to the abstracts for a single system's AtomGraph, this merges the ImplicitSolventKit and NonbondedKit. For comparison, the SyValenceKit object merges the information for valence interactions, constraints, and virtual sites abstracts from the single topology's set of abstracts.

Member Data Documentation

◆ atom_counts

template<typename T, typename T2>
const int* stormm::synthesis::SyNonbondedKit< T, T2 >::atom_counts

Atom counts for each system (needed to determine whether tiles overrun the end of any one system)

◆ atom_offsets

template<typename T, typename T2>
const int* stormm::synthesis::SyNonbondedKit< T, T2 >::atom_offsets

Offsets for the atom indices of each system (needed to determine whether tiles overrun the end of any one system)

◆ charge

template<typename T, typename T2>
const T* stormm::synthesis::SyNonbondedKit< T, T2 >::charge

Partial charges for all atoms in the synthesis (one concatenated array, with each system's atoms padded by the warp size)

◆ coulomb

template<typename T, typename T2>
const T stormm::synthesis::SyNonbondedKit< T, T2 >::coulomb

Coulomb's constant (charges are stored in atomic units and converted to factor this in at the time they are cached)

◆ gb_offset

template<typename T, typename T2>
const T stormm::synthesis::SyNonbondedKit< T, T2 >::gb_offset

Offset for baseline Generalized Born radii (default 0.9, larger for neck GB model II)

◆ igb

template<typename T, typename T2>
const ImplicitSolventModel stormm::synthesis::SyNonbondedKit< T, T2 >::igb

The flavor of Generalized Born to use, i.e. Hawkins / Cramer / Truhlar

◆ lj_idx

template<typename T, typename T2>
const int* stormm::synthesis::SyNonbondedKit< T, T2 >::lj_idx

Lennard-Jones indices for all atoms. Each system may have its own specific parameter matricies, with offsets given in the ljabc_offsets array (see below).

◆ ljabc_offsets

template<typename T, typename T2>
const int* stormm::synthesis::SyNonbondedKit< T, T2 >::ljabc_offsets

Offsets for Lennard-Jones A, B, and C coefficient tables for all systems

◆ neck_gb_idx

template<typename T, typename T2>
const int* stormm::synthesis::SyNonbondedKit< T, T2 >::neck_gb_idx

Neck GB indicies for all atoms in each system, applicable for Mongan's "neck" GB models

◆ q_idx

template<typename T, typename T2>
const int* stormm::synthesis::SyNonbondedKit< T, T2 >::q_idx

Indices of atomic charge parameters. The charge for atom i can be obtained by accessing the ith element of the array charge, or by accessing the ith element of this array and then following that index into the q_params array.

◆ q_params

template<typename T, typename T2>
const T* stormm::synthesis::SyNonbondedKit< T, T2 >::q_params

List of unique atomic partial charge parameters, indexed by q_idx above.


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