ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
Thermostat for Brownian dynamics. More...
#include <thermostat.hpp>
Public Member Functions | |
void | recalc_prefactors (double kT) |
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 GammaType | sigma (double kT, GammaType const &gamma) |
Calculate the noise prefactor. | |
static double | sigma (double kT) |
Calculate the noise prefactor. | |
Public Attributes | |
Parameters | |
GammaType | gamma = Thermostat::gamma_sentinel |
Translational friction coefficient \( \gamma_{\text{trans}} \). | |
GammaType | gamma_rotation = Thermostat::gamma_sentinel |
Rotational friction coefficient \( \gamma_{\text{rot}} \). | |
Prefactors | |
GammaType | sigma_pos = Thermostat::gamma_sentinel |
Translational noise standard deviation. | |
GammaType | sigma_pos_rotation = Thermostat::gamma_sentinel |
Rotational noise standard deviation. | |
double | sigma_vel = 0. |
Translational velocity noise standard deviation. | |
double | sigma_vel_rotation = 0. |
Angular velocity noise standard deviation. | |
Thermostat for Brownian dynamics.
Default particle mass is assumed to be unitary in these global parameters.
Definition at line 190 of file core/thermostat.hpp.
|
inline |
Recalculate prefactors.
Needs to be called every time the parameters are changed.
The heat velocity dispersion corresponds to the Gaussian noise only, which is only valid for the BD. Just a square root of kT, see (10.2.17) and comments in 2 paragraphs afterwards, [34].
The random walk position dispersion is defined by the second eq. (14.38) of [36]. Its time interval factor will be added in the Brownian Dynamics functions. Its square root is the standard deviation.
Note: the BD thermostat assigns the brownian viscous parameters as well. They correspond to the friction tensor Z from the eq. (14.31) of [36].
Definition at line 198 of file core/thermostat.hpp.
References gamma, gamma_rotation, sigma(), sigma_pos, sigma_pos_rotation, sigma_vel, and sigma_vel_rotation.
|
inlinestatic |
Calculate the noise prefactor.
Evaluates the quantity \( \sqrt{k_B T} / \sigma_\eta \) with \( \sigma_\eta \) the standard deviation of the random gaussian process \( \eta(t) \).
Definition at line 232 of file core/thermostat.hpp.
Calculate the noise prefactor.
Evaluates the quantity \( \sqrt{2 k_B T / \gamma} / \sigma_\eta \) with \( \sigma_\eta \) the standard deviation of the random gaussian process \( \eta(t) \).
Definition at line 223 of file core/thermostat.hpp.
References gamma, and Utils::hadamard_division().
Referenced by bd_random_walk(), bd_random_walk_rot(), and recalc_prefactors().
GammaType BrownianThermostat::gamma = Thermostat::gamma_sentinel |
Translational friction coefficient \( \gamma_{\text{trans}} \).
Definition at line 239 of file core/thermostat.hpp.
Referenced by ScriptInterface::Thermostat::Brownian::Brownian(), brownian_dynamics_propagator(), recalc_prefactors(), and sigma().
GammaType BrownianThermostat::gamma_rotation = Thermostat::gamma_sentinel |
Rotational friction coefficient \( \gamma_{\text{rot}} \).
Definition at line 241 of file core/thermostat.hpp.
Referenced by ScriptInterface::Thermostat::Brownian::Brownian(), brownian_dynamics_rotator(), and recalc_prefactors().
GammaType BrownianThermostat::sigma_pos = Thermostat::gamma_sentinel |
Translational noise standard deviation.
Stores \( \sqrt{2D_{\text{trans}}} \) with \( D_{\text{trans}} = k_B T/\gamma_{\text{trans}} \) the translational diffusion coefficient.
Definition at line 250 of file core/thermostat.hpp.
Referenced by bd_random_walk(), and recalc_prefactors().
GammaType BrownianThermostat::sigma_pos_rotation = Thermostat::gamma_sentinel |
Rotational noise standard deviation.
Stores \( \sqrt{2D_{\text{rot}}} \) with \( D_{\text{rot}} = k_B T/\gamma_{\text{rot}} \) the rotational diffusion coefficient.
Definition at line 257 of file core/thermostat.hpp.
Referenced by bd_random_walk_rot(), and recalc_prefactors().
double BrownianThermostat::sigma_vel = 0. |
Translational velocity noise standard deviation.
Stores \( \sqrt{k_B T} \).
Definition at line 262 of file core/thermostat.hpp.
Referenced by bd_random_walk_vel(), and recalc_prefactors().
double BrownianThermostat::sigma_vel_rotation = 0. |
Angular velocity noise standard deviation.
Stores \( \sqrt{k_B T} \).
Definition at line 267 of file core/thermostat.hpp.
Referenced by bd_random_walk_vel_rot(), and recalc_prefactors().