STORMM Source Documentation
|
A writeable abstract which reinterprets some pointers to enable split fixed-precision accumulation within the PMIGrid object. More...
#include <pmigrid.h>
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 uint4 * | dims |
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 |
A writeable abstract which reinterprets some pointers to enable split fixed-precision accumulation within the PMIGrid object.
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.
const FFTMode stormm::energy::PMIGridAccumulator::fftm |
The layout of the FFT grid, implying a mode in which the FFT will be carried out
const int stormm::energy::PMIGridAccumulator::fp_bits |
The number of bits used in fixed-precision accumulation of whatever density the grids describe.
const float stormm::energy::PMIGridAccumulator::fp_scale |
Scaling factor applied to all contributions for fixed-precision accumulation
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
const int stormm::energy::PMIGridAccumulator::order |
The interpolation order for B-pline mapping of density to the particle-mesh interaction grid
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
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
int* stormm::energy::PMIGridAccumulator::overflow |
Overflow data to complement either lldata or idata, creating 95-bit and 63-bit split fixed-precision accumulators, respectively.
const NonbondedTheme stormm::energy::PMIGridAccumulator::theme |
The non-bonded property mapped to the particle-mesh interaction grid
const uint* stormm::energy::PMIGridAccumulator::work_units |
Array of 32-element work units to guide certain types of accumulation kernels
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.