|
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.