STORMM Source Documentation
Loading...
Searching...
No Matches
stormm::trajectory::MotionSweepWriter Struct Reference

Abstract of the MotionSweeper class, below, with non-const pointers to modifiable data. More...

#include <motion_sweeper.h>

Collaboration diagram for stormm::trajectory::MotionSweepWriter:

Public Member Functions

 MotionSweepWriter (int nwu_in, const int4 *work_units_in, const double *total_mass_in, double com_scale_in, double mv_scale_in, double inrt_scale_in, llint *xcom_in, llint *ycom_in, llint *zcom_in, llint *xcom_nxt_in, llint *ycom_nxt_in, llint *zcom_nxt_in, int *xcom_ovrf_in, int *ycom_ovrf_in, int *zcom_ovrf_in, int *xcom_nxt_ovrf_in, int *ycom_nxt_ovrf_in, int *zcom_nxt_ovrf_in, llint *xmv_in, llint *ymv_in, llint *zmv_in, llint *xmv_nxt_in, llint *ymv_nxt_in, llint *zmv_nxt_in, int *xmv_ovrf_in, int *ymv_ovrf_in, int *zmv_ovrf_in, int *xmv_nxt_ovrf_in, int *ymv_nxt_ovrf_in, int *zmv_nxt_ovrf_in, llint *rxmv_in, llint *rymv_in, llint *rzmv_in, llint *rxmv_nxt_in, llint *rymv_nxt_in, llint *rzmv_nxt_in, int *rxmv_ovrf_in, int *rymv_ovrf_in, int *rzmv_ovrf_in, int *rxmv_nxt_ovrf_in, int *rymv_nxt_ovrf_in, int *rzmv_nxt_ovrf_in, llint *inrt_in, llint *inrt_nxt_in, int *inrt_ovrf_in, int *inrt_nxt_ovrf_in)
 As with other abstracts, the constructor takes critical constants and pointers to initialize each of its member variables.
 
 MotionSweepWriter (const MotionSweepWriter &original)=default
 As with other abstracts, the presence of any const members invalidates the copy and move assignment operators (unless using special features of more recent C++ standards). The default copy and move constructors may be taken.
 
 MotionSweepWriter (MotionSweepWriter &&original)=default
 

Public Attributes

const int nwu
 The number of work units.
 
const int4work_units
 
const double * total_mass
 Total masses of each system in the synthesis.
 
const double com_scale
 
const double mv_scale
 
const double inrt_scale
 
llint * xcom
 Accumulators for center of mass along the X dimension.
 
llint * ycom
 Accumulators for center of mass along the Y dimension.
 
llint * zcom
 Accumulators for center of mass along the Z dimension.
 
llint * xcom_nxt
 Accumulators for COM along X in the next iteration.
 
llint * ycom_nxt
 Accumulators for COM along Y in the next iteration.
 
llint * zcom_nxt
 Accumulators for COM along Z in the next iteration.
 
int * xcom_ovrf
 Overflow bits for center of mass in the X dimension.
 
int * ycom_ovrf
 Overflow bits for center of mass in the Y dimension.
 
int * zcom_ovrf
 Overflow bits for center of mass in the Z dimension.
 
int * xcom_nxt_ovrf
 Overflow bits for COM along X in the next iteration.
 
int * ycom_nxt_ovrf
 Overflow bits for COM along Y in the next iteration.
 
int * zcom_nxt_ovrf
 Overflow bits for COM along Z in the next iteration.
 
llint * xmv
 Accumulators for net momentum along the X dimension.
 
llint * ymv
 Accumulators for net momentum along the Y dimension.
 
llint * zmv
 Accumulators for net momentum along the Z dimension.
 
llint * xmv_nxt
 Accumulators for net momentum in X in the next iteration.
 
llint * ymv_nxt
 Accumulators for net momentum in Y in the next iteration.
 
llint * zmv_nxt
 Accumulators for net momentum in Z in the next iteration.
 
int * xmv_ovrf
 Overflow bits for net momentum in the X dimension.
 
int * ymv_ovrf
 Overflow bits for net momentum in the Y dimension.
 
int * zmv_ovrf
 Overflow bits for net momentum in the Z dimension.
 
int * xmv_nxt_ovrf
 Overflow bits for net momentum in X in the next iteration.
 
int * ymv_nxt_ovrf
 Overflow bits for net momentum in Y in the next iteration.
 
int * zmv_nxt_ovrf
 Overflow bits for net momentum in Z in the next iteration.
 
llint * rxmv
 Accumulators for angular momentum about the X axis.
 
llint * rymv
 Accumulators for angular momentum about the Y axis.
 
llint * rzmv
 Accumulators for angular momentum about the Z axis.
 
llint * rxmv_nxt
 Angular momentum about the X axis in the next iteration.
 
llint * rymv_nxt
 Angular momentum about the Y axis in the next iteration.
 
llint * rzmv_nxt
 Angular momentum about the Z axis in the next iteration.
 
int * rxmv_ovrf
 Overflow bits for angular momentum about the X axis.
 
int * rymv_ovrf
 Overflow bits for angular momentum about the Y axis.
 
int * rzmv_ovrf
 Overflow bits for angular momentum about the Z axis.
 
int * rxmv_nxt_ovrf
 Overflow bits for X axis angular momentum in the next iteration.
 
int * rymv_nxt_ovrf
 Overflow bits for Y axis angular momentum in the next iteration.
 
int * rzmv_nxt_ovrf
 Overflow bits for Z axis angular momentum in the next iteration.
 
llint * inrt
 
llint * inrt_nxt
 Accumulators for the inertial tensor in the next iteration.
 
int * inrt_ovrf
 Overflow bits for the inertial tensor.
 
int * inrt_nxt_ovrf
 Overflow bits for the inertial tensor in the next iteration.
 

Detailed Description

Abstract of the MotionSweeper class, below, with non-const pointers to modifiable data.

Constructor & Destructor Documentation

◆ MotionSweepWriter()

stormm::trajectory::MotionSweepWriter::MotionSweepWriter ( const MotionSweepWriter & original)
default

As with other abstracts, the presence of any const members invalidates the copy and move assignment operators (unless using special features of more recent C++ standards). The default copy and move constructors may be taken.

Parameters
originalThe original abstract to copy or move

Member Data Documentation

◆ com_scale

const double stormm::trajectory::MotionSweepWriter::com_scale

Scaling factor taking quantities in units of g/mol - Angstroms into the fixed-precision format of the momentum accumulators

◆ inrt

llint* stormm::trajectory::MotionSweepWriter::inrt

Accumulators for the inertial tensor. Slots for each system are stored back-to-back, i.e. the slots for system i are (6 * i, (6 * i) + 1, ..., (6 * i) + 5, and slots for system i + 1 are (6 * i) + 6, (6 * i) + 7, ..., (6 * i) + 11.

◆ inrt_scale

const double stormm::trajectory::MotionSweepWriter::inrt_scale

Scaling factor taking quantities in units of g/mol - squared Angstroms into the fixed-precision format of the inertial tensor accumulators

◆ mv_scale

const double stormm::trajectory::MotionSweepWriter::mv_scale

Scaling factor taking quantities in units of g/mol - Angstroms per fs into the fixed-precision format of the momentum accumulators

◆ work_units

const int4* stormm::trajectory::MotionSweepWriter::work_units

Work units spanning all systems. Members of each tuple contain the index of the starting atom for the work unit to accumulate, upper limit of atom indices, and the system index to which the accumulation pertains in the "x", "y", and "z" members. The "w" member of each tuple indicates other tasks assigned to any given work unit.


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