ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
IsotropicNptThermostat Struct Reference

Thermostat for isotropic NPT dynamics. More...

#include <thermostat.hpp>

+ Inheritance diagram for IsotropicNptThermostat:
+ Collaboration diagram for IsotropicNptThermostat:

Public Member Functions

void recalc_prefactors (double kT, double piston, std::vector< double > const &mass_list, double time_step)
 Recalculate prefactors.
 
- Public Member Functions inherited from BaseThermostat
void rng_initialize (uint32_t const seed)
 Initialize or re-initialize the RNG counter with a seed.
 
void rng_increment ()
 Increment the RNG counter.
 
uint64_t rng_counter () const
 Get current value of the RNG.
 
void set_rng_counter (uint64_t value)
 
bool is_seed_required () const
 Is the RNG seed required.
 
uint32_t rng_seed () const
 

Static Public Member Functions

static double sigma (double kT, double gamma, double time_step)
 Calculate the noise prefactor.
 
static double sigma_OU (double kT, double gamma, double time_step)
 Calculate the noise prefactor for the exact solution of Orstein-Uhlenbeck equation.
 

Public Attributes

Parameters
double gamma0 = 0.
 Friction coefficient of the particles \( \gamma^0 \).
 
double gammav = 0.
 Friction coefficient for the box \( \gamma^V \).
 
Prefactors
std::unordered_map< double, doublepref_rescale_0
 Particle velocity rescaling at the time step for Orstein-Uhlenbeck equation.
 
std::unordered_map< double, doublepref_noise_0
 Particle velocity rescaling noise standard deviation for Orstein-Uhlenbeck equation.
 
double pref_rescale_V = 0.
 Volume rescaling at half the time step.
 
double pref_noise_V = 0.
 Volume rescaling noise standard deviation for Orstein-Uhlenbeck equation Stores \( \sqrt{k_B T ( 1 - \exp( -2 \frac{\gamma^{0}}{W} dt}) \).
 

Detailed Description

Thermostat for isotropic NPT dynamics.

Definition at line 277 of file core/thermostat.hpp.

Member Function Documentation

◆ recalc_prefactors()

void IsotropicNptThermostat::recalc_prefactors ( double  kT,
double  piston,
std::vector< double > const mass_list,
double  time_step 
)
inline

Recalculate prefactors.

Needs to be called every time the parameters are changed.

Definition at line 285 of file core/thermostat.hpp.

References gamma0, gammav, pref_noise_0, pref_noise_V, pref_rescale_0, pref_rescale_V, sigma_OU(), and stream.

◆ sigma()

static double IsotropicNptThermostat::sigma ( double  kT,
double  gamma,
double  time_step 
)
inlinestatic

Calculate the noise prefactor.

Evaluates the quantity \( \sqrt{2 k_B T \gamma dt / 2} / \sigma_\eta \) with \( \sigma_\eta \) the standard deviation of the random uniform process \( \eta(t) \).

Definition at line 303 of file core/thermostat.hpp.

References stream.

◆ sigma_OU()

static double IsotropicNptThermostat::sigma_OU ( double  kT,
double  gamma,
double  time_step 
)
inlinestatic

Calculate the noise prefactor for the exact solution of Orstein-Uhlenbeck equation.

Evaluates the quantity \( \sqrt{k_B T (1 - \exp(-2 \gamma dt)} \)

Definition at line 313 of file core/thermostat.hpp.

Referenced by recalc_prefactors().

Member Data Documentation

◆ gamma0

double IsotropicNptThermostat::gamma0 = 0.

Friction coefficient of the particles \( \gamma^0 \).

Definition at line 319 of file core/thermostat.hpp.

Referenced by ScriptInterface::Thermostat::IsotropicNpt::IsotropicNpt(), propagate_therm0_nptiso(), and recalc_prefactors().

◆ gammav

double IsotropicNptThermostat::gammav = 0.

Friction coefficient for the box \( \gamma^V \).

Definition at line 321 of file core/thermostat.hpp.

Referenced by ScriptInterface::Thermostat::IsotropicNpt::IsotropicNpt(), propagate_thermV_nptiso(), and recalc_prefactors().

◆ pref_noise_0

std::unordered_map<double, double> IsotropicNptThermostat::pref_noise_0

Particle velocity rescaling noise standard deviation for Orstein-Uhlenbeck equation.

Stores \( \sqrt{k_B T ( 1 - \exp( -2 \frac{\gamma^{0}}{m} dt}) \)

Definition at line 334 of file core/thermostat.hpp.

Referenced by propagate_therm0_nptiso(), and recalc_prefactors().

◆ pref_noise_V

double IsotropicNptThermostat::pref_noise_V = 0.

Volume rescaling noise standard deviation for Orstein-Uhlenbeck equation Stores \( \sqrt{k_B T ( 1 - \exp( -2 \frac{\gamma^{0}}{W} dt}) \).

Definition at line 343 of file core/thermostat.hpp.

Referenced by propagate_thermV_nptiso(), and recalc_prefactors().

◆ pref_rescale_0

std::unordered_map<double, double> IsotropicNptThermostat::pref_rescale_0

Particle velocity rescaling at the time step for Orstein-Uhlenbeck equation.

Stores \( \exp(-\frac{\gamma^{0}}{m} \cdot dt) \).

Definition at line 329 of file core/thermostat.hpp.

Referenced by propagate_therm0_nptiso(), and recalc_prefactors().

◆ pref_rescale_V

double IsotropicNptThermostat::pref_rescale_V = 0.

Volume rescaling at half the time step.

Stores \( \exp(-\frac{\gamma^{V}}{W} \cdot dt) \).

Definition at line 338 of file core/thermostat.hpp.

Referenced by propagate_thermV_nptiso(), and recalc_prefactors().


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