STORMM Source Documentation
Loading...
Searching...
No Matches
stormm::energy::PMIGridAccumulator Struct Reference

A writeable abstract which reinterprets some pointers to enable split fixed-precision accumulation within the PMIGrid object. More...

#include <pmigrid.h>

Collaboration diagram for stormm::energy::PMIGridAccumulator:

Public Member Functions

 PMIGridAccumulator (NonbondedTheme theme_in, PrecisionModel mode_in, FFTMode fftm_in, bool use_overflow_in, int fp_bits_in, int nsys_in, int order_in, int wu_count_in, const uint4 *dims_in, double *ddata_in, float *fdata_in, int *overflow_in, const uint *work_units_in)
 The constructor takes inputs from the object's member variables and re-interprets some of them as necessary.
 
 PMIGridAccumulator (const PMIGridAccumulator &original)=default
 As with other abstracts, the presence of one or more const members forbids definition of the copy and move assignment operators, but with no pointers to repair the default copy and move constructors apply.
 
 PMIGridAccumulator (PMIGridAccumulator &&original)=default
 

Public Attributes

const NonbondedTheme theme
 
const PrecisionModel mode
 The mode in which the object is to operate.
 
const FFTMode fftm
 
const bool use_overflow
 Flag to indicate that overflow accumulators must be used.
 
const int fp_bits
 
const float fp_scale
 
const int nsys
 
const int order
 
const int order_squared
 
const int order_cubed
 
const int wu_count
 
const uint4dims
 
llint * lldata
 Primary accumulator for 95-bit split fixed precision data.
 
int * idata
 Primary accumulator for 63-bit split fixed precision data.
 
int * overflow
 
const uint * work_units
 

Detailed Description

A writeable abstract which reinterprets some pointers to enable split fixed-precision accumulation within the PMIGrid object.

Member Data Documentation

◆ dims

const uint4* stormm::energy::PMIGridAccumulator::dims

Dimensions of each PMI grid. A-, B-, and C-axis lengths are found in the "x", "y", and "z" members of the tuple, with the offset for the start of each grid in the "w" member.

◆ fftm

const FFTMode stormm::energy::PMIGridAccumulator::fftm

The layout of the FFT grid, implying a mode in which the FFT will be carried out

◆ fp_bits

const int stormm::energy::PMIGridAccumulator::fp_bits

The number of bits used in fixed-precision accumulation of whatever density the grids describe.

◆ fp_scale

const float stormm::energy::PMIGridAccumulator::fp_scale

Scaling factor applied to all contributions for fixed-precision accumulation

◆ nsys

const int stormm::energy::PMIGridAccumulator::nsys

The number of systems in the synthesis served by this object, and a trusted length for the dims array below

◆ order

const int stormm::energy::PMIGridAccumulator::order

The interpolation order for B-pline mapping of density to the particle-mesh interaction grid

◆ order_cubed

const int stormm::energy::PMIGridAccumulator::order_cubed

Cube of the interpolation order, for tracking progress in naive mapping methods when multiple warps may work on the same atom

◆ order_squared

const int stormm::energy::PMIGridAccumulator::order_squared

Square of the interpolation order, for tracking progress in naive mapping methods when multiple warps may work on the same atom

◆ overflow

int* stormm::energy::PMIGridAccumulator::overflow

Overflow data to complement either lldata or idata, creating 95-bit and 63-bit split fixed-precision accumulators, respectively.

◆ theme

const NonbondedTheme stormm::energy::PMIGridAccumulator::theme

The non-bonded property mapped to the particle-mesh interaction grid

◆ work_units

const uint* stormm::energy::PMIGridAccumulator::work_units

Array of 32-element work units to guide certain types of accumulation kernels

◆ wu_count

const int stormm::energy::PMIGridAccumulator::wu_count

The number of work units built to guide special-purpose GPU kernels. When multiplied by 32, this is the trusted length of work_units.


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