STORMM Source Documentation
Loading...
Searching...
No Matches
stormm::trajectory::ThermostatWriter< T > Struct Template Reference

Partially writeable abstract for the Thermostat object. As with the MMControlKit struct (see the library header mm_controls.h), the step member variable is modifiable so that it can be updated without setting it in the parent object and regenerating the entire abstract. More...

#include <thermostat.h>

Collaboration diagram for stormm::trajectory::ThermostatWriter< T >:

Public Member Functions

 ThermostatWriter (ThermostatKind kind_in, ThermostatPartition layout_in, int natom_in, size_t padded_natom_in, int npart_in, int step_in, int depth_in, int init_evolution_in, int end_evolution_in, T init_temperature_in, T final_temperature_in, T dt_in, bool csnt_geom_in, T rattle_tol_in, int rattle_iter_in, int andr_cyc_in, T gamma_ln_in, T ln_implicit_in, T ln_explicit_in, bool load_synthesis_forces_in, const int4 *partition_bounds_in, const T *init_temperatures_in, const T *final_temperatures_in, ullint2 *state_xy_in, ullint2 *state_zw_in, PrecisionModel rng_mode_in, double *cache_in, float *sp_cache_in)
 The constructor takes the usual list of parent object attributes with pointers applicable on either the CPU host or GPU device.
 
 ThermostatWriter (const ThermostatWriter &original)=default
 The copy and move assignment operators will be implicitly deleted due to the presence of const member variables.
 
 ThermostatWriter (ThermostatWriter &&original)=default
 

Public Attributes

const ThermostatKind kind
 The type of this thermostat, i.e. Andersen.
 
const ThermostatPartition layout
 
const int natom
 Number of atoms controlled by this thermostat.
 
const size_t padded_natom
 The number of atoms padded by the warp size.
 
const int npart
 
int step
 Current step number of the simulation.
 
const int depth
 
const int init_evolution
 
const int end_evolution
 
const T init_temperature
 
const T final_temperature
 Final target temperature, common to all atoms.
 
const T dt
 The time step, in units of femtoseconds.
 
const bool cnst_geom
 Indicate whether to apply geometry constraints.
 
const T rattle_tol
 Convergence criterion for RATTLE bond length constraints.
 
const int rattle_iter
 
const int andr_cyc
 
const T gamma_ln
 
const T ln_implicit
 
const T ln_explicit
 
const bool load_synthesis_forces
 
const int4partition_bounds
 
const T * init_temperatures
 Array of initial target temperatures for each atom.
 
const T * final_temperatures
 Array of final target gemperatures for each atom.
 
ullint2state_xy
 First 128 bits of each 256-bit state vector.
 
ullint2state_zw
 Second 128 bits of each 256-bit state vector.
 
const PrecisionModel rng_mode
 
double * cache
 
float * sp_cache
 

Detailed Description

template<typename T>
struct stormm::trajectory::ThermostatWriter< T >

Partially writeable abstract for the Thermostat object. As with the MMControlKit struct (see the library header mm_controls.h), the step member variable is modifiable so that it can be updated without setting it in the parent object and regenerating the entire abstract.

Member Data Documentation

◆ andr_cyc

template<typename T>
const int stormm::trajectory::ThermostatWriter< T >::andr_cyc

The frequency of Andersen velocity resets, in terms of simulation steps. Multiply by the time step dt to get the inverse strength of the Andersen thermostat.

◆ cache

template<typename T>
double* stormm::trajectory::ThermostatWriter< T >::cache

Cache of double-precision pre-computed random values (depth gives the number of such values for each atom)

◆ depth

template<typename T>
const int stormm::trajectory::ThermostatWriter< T >::depth

Depth of the cache (the true depth will be three times higher, to serve each atom with Cartesian X, Y, and Z influences)

◆ end_evolution

template<typename T>
const int stormm::trajectory::ThermostatWriter< T >::end_evolution

The first step at which the thermostat begins to target final_temperature(s)

◆ gamma_ln

template<typename T>
const T stormm::trajectory::ThermostatWriter< T >::gamma_ln

The "Gamma" factor for the Langevin thermostat, giving the number of collisions per femtosecond scaled by the conversion factor for taking forces in kcal/mol-A into Angstroms per femtosecond.

◆ init_evolution

template<typename T>
const int stormm::trajectory::ThermostatWriter< T >::init_evolution

Final step at which the thermostat target temperatures come from init_temperature or the eponymous array, and the first step at which temperature targets begin to shift linearly towards final_temperature(s)

◆ init_temperature

template<typename T>
const T stormm::trajectory::ThermostatWriter< T >::init_temperature

Initial target temperature, common to all atoms (if it is applicable)

◆ layout

template<typename T>
const ThermostatPartition stormm::trajectory::ThermostatWriter< T >::layout

The manner in which different atoms or systems are held to one or more heat baths

◆ ln_explicit

template<typename T>
const T stormm::trajectory::ThermostatWriter< T >::ln_explicit

Explicit Langevin factor, applied in the second velocity Verlet update as new coordinates are determined

◆ ln_implicit

template<typename T>
const T stormm::trajectory::ThermostatWriter< T >::ln_implicit

Implicit Langevin factor, applied in the first velocity Verlet update after new forces have been computed

◆ load_synthesis_forces

template<typename T>
const bool stormm::trajectory::ThermostatWriter< T >::load_synthesis_forces

If set to TRUE, forces from the synthesis will be loaded when performing the initial velocity update.

◆ npart

template<typename T>
const int stormm::trajectory::ThermostatWriter< T >::npart

Number of unique partitions in the thermostat, each being the atom index bounds on a distinct heat bath at a particular temperature

◆ partition_bounds

template<typename T>
const int4* stormm::trajectory::ThermostatWriter< T >::partition_bounds

Bounds array on the atoms that this thermostat regulates. Also includes the number of degrees of freedom in each partition.

◆ rattle_iter

template<typename T>
const int stormm::trajectory::ThermostatWriter< T >::rattle_iter

Number of iterations to allow when attempting to converge RATTLE

◆ rng_mode

template<typename T>
const PrecisionModel stormm::trajectory::ThermostatWriter< T >::rng_mode

The mode in which random numbers are available for this thermostat. One of cache or sp_cache, below, will be valid as indicated by this member variable.

◆ sp_cache

template<typename T>
float* stormm::trajectory::ThermostatWriter< T >::sp_cache

Cache of single-precision pre-computed random values (depth gives the number of such values for each atom)


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