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

Thermostat for Brownian dynamics. More...

#include <thermostat.hpp>

+ Inheritance diagram for BrownianThermostat:
+ Collaboration diagram for BrownianThermostat:

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.
 

Detailed Description

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.

Member Function Documentation

◆ recalc_prefactors()

void BrownianThermostat::recalc_prefactors ( double  kT)
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.

◆ sigma() [1/2]

static double BrownianThermostat::sigma ( double  kT)
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.

◆ sigma() [2/2]

static GammaType BrownianThermostat::sigma ( double  kT,
GammaType const &  gamma 
)
inlinestatic

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().

Member Data Documentation

◆ gamma

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().

◆ gamma_rotation

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().

◆ sigma_pos

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().

◆ sigma_pos_rotation

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().

◆ sigma_vel

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().

◆ sigma_vel_rotation

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().


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