STORMM Source Documentation
|
Collect pointers needed for conjugate gradient reduction operations, normalizing forces and mixing the results with a separate vector containing some memory of previous iterations. This object re-purposes data in the PhaseSpaceSynthesis object such as the velocities and prior position arrays. Absent from this object is a sense of where each system within the compiled synthesis starts and stops. More...
#include <reduction_abstracts.h>
Public Member Functions | |
ConjGradSubstrate (PsSynthesisWriter poly_psw, ReductionBridge *rbg, HybridTargetLevel tier=HybridTargetLevel::HOST) | |
The constructor takes a PhaseSpaceSynthesis object and a series of double-precision allocations. | |
ConjGradSubstrate (PhaseSpaceSynthesis *poly_ps, ReductionBridge *rbg, HybridTargetLevel tier=HybridTargetLevel::HOST) | |
Public Attributes | |
const double | inv_frc_scale |
llint * | xfrc |
Forces acting on all particles in the Cartesian X direction. | |
llint * | yfrc |
Forces acting on all particles in the Cartesian Y direction. | |
llint * | zfrc |
Forces acting on all particles in the Cartesian Z direction. | |
int * | xfrc_ovrf |
Overflow in X forces, when using extended precision models. | |
int * | yfrc_ovrf |
Overflow in Y forces, when using extended precision models. | |
int * | zfrc_ovrf |
Overflow in Z forces, when using extended precision models. | |
llint * | xprv |
Prior forces acting on all particles in the Cartesian X direction. | |
llint * | yprv |
Prior forces acting on all particles in the Cartesian Y direction. | |
llint * | zprv |
Prior forces acting on all particles in the Cartesian Z direction. | |
int * | xprv_ovrf |
Prior overflow in X forces, when using extended precision models. | |
int * | yprv_ovrf |
Prior overflow in Y forces, when using extended precision models. | |
int * | zprv_ovrf |
Prior overflow in Z forces, when using extended precision models. | |
llint * | x_cg_temp |
Mixing components for the X-direction conjugate gradient vector. | |
llint * | y_cg_temp |
Mixing components for the Y-direction conjugate gradient vector. | |
llint * | z_cg_temp |
Mixing components for the Z-direction conjugate gradient vector. | |
int * | x_cg_temp_ovrf |
Overflow for x_cg_temp when using extended precision models. | |
int * | y_cg_temp_ovrf |
Overflow for y_cg_temp when using extended precision models. | |
int * | z_cg_temp_ovrf |
Overflow for z_cg_temp when using extended precision models. | |
double * | gg_buffer |
Squared gradient partial sums. | |
double * | dgg_buffer |
Gradient evolution partial sums. | |
double * | msum_buffer |
Squared sums of remixed forces on all atoms. | |
Collect pointers needed for conjugate gradient reduction operations, normalizing forces and mixing the results with a separate vector containing some memory of previous iterations. This object re-purposes data in the PhaseSpaceSynthesis object such as the velocities and prior position arrays. Absent from this object is a sense of where each system within the compiled synthesis starts and stops.
stormm::stmath::ConjGradSubstrate::ConjGradSubstrate | ( | PsSynthesisWriter | poly_psw, |
ReductionBridge * | rbg, | ||
HybridTargetLevel | tier = HybridTargetLevel::HOST ) |
The constructor takes a PhaseSpaceSynthesis object and a series of double-precision allocations.
Overloaded:
poly_psw | Writeable abstract to a coordinate synthesis |
poly_ps | Collection of coordinates in fixed-precision representation |
rbg | Allocations of double-precision reals to hold transitional sums between gather and scatter kernels |
tier | Get data pointers on the host (the customary default) or on the HPC device |
const double stormm::stmath::ConjGradSubstrate::inv_frc_scale |
Inverse force scaling constant. This value is stored to provide a means for unrolling the fixed-precision scaling when computing squared gradients and gradient evolution quantities, although the double-precision accumulators are still very unlikely to overflow.