36 void scaleTemperature(
const std::unique_ptr<ParticleContainer>& particle_container)
const override;
46 std::array<double, 3> average_velocity)
const;
55 std::array<double, 3> average_velocity)
const;
ThirdDimension
Enum class to define the dimension count of the simulation (2D or 3D). Affects primarily the dimensio...
A relative thermostat that can be used to control the temperature of a particle container....
double getCurrentContainerTemperature(const std::unique_ptr< ParticleContainer > &particle_container, std::array< double, 3 > average_velocity) const
Get the current temperature of a particle.
double getContainerKineticEnergy(const std::unique_ptr< ParticleContainer > &particle_container, std::array< double, 3 > average_velocity) const
Get the kinetic energy of a particle.
RelativeThermostat(double target_temperature, double max_temperature_change=std::numeric_limits< double >::max(), ThirdDimension third_dimension=ThirdDimension::ENABLED)
Construct a new Thermostat object.
void scaleTemperature(const std::unique_ptr< ParticleContainer > &particle_container) const override
Scale the temperature of a particle container towards the target temperature. Capped by the maximum t...
A thermostat that can be used to control the temperature of a particle container. Allows for gradual ...
const double max_temperature_change
The maximum temperature change allowed per thermostat application.
const double target_temperature
The target temperature for thermostat applications.
const ThirdDimension third_dimension
Defines whether the third dimension is enabled.