STORMM Source Documentation
Loading...
Searching...
No Matches
stormm::energy::ImplicitSolventWorkspace Class Reference

A small collection of arrays to manage temporary accumulators for computing Born radii and their derivatives. More...

#include <implicit_solvent_workspace.h>

Public Member Functions

int getFixedPrecisionBits () const
 Get the precision in which Born radii and sums of the per-atom energy derivatives are stored.
 
CoordinateCycle getCyclePosition () const
 Get the object's current coordinate cycle position.
 
void updateCyclePosition ()
 Increment the object's cycle counter.
 
void initialize (HybridTargetLevel tier=HybridTargetLevel::HOST, CoordinateCycle orientation=CoordinateCycle::WHITE, const GpuDetails &gpu=null_gpu)
 Set the Generalized Born radii and radii derivative accumulators to zero.
 
 ImplicitSolventWorkspace (const Hybrid< int > &atom_starts, const Hybrid< int > &atom_counts, int bit_count)
 The object contains arrays to store Born radii and derivatives to very high precision.
 
 ImplicitSolventWorkspace (const Hybrid< int > &atom_starts, const Hybrid< int > &atom_counts, PrecisionModel prec)
 
 ImplicitSolventWorkspace (const ImplicitSolventWorkspace &original)
 Copy and move constructors, as well as the respective assignment operators, take the usual form for an object with POINTER-kind Hybrids that require repair.
 
 ImplicitSolventWorkspace (ImplicitSolventWorkspace &&original)
 
ImplicitSolventWorkspaceoperator= (const ImplicitSolventWorkspace &other)
 
ImplicitSolventWorkspaceoperator= (ImplicitSolventWorkspace &&other)
 
ISWorkspaceKit< double > dpData (CoordinateCycle orientation, HybridTargetLevel tier=HybridTargetLevel::HOST)
 Get the double-precision abstract, containing pointers to data on the host or device.
 
ISWorkspaceKit< double > dpData (HybridTargetLevel tier=HybridTargetLevel::HOST)
 
ISWorkspaceKit< float > spData (CoordinateCycle orientation, HybridTargetLevel tier=HybridTargetLevel::HOST)
 Get the single-precision abstract, containing pointers to data on the host or device. Overloading and descriptions of input parameters follow from dpData(), above.
 
ISWorkspaceKit< float > spData (HybridTargetLevel tier=HybridTargetLevel::HOST)
 

Detailed Description

A small collection of arrays to manage temporary accumulators for computing Born radii and their derivatives.

Constructor & Destructor Documentation

◆ ImplicitSolventWorkspace() [1/2]

stormm::synthesis::ImplicitSolventWorkspace::ImplicitSolventWorkspace ( const Hybrid< int > & atom_starts,
const Hybrid< int > & atom_counts,
int bit_count )

The object contains arrays to store Born radii and derivatives to very high precision.

Overloaded:

  • Accept an explicit bit count for storing Born radii and derivative information in fixed-precision format.
  • Accept a precision model and apply an automatic scaling factor for the Born radii and derivatives.
Parameters
atom_startsStarting positions of the atoms for each system in the coordinate arrays of the related AtomGraphSynthesis and PhaseSpaceSynthesis
atom_countsAtom counts in each system of the related syntheses
bit_countThe number of bits to keep after the decimal (units of Angstroms for the radii, or kcal/mol-Angstroms per change in radius)
precThe precision model to prepare for (automates selection of bit_count)

◆ ImplicitSolventWorkspace() [2/2]

stormm::synthesis::ImplicitSolventWorkspace::ImplicitSolventWorkspace ( const ImplicitSolventWorkspace & original)

Copy and move constructors, as well as the respective assignment operators, take the usual form for an object with POINTER-kind Hybrids that require repair.

Parameters
originalThe object to copy or move
otherRight-hand side object for assignment operators

Member Function Documentation

◆ dpData()

ISWorkspaceKit< double > stormm::synthesis::ImplicitSolventWorkspace::dpData ( CoordinateCycle orientation,
HybridTargetLevel tier = HybridTargetLevel::HOST )

Get the double-precision abstract, containing pointers to data on the host or device.

Overloaded:

  • Provide the stage of the coordinate cycle towards which pointers will orient
  • Orient pointers towards the object's current coordinate cycle stage
Parameters
tierLevel at which to retrieve pointers (the CPU host, or GPU device)
orientationPerform the zeroing on psi / sumdeijda or alt_psi / alt_sumdeijda arrays

◆ initialize()

void stormm::synthesis::ImplicitSolventWorkspace::initialize ( HybridTargetLevel tier = HybridTargetLevel::HOST,
CoordinateCycle orientation = CoordinateCycle::WHITE,
const GpuDetails & gpu = null_gpu )

Set the Generalized Born radii and radii derivative accumulators to zero.

Parameters
tierDo the zeroing on the host or on the GPU device
orientationPerform the zeroing on psi / sumdeijda or alt_psi / alt_sumdeijda arrays
gpuDetails of the GPU in use

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