Skip to main content

Thermostat

Trait Thermostat 

Source
pub trait Thermostat<M> {
    // Required methods
    fn integrate_half_step_one<R: Rng + ?Sized>(
        &mut self,
        rng: &mut R,
        macrostate: &M,
        delta_t: f64,
        kinetic_energy: f64,
        degrees_of_freedom: usize,
    ) -> f64;
    fn integrate_half_step_two<R: Rng + ?Sized>(
        &mut self,
        rng: &mut R,
        macrostate: &M,
        delta_t: f64,
        kinetic_energy: f64,
        degrees_of_freedom: usize,
    ) -> f64;
}
Expand description

Scale momenta to hold the system at constant temperature.

Use any of the thermostats in the thermostat module along with the integration method of your choice.

The ConstantVolume integration method rescales every momentum in the system following the given Thermostat to sample trajectories from the canonical ensemble.

Required Methods§

Source

fn integrate_half_step_one<R: Rng + ?Sized>( &mut self, rng: &mut R, macrostate: &M, delta_t: f64, kinetic_energy: f64, degrees_of_freedom: usize, ) -> f64

Integrate the thermostat one half step forward in time.

Returns the momentum scaling factor to use during the first half step.

Source

fn integrate_half_step_two<R: Rng + ?Sized>( &mut self, rng: &mut R, macrostate: &M, delta_t: f64, kinetic_energy: f64, degrees_of_freedom: usize, ) -> f64

Integrate the thermostat one half step forward in time.

Returns the momentum scaling factor to use during the second half step.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§