--- myst: html_meta: "description": "Replica exchange molecular dynamics in the eOn client." "keywords": "eOn replica exchange, temperature ladder, Metropolis swap" --- # Replica exchange `job = replica_exchange` reads `pos.con`. It writes `results.dat` and the coldest replica as `pos_out.con`. `[Replica Exchange] replicas` defaults to 10. `temperature_distribution` is `exponential` (the default) or `linear`. Any other value stops the job. `temperature_low` defaults to `[Main] temperature`. A low temperature that is not positive is replaced by `[Main] temperature`, or by 300 K when that temperature is not positive either. When `temperature_high` is not above `temperature_low`, the job sets it to 1.5 times `temperature_low`. `sampling_time` (default 1000) and `exchange_period` (default 100) are in femtoseconds. The integrator step is `[Dynamics] time_step`. When `thermostat` is omitted, the client uses `andersen`. At each exchange period the job proposes one swap per replica, between neighboring temperatures. After the file is read, `exchange_trials` is set equal to `replicas`, so the key does not change that count. A proposed swap of energies `E_high` and `E_low` is accepted with probability ```{math} \min\left(1, \exp\left[(E_{high}-E_{low})\left(\frac{1}{k_B T_{high}}-\frac{1}{k_B T_{low}}\right)\right]\right). ``` ```{code-block} ini [Main] job = replica_exchange temperature = 300 [Replica Exchange] replicas = 8 temperature_distribution = exponential temperature_low = 300 temperature_high = 600 sampling_time = 1000 exchange_period = 100 [Dynamics] time_step = 1.0 thermostat = langevin ```