STORMM Source Documentation
|
Object to manage and stage recentering and momentum removal for a coordinate synthesis. The object does not support asynchronous work unit scheduling but does contain two alternating sets of accumulators so that one set can be initialized when the other is in use. More...
#include <motion_sweeper.h>
Public Member Functions | |
int | getSystemCount () const |
Get the number of systems that the object is set up to serve. | |
int | getWorkUnitCount () const |
Get the total number of work units spanning all systems. | |
CoordinateCycle | getCyclePosition () const |
Get the object's current place in the time cycle. | |
int | getMomentumBitCount () const |
Get the number of bits used for fixed-precision accumulation of the momentum. | |
int | getCenterOfMassBitCount () const |
Get the number of bits used for fixed-precision accumulation in the center of mass computation. | |
int | getInertialTensorBitCount () const |
Get the number of bits used for fixed-precision accumulation of the rotational moment of inertia tensor. | |
double3 | getNetVelocity (int idx, HybridTargetLevel tier=HybridTargetLevel::HOST) const |
Get the net velocity of a specific system, relative to the coordinate origin. | |
double3 | getCenterOfMass (int idx, HybridTargetLevel tier=HybridTargetLevel::HOST) const |
Get the center of mass as found for a specific system. Like the other accessors, above, this function can be used to inspect the accumulations and determine the results before all such quantities are purged. Descriptions of input parameters follow from getNetMomentum(), above. | |
std::vector< double > | getInertialTensor (int idx, HybridTargetLevel tier=HybridTargetLevel::HOST) const |
Get the inertial tensor accumulated for a specific system. Descriptions of input parameters follow from getNetVelocity(), above. | |
double3 | getAngularVelocity (int idx, HybridTargetLevel tier=HybridTargetLevel::HOST) const |
Get the angular velocity of the system about its center of mass. Descriptions of input parameters follow from getNetVelocity(), above. | |
MotionSweeper (const PhaseSpaceSynthesis *poly_ps, int momentum_bit_count_in=default_momentum_scale_bits, int center_of_mass_bit_count_in=default_com_scale_bits, int inertia_bit_count_in=default_inertia_scale_bits) | |
Class constructors take as their argument the PhaseSpaceSynthesis which the object will serve. A fixed-precision model can also be specified. | |
MotionSweeper (const PhaseSpaceSynthesis &poly_ps, int momentum_bit_count_in=default_momentum_scale_bits, int center_of_mass_bit_count_in=default_com_scale_bits, int inertia_bit_count_in=default_inertia_scale_bits) | |
MotionSweeper (const MotionSweeper &original) | |
The copy and move constructors as wel as assignment operators require pointer repair and must therefore be coded manually. | |
MotionSweeper (MotionSweeper &&original) | |
MotionSweeper & | operator= (const MotionSweeper &other) |
MotionSweeper & | operator= (MotionSweeper &&other) |
void | updateCyclePosition () |
Modify the object's stage in the coordinate cycle. | |
void | updateCyclePosition (CoordinateCycle time_point) |
MotionSweepWriter | data (CoordinateCycle orientation, HybridTargetLevel tier=HybridTargetLevel::HOST) |
Get the abstract. | |
MotionSweepWriter | data (HybridTargetLevel tier=HybridTargetLevel::HOST) |
const MotionSweepReader | data (CoordinateCycle orientation, HybridTargetLevel tier=HybridTargetLevel::HOST) const |
const MotionSweepReader | data (HybridTargetLevel tier=HybridTargetLevel::HOST) const |
Object to manage and stage recentering and momentum removal for a coordinate synthesis. The object does not support asynchronous work unit scheduling but does contain two alternating sets of accumulators so that one set can be initialized when the other is in use.
stormm::trajectory::MotionSweeper::MotionSweeper | ( | const MotionSweeper & | original | ) |
The copy and move constructors as wel as assignment operators require pointer repair and must therefore be coded manually.
original | The original object to copy or move |
other | The object on the right hand side of the assignment operator |
MotionSweepWriter stormm::trajectory::MotionSweeper::data | ( | CoordinateCycle | orientation, |
HybridTargetLevel | tier = HybridTargetLevel::HOST ) |
Get the abstract.
Overloaded:
orientation | Specify a point in the time cycle at which to take the abstract |
tier | Indicate whether to set pointers to memory on the CPU host or GPU device |
double3 stormm::trajectory::MotionSweeper::getNetVelocity | ( | int | idx, |
HybridTargetLevel | tier = HybridTargetLevel::HOST ) const |
Get the net velocity of a specific system, relative to the coordinate origin.
idx | The index of the system of interest |
tier | The memory level from which to take the tensor components |
void stormm::trajectory::MotionSweeper::updateCyclePosition | ( | ) |
Modify the object's stage in the coordinate cycle.
Overloaded:
time_point | The point in the time cycle which the object is to take as "current" |