numerical_scheme¶
numerical_scheme is not itself an operator hard-coded in exaStamp — like grid_flavor, it's ONIKA's generic operator-alias mechanism: this top-level entry redirects the operator named numerical_scheme to whichever named scheme the string points at. A scheme is just a named body: list of operators (and/or nested batch labels) that gets executed, in order, once per timestep:
<scheme_name>:
name: <arbitrary display name>
body:
- <operator_or_batch_1>
- <operator_or_batch_2>
- ...
Every ensemble, thermostat, and barostat on this site is a specialization of this same placeholder — a different scheme value, wiring together a different sequence of steps around the same generic push operators. exaStamp ships these named schemes out of the box:
numerical_scheme value |
Ensemble | Defined in |
|---|---|---|
verlet_nve |
NVE | config_numerical_schemes.msp |
verlet_bnvt |
NVT, Berendsen thermostat | config_numerical_schemes.msp |
verlet_lnvt |
NVT, Langevin thermostat | config_numerical_schemes.msp |
verlet_nhnvt |
NVT, Nosé-Hoover thermostat | config_numerical_schemes.msp |
verlet_nhnpt |
NPT, Nosé-Hoover barostat | config_numerical_schemes.msp |
exaStamp's own default config sets numerical_scheme: verlet_nve — nothing else needs to be included to get plain NVE. Every other row in the table above requires pointing numerical_scheme at that scheme explicitly (and, for the Nosé-Hoover rows, including the config file that defines the companion init_* operator).