STORMM Source Documentation
Loading...
Searching...
No Matches
stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 > Struct Template Reference

Read-only abstract for the CellGrid object. This is unused in typical MD applications, when it is always the case that the cell grid positions and atom content are being updated or forces are being accumulated, but it may be useful when the cell grid is in demand strictly as a directory of which atoms are close to one another for building or detailing some other object. The associated workspace variables are not included in this form of the abstract. More...

#include <cellgrid.h>

Collaboration diagram for stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >:

Public Member Functions

 CellGridReader (NonbondedTheme theme_in, int system_count_in, int total_cell_count_in, int total_chain_count_in, int mesh_ticks_in, uint cell_base_capacity_in, float lpos_scale_in, float inv_lpos_scale_in, float inv_frc_scale_in, const ullint *system_cell_grids_in, const Tcalc *system_cell_umat_in, const T *system_cell_invu_in, const T *system_pmig_invu_in, const uint2 *cell_limits_in, const uint *chain_limits_in, const int *system_chain_bounds_in, const int *chain_system_owner_in, const T4 *image_in, const int *nonimg_atom_idx_in, const uint *img_atom_idx_in, const ushort *img_atom_chn_cell_in, const int *nt_groups_in, const ushort *relevance_in, const Tacc *xfrc_in, const Tacc *yfrc_in, const Tacc *zfrc_in, const int *xfrc_ovrf_in, const int *yfrc_ovrf_in, const int *zfrc_ovrf_in)
 As is other abstracts, the constructor takes a list of inputs for all member variables.
 
 CellGridReader (const CellGridWriter< T, Tacc, Tcalc, T4 > &cgw)
 
 CellGridReader (const CellGridWriter< T, Tacc, Tcalc, T4 > *cgw)
 
 CellGridReader (const CellGridReader &original)=default
 The const-ness of all members implicitly deletes the copy and move assignment operators, but the default copy and move constructors are valid.
 
 CellGridReader (CellGridReader &&original)=default
 

Public Attributes

const NonbondedTheme theme
 
const int system_count
 Number of systems whose spatial decompositions are stored.
 
const int total_cell_count
 The total number of decomposition cells across all systems.
 
const int twice_cell_count
 Twice the number of decomposition cells across all systems.
 
const int total_chain_count
 
const int mesh_ticks
 
const uint cell_base_capacity
 
const float lpos_scale
 
const float inv_lpos_scale
 
const float inv_frc_scale
 
const ullint * system_cell_grids
 
const Tcalc * system_cell_umat
 
const T * system_cell_invu
 
const T * system_pmig_invu
 
const uint2cell_limits
 
const uint * chain_limits
 
const int * system_chain_bounds
 
const int * chain_system_owner
 
const T4 * image
 The array of atom coordinates and property information.
 
const int * nonimg_atom_idx
 
const uint * img_atom_idx
 
const ushort * img_atom_chn_cell
 
const int * nt_groups
 
const ushort * relevance
 
const Tacc * xfrc
 Accumulated Cartesian X forces on all imaged particles.
 
const Tacc * yfrc
 Accumulated Cartesian Y forces on all imaged particles.
 
const Tacc * zfrc
 Accumulated Cartesian Z forces on all imaged particles.
 
const int * xfrc_ovrf
 Overflow bits for xfrc.
 
const int * yfrc_ovrf
 Overflow bits for yfrc.
 
const int * zfrc_ovrf
 Overflow bits for zfrc.
 

Detailed Description

template<typename T, typename Tacc, typename Tcalc, typename T4>
struct stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >

Read-only abstract for the CellGrid object. This is unused in typical MD applications, when it is always the case that the cell grid positions and atom content are being updated or forces are being accumulated, but it may be useful when the cell grid is in demand strictly as a directory of which atoms are close to one another for building or detailing some other object. The associated workspace variables are not included in this form of the abstract.

Member Data Documentation

◆ cell_base_capacity

template<typename T, typename Tacc, typename Tcalc, typename T4>
const uint stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >::cell_base_capacity

The maximum capacity of any one cell (all cells in a row along a simulation box's A axis share their excess capacity, making a provision for one cell to take on a much larger number of atoms)

◆ cell_limits

template<typename T, typename Tacc, typename Tcalc, typename T4>
const uint2* stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >::cell_limits

Limits of the atoms in each cell out of the entire image. The "x" and member of the tuple provides an absolute index within the current image for the lower bound of atoms. The "y" member provides, in its low 16 bits, the system index (the maximum number of systems is set in maximum_cellgrid_systems). The "y" member of the tuple also provides, in its high 16 bits, the number of atoms in the particular cell. The system index must be used to retrieve information in system_cell_grids in order to put the cell in context and see, for example, which other cells are its neighbors.

◆ chain_limits

template<typename T, typename Tacc, typename Tcalc, typename T4>
const uint* stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >::chain_limits

Immutable limits on the cell chains within each cell grid. The ith chain cannot hold more than a number of atoms given by chain_limits[i + 1] - chain_limits[i]. The atom capacity across chains in a particular system is consistent, but different systems may have different capacities.

◆ chain_system_owner

template<typename T, typename Tacc, typename Tcalc, typename T4>
const int* stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >::chain_system_owner

Indices of the systems that own each chain. The system which owns the kth chain of cells is given by the value of chain_system_owner[k].

◆ img_atom_chn_cell

template<typename T, typename Tacc, typename Tcalc, typename T4>
const ushort* stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >::img_atom_chn_cell

The cell index of the chain in which each atom of the image resides. Chains proceed along each system's unit cell A axis.

◆ img_atom_idx

template<typename T, typename Tacc, typename Tcalc, typename T4>
const uint* stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >::img_atom_idx

Indices where each atom of the associated synthesis of molecular systems can be found in the image. To figure out the image array location of the kth atom of some PhaseSpaceSynthesis or AtomGraphSynthesis, look up img_atom_idx[k].

◆ inv_frc_scale

template<typename T, typename Tacc, typename Tcalc, typename T4>
const float stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >::inv_frc_scale

Scaling factor to apply to forces read from the available fixed-precision arrays

◆ inv_lpos_scale

template<typename T, typename Tacc, typename Tcalc, typename T4>
const float stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >::inv_lpos_scale

The inverse scaling factor applied to coordinates in the images

◆ lpos_scale

template<typename T, typename Tacc, typename Tcalc, typename T4>
const float stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >::lpos_scale

The local position scaling factor applied to coordinates in the images (expressed as a 32-bit floating point number, as this will be converted to 64-bit format with no more or less information if needed)

◆ mesh_ticks

template<typename T, typename Tacc, typename Tcalc, typename T4>
const int stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >::mesh_ticks

The number of mesh grid spacings per spatial decomposition cell, pertaining to a particle-mesh interaction grid associated with the neighbor list decomposition.

◆ nonimg_atom_idx

template<typename T, typename Tacc, typename Tcalc, typename T4>
const int* stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >::nonimg_atom_idx

Indices of each atom in the image within the associated synthesis of molecular systems (a PhaseSpaceSynthesis as well as an AtomGraphSynthesis, where atoms are held in topological order). The value of nonimg_atom_idx[k] indicates what atom out of the PhaseSpaceSynthesis and corresponding AtomGraphSynthesis the kth atom of the image really is.

◆ nt_groups

template<typename T, typename Tacc, typename Tcalc, typename T4>
const int* stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >::nt_groups

Concatenated lists of cells associated by the "tower and plate" neutral territory decomposition. The ith group of 16 elements from this list enumerates the cells to associate with the ith cell, whose atom limits are described in the cell_limits or cell_limits_alt arrays.

◆ relevance

template<typename T, typename Tacc, typename Tcalc, typename T4>
const ushort* stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >::relevance

Indicators of the relevance of each atom in the present image to the neighbor list cells surrounding it, in terms of the atom being within range of any volume element of the nearby

◆ system_cell_grids

template<typename T, typename Tacc, typename Tcalc, typename T4>
const ullint* stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >::system_cell_grids

Dimensions of each cell grid and the starting point for its cells in the array

◆ system_cell_invu

template<typename T, typename Tacc, typename Tcalc, typename T4>
const T* stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >::system_cell_invu

Inverse transformation matrix for each system's individual cells. The columns of this matrix indicate the size of the cell.

◆ system_cell_umat

template<typename T, typename Tacc, typename Tcalc, typename T4>
const Tcalc* stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >::system_cell_umat

Transformation matrices for taking Cartesian coordinates into the fractional space of the local coordinate system in each system's individual cells.

◆ system_chain_bounds

template<typename T, typename Tacc, typename Tcalc, typename T4>
const int* stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >::system_chain_bounds

Bounds on the list of chains held by each system. The process is for one or more blocks to look up these limits and then do chains from within the system before looking up new limits and moving on to the next block. With the chain bounds known, the proper limits of atoms found in chain_limits can be accessed, and from those the lists of atoms in each cell of the chain.

◆ system_pmig_invu

template<typename T, typename Tacc, typename Tcalc, typename T4>
const T* stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >::system_pmig_invu

Inverse transformation matrix for each system's individual particle-mesh interaction grid elements. The columns of this matrix indicate the size of the cell.

◆ theme

template<typename T, typename Tacc, typename Tcalc, typename T4>
const NonbondedTheme stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >::theme

The non-bonded property for which the neighbor list is maintained (electrostatic, van-der Waals, or both)

◆ total_chain_count

template<typename T, typename Tacc, typename Tcalc, typename T4>
const int stormm::energy::CellGridReader< T, Tacc, Tcalc, T4 >::total_chain_count

The number of cell chains, groups of cells found in a row along the unit cell A axis of one simulation, across all systems


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