[−]Struct lumol::sim::md::RescaleThermostat

pub struct RescaleThermostat { /* fields omitted */ }

Velocity rescaling thermostat.

This algorithm controls the temperature by rescaling all the velocities when the temperature differs exceedingly from the desired temperature. A tolerance parameter prevent this algorithm from running too often: if tolerance is 10K and the target temperature is 300K, the algorithm will only run if the instant temperature is below 290K or above 310K.

WARNING: This thermostat does NOT produces a NVT or NPT ensemble. It will not even produce correct average temperature, except if the rescaling is done at every step. It can It can still be usefull in the equilibration of a system at a given temperature before an actual simulation. A good alternative is the CSVR thermostat, which produces correct ensemble.

Implementations

impl RescaleThermostat

pub fn new(temperature: f64) -> RescaleThermostat

Create a new RescaleThermostat acting at temperature temperature, with a tolerance of 5% * temperature.

pub fn with_tolerance(temperature: f64, tol: f64) -> RescaleThermostat

Create a new RescaleThermostat acting at temperature T, with a tolerance of tol. For rescaling all the steps, use tol = 0.

Blanket Implementations

impl<T> Pointable for T

type Init = T

The type for initializers.

impl<T, U> TryFrom<U> for T where    U: Into<T>, [src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where    U: TryFrom<T>, [src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.