Dynamics¶
Molecular dynamics based on Newton’s classical equations of motion, integrated with the velocity Verlet algorithm.
Note
For production MD simulations, consider using integrations with LAMMPS or ASE for more efficient dynamics. The eOn dynamics engine is primarily used as a building block for accelerated methods (Parallel Replica, TAD, Hyperdynamics).
To run a standalone dynamics simulation, set job to dynamics in the [Main] section:
[Main]
job = dynamics
temperature = 300
[Dynamics]
time_step = 1.0
time = 1000.0
thermostat = andersen
Or via rgpycrumbs:
from rgpycrumbs.eon.helpers import write_eon_config
config = {
"Main": {"job": "dynamics", "temperature": 300},
"Dynamics": {"time_step": 1.0, "time": 1000.0, "thermostat": "andersen"},
}
write_eon_config(config, Path("config.ini"))
Thermostats¶
Four thermostat options are available:
Thermostat |
Key |
Description |
|---|---|---|
Andersen |
|
Stochastic velocity reassignment with collision probability per step |
Nose-Hoover |
|
Deterministic extended-system thermostat (chains of length 2) |
Langevin |
|
Stochastic friction + random force, good for non-equilibrium |
None |
|
NVE ensemble (constant energy, no temperature control) |
Andersen thermostat¶
Controls temperature via random velocity reassignment. The collision period determines how frequently atoms are thermalized:
[Dynamics]
thermostat = andersen
andersen_alpha = 1.0
andersen_collision_period = 100.0
Langevin thermostat¶
Applies friction and random forces. The friction coefficient controls the coupling strength to the heat bath:
[Dynamics]
thermostat = langevin
langevin_friction = 0.01
Time parameters¶
All times are specified in femtoseconds (fs). The internal time unit conversion is handled automatically.
time_step: integration timestep (default: 1.0 fs)time: total simulation time (default: 1000.0 fs)
The number of steps is computed as floor(time / time_step).
Configuration¶
[Dynamics]
- pydantic model eon.schema.DynamicsConfig[source]¶
Show JSON schema
{ "title": "DynamicsConfig", "type": "object", "properties": { "time_step": { "default": 1.0, "description": "The duration of each MD step, in femtoseconds.", "title": "Time Step", "type": "number" }, "time": { "default": 1000.0, "description": "Total MD time, in femtoseconds.", "title": "Time", "type": "number" }, "thermostat": { "default": "none", "description": "Thermostat to use for the dynamics simulation.", "enum": [ "none", "andersen", "langevin", "nose_hoover" ], "title": "Thermostat", "type": "string" }, "andersen_collision_period": { "default": 100.0, "description": "The collision period (in fs) for the Andersen thermostat.", "title": "Andersen Collision Period", "type": "number" }, "andersen_alpha": { "default": 1.0, "description": "The collision strength in the Andersen thermostat.", "title": "Andersen Alpha", "type": "number" }, "nose_mass": { "default": 1.0, "description": "The effective mass of the additional degree of freedom in the Nos\u00e9-Hoover thermostat, which determines the coupling frequency of the thermostat.", "title": "Nose Mass", "type": "number" }, "langevin_friction": { "default": 0.01, "description": "The damping coefficient for Langevin dynamics (1/fs).", "title": "Langevin Friction", "type": "number" } } }
- Config:
use_attribute_docstrings: bool = True
- Fields:
- field andersen_collision_period: float = 100.0¶
The collision period (in fs) for the Andersen thermostat.
- field nose_mass: float = 1.0¶
The effective mass of the additional degree of freedom in the Nosé-Hoover thermostat, which determines the coupling frequency of the thermostat.
- field thermostat: Literal['none', 'andersen', 'langevin', 'nose_hoover'] = 'none'¶
Options: -
none: NVE dynamics with the verlet algorithm. Initial velocities set by temperature. -andersen: Andersen thermostat with the Verlet algorithm. -langevin: Langevin thermostat with the Verlet algorithm. -nose_hoover: Nosé-Hoover thermostat with the Verlet algorithm.Thermostat to use for the dynamics simulation.
See also¶
Parallel Replica for accelerated dynamics via replica parallelism
Hyperdynamics for bias-potential acceleration
Optimizer for structure optimization (not dynamics)