Skip to content

Commit 2257279

Browse files
authored
Docs: restore csvr option in md_thermostat documentation (#7654)
* Docs: restore csvr option in md_thermostat documentation The csvr (Canonical Sampling through Velocity Rescaling) thermostat option description was accidentally removed in PR #7589. This commit restores the line in both docs/parameters.yaml (source of truth) and docs/advanced/input_files/input-main.md (generated output). Fix #7653 * add csvr back to md_thermostat parameter registration * add csvr thermostat to md.md documentation page * fix CSVR reference DOI
1 parent 4155157 commit 2257279

5 files changed

Lines changed: 10 additions & 2 deletions

File tree

docs/advanced/input_files/input-main.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3377,6 +3377,7 @@
33773377
- berendsen: Berendsen thermostat, see md_nraise in detail.
33783378
- rescaling: velocity Rescaling method 1, see md_tolerance in detail.
33793379
- rescale_v: velocity Rescaling method 2, see md_nraise in detail.
3380+
- csvr: Canonical Sampling through Velocity Rescaling, see md_csvr_tau in detail.
33803381
- **Default**: nhc
33813382

33823383
### md_tfirst

docs/advanced/md.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ When [md_type](./input_files/input-main.md#md_type) is set to nvt, [md_thermosta
1818
- berendsen: Berendsen thermostat
1919
- rescaling: velocity Rescaling method 1
2020
- rescale_v: velocity Rescaling method 2
21+
- csvr: Canonical Sampling through Velocity Rescaling (CSVR) thermostat
2122

2223
When [md_type](./input_files/input-main.md#md_type) is set to npt, [md_pmode](./input_files/input-main.md#md_pmode) is used to specify the cell fluctuation mode in NPT ensemble based on the Nose-Hoover style non-Hamiltonian equations of motion.
2324

@@ -80,6 +81,10 @@ Reset the temperature of a group of atoms by explicitly rescaling their velociti
8081

8182
Reset the temperature of a group of atoms by explicitly rescaling their velocities. Every [md_nraise](./input_files/input-main.md#md_nraise) steps the current temperature is rescaled to target temperature.
8283

84+
## CSVR
85+
86+
The CSVR (Canonical Sampling through Velocity Rescaling) thermostat is a stochastic velocity rescaling approach proposed by [Bussi, Donadio, and Parrinello](https://doi.org/10.1063/1.2408420). It rescales the velocities by a factor that is drawn from the appropriate distribution to ensure a canonical ensemble, combining the simplicity of Berendsen-like rescaling with the correct canonical sampling of the Nosé-Hoover chain. The coupling strength is controlled by [md_csvr_tau](./input_files/input-main.md#md_csvr_tau).
87+
8388
## MSST
8489
ABACUS performs the [Multi-Scale Shock Technique (MSST) integration](https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.90.235503) to update positions and velocities each timestep to mimic a compressive shock wave passing over the system. The MSST varies the cell volume and temperature in such a way as to restrain the system to the shock Hugoniot and the Rayleigh line. These restraints correspond to the macroscopic conservation laws dictated by a shock front.
8590

docs/parameters.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1399,6 +1399,7 @@ parameters:
13991399
* berendsen: Berendsen thermostat, see md_nraise in detail.
14001400
* rescaling: velocity Rescaling method 1, see md_tolerance in detail.
14011401
* rescale_v: velocity Rescaling method 2, see md_nraise in detail.
1402+
* csvr: Canonical Sampling through Velocity Rescaling, see md_csvr_tau in detail.
14021403
default_value: nhc
14031404
unit: ""
14041405
availability: ""

source/source_io/module_parameter/md_parameter.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ struct MD_para
1414
bool md_restart = false; ///< 1: restart MD, 0: no restart MD
1515
std::string md_type = "nvt"; ///< fire, nve, nvt, npt, langevin, msst
1616
std::string md_thermostat = "nhc"; ///< specify the thermostat: nhc, anderson, berendsen,
17-
///< rescaling, rescale_v
17+
///< rescaling, rescale_v, csvr
1818
double md_dt = 1.0; ///< Time increment (hbar/E_hartree)
1919
double md_tfirst = -1.0; ///< Temperature (in Hartree, 1 Hartree ~ 3E5 K)
2020
double md_tlast = -1.0; ///< Target temperature

source/source_io/module_parameter/read_input_item_md.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,8 @@ void ReadInput::item_md()
8383
* anderson: Anderson thermostat, see md_nraise in detail.
8484
* berendsen: Berendsen thermostat, see md_nraise in detail.
8585
* rescaling: velocity Rescaling method 1, see md_tolerance in detail.
86-
* rescale_v: velocity Rescaling method 2, see md_nraise in detail.)";
86+
* rescale_v: velocity Rescaling method 2, see md_nraise in detail.
87+
* csvr: Canonical Sampling through Velocity Rescaling, see md_csvr_tau in detail.)";
8788
item.default_value = "nhc";
8889
item.unit = "";
8990
item.availability = "";

0 commit comments

Comments
 (0)