STORMM Source Documentation
|
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>
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 int4 * | partition_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. | |
ullint2 * | state_xy |
First 128 bits of each 256-bit state vector. | |
ullint2 * | state_zw |
Second 128 bits of each 256-bit state vector. | |
const PrecisionModel | rng_mode |
double * | cache |
float * | sp_cache |
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.
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.
double* stormm::trajectory::ThermostatWriter< T >::cache |
Cache of double-precision pre-computed random values (depth gives the number of such values for each atom)
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)
const int stormm::trajectory::ThermostatWriter< T >::end_evolution |
The first step at which the thermostat begins to target final_temperature(s)
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.
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)
const T stormm::trajectory::ThermostatWriter< T >::init_temperature |
Initial target temperature, common to all atoms (if it is applicable)
const ThermostatPartition stormm::trajectory::ThermostatWriter< T >::layout |
The manner in which different atoms or systems are held to one or more heat baths
const T stormm::trajectory::ThermostatWriter< T >::ln_explicit |
Explicit Langevin factor, applied in the second velocity Verlet update as new coordinates are determined
const T stormm::trajectory::ThermostatWriter< T >::ln_implicit |
Implicit Langevin factor, applied in the first velocity Verlet update after new forces have been computed
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.
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
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.
const int stormm::trajectory::ThermostatWriter< T >::rattle_iter |
Number of iterations to allow when attempting to converge RATTLE
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.
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)