---
myst:
html_meta:
"description": "Tunnelling splittings between two minima in eOn, and the thermal rate through a saddle: WKB along a NEB band, the ring-polymer instanton below the crossover, and the parabolic barrier factor above it."
"keywords": "eOn instanton, tunnelling splitting, two-level system, WKB, ring polymer, instanton rate."
---
# Tunnelling splittings
A two-level system (TLS) in a glass is a pair of adjacent minima that the
structure tunnels between at about one kelvin. Its tunnelling splitting
{math}`\Delta_0` and asymmetry {math}`\Delta` set the TLS energy
{math}`E = \sqrt{\Delta^2 + \Delta_0^2}`. eOn estimates {math}`\Delta_0` in two
ways:
| | NEB band (WKB) | `job = instanton` |
|---|---|---|
| Path | the minimum energy path | the path of least imaginary-time action |
| Dimensions | one, along the mass-weighted band | every free degree of freedom |
| Cost | the NEB itself | one batch of forces per iteration over the beads, plus a Hessian per bead |
| Output | first frame of `neb.con` | `instanton.con` and `results.dat` |
With `mode = rate` the same job estimates the thermal rate through a saddle
instead of a splitting. That path is below.
Energies are in eV, lengths in Å and masses in amu throughout, so
mass-weighted lengths are in amu^0.5 Å.
## WKB along a NEB band
Every nudged elastic band (NEB) job writes `reaction_coordinate_mw`, the mass-weighted arc length, on
each frame of `neb.con`. The first frame also carries the band's Wentzel-Kramers-Brillouin (WKB) estimate.
The keys are:
| Key | Meaning |
|---|---|
| `hbar_omega_reactant`, `hbar_omega_product` | Wells: {math}`\hbar\omega` of each well along the band, from a fit of {math}`a s^2 + b s^3` to the images within half the barrier |
| `tunnel_action` | Action: {math}`S = \hbar^{-1} \int \sqrt{2 (V(s) - E)}\, ds` over the forbidden region |
| `tunnel_splitting` | Estimate: {math}`\Delta_0 = (\hbar\omega / \pi) e^{-S}`, with {math}`\omega` the geometric mean of the wells |
| `tls_energy` | Energy: {math}`\sqrt{\Delta^2 + \Delta_0^2}` |
| `tunnel_deep_wells` | Flag: 1 when both barriers exceed {math}`\hbar\omega`; below that, WKB is the wrong tool |
The profile between images is a monotone cubic, so it cannot dip below the
data. The level {math}`E` is the higher of the two harmonic ground states. A
structure without masses, or a band whose end is flat, leaves these keys out.
WKB along the band is exact in one dimension up to its semiclassical error.
When the path curves, the tunnelling cuts the corner, and the transverse
zero-point energy changes along the way. In the two-dimensional test valley
below, both effects together put the band estimate a factor of 2.8 below the
exact splitting.
## The instanton job
The instanton is a path of {math}`P + 1` beads in imaginary time
{math}`\beta\hbar`, with its ends fixed at the two minima. It minimises the
discretised Euclidean action
```{math}
S = \sum_j \frac{|q_{j+1} - q_j|^2}{2\,\delta\tau} + \delta\tau \sum_j V(q_j),
\qquad \delta\tau = \beta\hbar / P,
```
in mass-weighted coordinates {math}`q`. The splitting comes from the ratio of
the off-diagonal to the diagonal imaginary-time propagator, both taken in the
same steepest-descent approximation.
```{math}
\Delta_0 = 2\hbar \sqrt{\frac{S_0}{2\pi\hbar\,\delta\tau}}
\sqrt{\frac{\det J_\text{well}}{\det' J}}\; e^{-(S - S_\text{well})/\hbar}.
```
Here {math}`J` is the Hessian of {math}`S` over the interior beads. The
prime leaves out its zero mode, the kink's position in imaginary time.
{math}`S_0 = \int |\dot q|^2 d\tau`, and {math}`J_\text{well}` is the same
Hessian with every bead at a minimum.
```{code-block} ini
[Main]
job = instanton
[Potential]
potential = rgpot
[Instanton]
reactant_filename = reactant.con
product_filename = product.con
; start from a converged band instead of the straight line
initial_path = neb.con
beads = 256
springs = trotter
beta_hbar_omega = 30
force_tolerance = 1e-3
; one finite-difference Hessian every 4 beads, linear in between
hessian_stride = 4
```
`springs = eco` is refused. The instanton is a Trotter discretisation of
the ring.
`beta_hbar_omega` sets the imaginary time in units of {math}`1/\omega` of
the stiffer minimum along the line between them. It must be long enough for
the kink to relax into both wells. `results.dat` reports
`instanton_mode_separation`, the second eigenvalue of {math}`J` over its zero
mode. Values above {math}`10^3` mean the kink is isolated; small values mean
{math}`\beta\hbar` is too short. With no atom fixed, the product is aligned
to the reactant first: its mass-weighted mean displacement is removed, and
for a cluster its best rotation as well.
With that reactant rotation removed, each iteration evaluates every interior bead of the kink in one call. Under
`[RgpotPot] ranks_per_image`, that call spreads the beads over the Car-Parrinello molecular dynamics (CPMD)
calculator groups the same way a NEB spreads its images.
`instanton.con` writes one frame per bead, with `imaginary_time_fs`. The keys are:
| Key | Meaning |
|---|---|
| `tunnel_splitting_instanton` | Splitting: {math}`\Delta_0`, eV |
| `instanton_action` | Action: {math}`(S - S_\text{well})/\hbar` |
| `tls_energy_instanton` | Energy: {math}`\sqrt{\Delta^2 + \Delta_0^2}`, eV |
| `tunnel_asymmetry` | Asymmetry: {math}`V(\text{product}) - V(\text{reactant})`, eV |
| `instanton_temperature_K` | Temperature: {math}`1/(k_B \beta)` for the imaginary time used |
| `instanton_mode_separation` | Separation: how well the kink's translation separates from the other modes |
| `instanton_symmetric` | Symmetry: 1 when {math}`\beta|\Delta| < 0.1` |
| `instanton_beta_asymmetry` | Magnitude: {math}`\beta|\Delta|` |
The propagator ratio measures the splitting {math}`\Delta_0` when the two wells lie within
a small fraction of {math}`k_B T` of each other. `instanton_symmetric = 0`
flags a pair outside that window. The job still writes the path and the
action, but no `tunnel_splitting_instanton`, and reports success: the flag
says why. For such a pair, set `mode = rate`, give the saddle and a
temperature below the crossover, and read the rate in the next sections.
## Which path object
NEB images and ring-polymer beads are different objects. An image is a point
on a path in configuration space between two minima. Its springs are
fictitious. The parallel force is removed. A bead is
one imaginary-time slice of a single quantum system. Its springs are
physical, with stiffness fixed by the temperature and the number of beads.
The columns are:
| Object | Points | Springs | What it returns |
|---|---|---|---|
| `mode = splitting` | open string between two minima, started from a band when one is present | Euclidean action, no tangent projection | tunnelling splitting when the wells are close in energy |
| `mode = rate` | closed ring through one saddle | same action, stiffness set by {math}`T` and {math}`N` | thermal rate: the ring below the crossover, the parabolic factor above it |
| Centroid potential of mean force (PMF) | one ring per image, centroid held on the image | sampled, not minimised | quantum free-energy barrier along the path |
| Harmonic centroid string | a ring at each image, optimised | local harmonic quantum correction | a free-energy estimate as good as that harmonic well |
The first two rows are `job = instanton`. The centroid potential of mean
force is a constrained path-integral molecular dynamics sample, one
thermostatted ring per image. That sample is not an optimisation, and it
does not belong in this job. A string of harmonically corrected rings is a
different calculation again, and this page does not implement it.
## The rate below the crossover
`mode = rate` reads the reactant and `saddle_filename` (default `saddle.con`).
The instanton is a closed ring, a first-order saddle of the ring-polymer
potential, with one negative eigenvalue and one zero eigenvalue that cycles
the beads. {cite:t}`inst-richardsonRingpolymerMolecularDynamics2009` give
```{math}
k Z_r = \frac{1}{\beta_N \hbar}
\sqrt{\frac{B_N}{2\pi \beta_N \hbar^2}}
\prod_k' \frac{1}{\beta_N \hbar |\omega_k|}
\exp(-\beta_N U_N).
```
{math}`B_N` is the sum of squared steps around the ring, {math}`\omega_k^2`
are the eigenvalues of the mass-weighted ring Hessian, and the prime leaves
out the cyclic zero mode and the rigid translations and rotations.
{math}`Z_r` is the harmonic ring-polymer partition function of the reactant.
{math}`U_N` is the ring-polymer potential, the bead potentials plus the springs.
The crossover temperature is {math}`T_c = \hbar \omega_b / (2\pi k_B)`, with
{math}`\omega_b` the imaginary frequency at the saddle. At or above {math}`T_c`
the ring collapses onto the saddle. Above {math}`T_c` the rate is the
parabolic barrier factor
```{math}
\kappa = \frac{\pi T_c / T}{\sin(\pi T_c / T)}
```
times the classical harmonic transition-state theory rate from the same
Hessians. {math}`\kappa` tends to 1 at high temperature, which is the
one-bead limit. The factor diverges as {math}`T` approaches {math}`T_c`
from above, and at {math}`T_c` the job stops. A large factor means the
temperature is close to the crossover.
```{code-block} ini
[Main]
job = instanton
[Instanton]
mode = rate
reactant_filename = reactant.con
saddle_filename = saddle.con
temperature = 5
beads = 256
hessian_stride = 1
```
`temperature` is in kelvin. It must be positive. Below {math}`T_c` the job
optimises the ring. Above {math}`T_c` it writes the parabolic rate and does
not optimise a ring. The default 0 means the temperature was not set, and
`mode = rate` then refuses to run. `beads` defaults to 256, the same default as the splitting. A ring
of 32 beads at 5 K does not resolve a stiff bond: the path integral starts
to converge once the bead count exceeds {math}`\beta \hbar \omega` of the
stiffest mode. `hessian_stride` of 1 takes a Hessian on every bead. A larger
stride keeps a Hessian on every stride-th bead and interpolates linearly
between those anchors. That interpolation is an approximation: the rate
formula uses the Hessian of every bead.
`half_ring` defaults to enabled. On an even bead count the potential is
evaluated from one turning point to the other and copied onto the mirror.
An odd count keeps every bead. `energy_shift` (default 0, in eV) is
subtracted from every bead potential and from the reactant and saddle
energies in the rate.
The search is an index-1 Newton step on the ring Hessian. Without an
`initial_path`, the rate job traces a steepest-descent path out of the
saddle along both signs of its unstable mode and seeds the ring from it by
the period condition below. On LJ13 that path costs 586 gradient calls. Cooling a cosine
ring from 0.85 of the crossover is the fallback when no path can be
built; it finds the ring only where the ring grows continuously out of
the saddle as the temperature drops. Where it does not, the search walks
to a neighbouring saddle, so a converged ring with no bead on either side
of the saddle's dividing plane (the plane normal to its unstable mode) is
refused and no rate is written. The step climbs the mode that overlaps
the last climb and turns every other negative curvature downhill; the
imaginary-time cycle and the rigid motions of the whole ring, rebuilt
from the current beads, are held in place and left out of the step. A
converged gradient is classified with finite-difference bead Hessians,
since the Bofill blocks can carry negative curvatures the surface does
not have; a second negative curvature that survives is a higher-index
stationary ring, and the search steps down that mode. The ring Hessian is block cyclic
tridiagonal in the beads, and every solve, determinant and inertia count
goes through a block LU of the open chain plus a low-rank Woodbury
correction for the closure, the cycle, the rigid modes and each
eigenvector-following flip: {math}`O(N f^3)` for {math}`f` degrees of
freedom, and the {math}`Nf \times Nf` matrix is never formed, so the same
step serves a seven-atom cluster and a 254-atom cell. The lowest ring
modes come from Lanczos on matrix-vector products. The bead curvature
blocks start from the saddle Hessian (`initial_hessians = saddle`, no force
calls) and follow accepted moves with a Bofill update, rebuilt from
finite differences up to three times when the trust radius reaches its
floor;
`initial_hessians = finite_difference` takes {math}`2f` gradient calls per
bead first. The rate uses the bead Hessians chosen by `hessian_final`, not
that update. On the one-dimensional Eckart barrier the search converges
in 4 to 7 steps from either seed.
`temperatures` is a comma-separated list in kelvin. The search starts at
the highest and each ring starts the next, colder one. An empty list uses
`temperature`. `bead_ladder` (default off) starts a ring of at least 16
beads at a quarter of that count and doubles. `hessian_final` is
`recomputed`: the rate takes a Hessian on every stride-th bead.
On a rate calculation, `initial_path` is a band over the barrier. The ring
starts on the closed orbit of that band whose period is {math}`\beta \hbar`,
and the same band carries a one-dimensional WKB rate.
`rate_instanton.dat` has one row per temperature, with columns `T_K`,
`T_c_K`, `beads`, `converged`, `iterations`, `U_N_eV`, `negative_modes`,
`ln_k_per_s`, `k_per_s`, `ln_k_htst_per_s`, `barrier_effective_eV`,
`ln_k_wkb_path_per_s`, `ln_k_parabolic_per_s` and `parabolic_factor`.
Above {math}`T_c` the instanton columns are empty and the last two hold
the parabolic rate. Below {math}`T_c` those two are empty. A run at more than one temperature also writes
`instanton_K.con`. The coldest temperature is written to `instanton.con`.
With no atom fixed, both the reactant and the instanton omit the three
translations. A
rotation is omitted when it is a zero mode of the reactant Hessian, which a
free cluster has and a crystal does not. A cluster in a large periodic cell
is told apart by that Hessian, not by the periodic flag. The springs along
those directions stay, so they cancel between the instanton and the reactant.
`results.dat` reports the rate. The keys are:
| Key | Meaning |
|---|---|
| `rate_instanton` | {math}`k` in s^{-1} |
| `rate_instanton_log` | {math}`\ln(k\,/\,\mathrm{s}^{-1})` |
| `rate_htst_log` | classical harmonic transition-state theory, the same logarithm |
| `parabolic_factor` | {math}`\kappa`, above {math}`T_c` |
| `rate_parabolic` | {math}`\kappa` times the harmonic TST rate, s^{-1} |
| `rate_parabolic_log` | {math}`\ln(k\,/\,\mathrm{s}^{-1})` of that rate |
| `instanton_crossover_K` | {math}`T_c`, K |
| `instanton_negative_modes` | negative eigenvalues of the ring Hessian; a first-order saddle has 1 |
| `instanton_zero_mode` | the eigenvalue left out |
{cite:t}`inst-habershonRingpolymerMolecularDynamics2013` expect the sampled
ring-polymer rate to lie within about a factor of two of the exact quantum
rate between {math}`T_c` and {math}`T_c/2`. That bound compares the sampled
rate with the exact rate. It is not a comparison of this instanton with a
free-energy profile.
The cubic metastable well, {math}`V = \omega_0^2 q^2/2 - g q^3/3`, is the
check. Deep below the crossover its rate approaches the zero-temperature
decay of {cite:t}`inst-caldeiraQuantumTunnellingDissipative1983`.
## Path-integral quantum TST on planes
With `pi_planes` above 0, `mode = rate` follows the instanton with
path-integral quantum transition-state theory (PI-QTST,
{cite:t}`inst-vothRigorousFormulationQuantum1989`; review in
{cite:t}`inst-vothFeynmanPathIntegral1993`). A ring polymer is sampled with
its centroid held on each of a set of parallel planes. The centroid
potential of mean force along the plane coordinate gives a free-energy
barrier and a rate at every temperature in `temperature` or `temperatures`.
```ini
[Instanton]
mode = rate
saddle_filename = saddle.con
temperatures = 150, 105
pi_planes = 21
pi_beads = 32
pi_equilibration_steps = 500
pi_sampling_steps = 4000
pi_time_step = 0.5
pi_thermostat = pile
pi_direction = mode
pi_reactant_extent = 0.5
```
The coordinate. With {math}`q` the mass-weighted displacement from the
reactant over the free atoms and {math}`\hat n` a unit vector in those
coordinates, the plane coordinate is {math}`s = \hat n \cdot q`, in
amu^0.5 Å. The reactant sits at {math}`s = 0` and the saddle at
{math}`s^* = \hat n \cdot q_\mathrm{saddle}`. `pi_direction = mode` (the
default) takes {math}`\hat n` from the unstable eigenvector of the saddle's
mass-weighted Hessian, oriented toward the saddle, so the last plane is the
dividing surface normal to the barrier mode. When that mode makes more than
60 degrees with the reactant-saddle line, or the saddle has no negative
eigenvalue, the job warns and uses `pi_direction = line`, the straight
mass-weighted line from the reactant to the saddle. One normal serves every
plane, so {math}`s` is a linear coordinate and its mean force integrates to
its free energy with no metric correction. The planes are fixed in the reactant's frame. Translations
of a structure with no atom fixed lie within every plane, because the
unstable mode of the projected Hessian has no rigid component, but a
rotation of a free cluster changes {math}`s`; fix an atom, or use a cell,
when the sampling is long enough for the cluster to turn. The job warns
when no atom is fixed in an aperiodic cell. `pi_planes` planes are spaced
uniformly from {math}`s_0 = -\,\mathtt{pi\_reactant\_extent}\; s^*`, behind
the reactant, to {math}`s^*`.
The sampling. On each plane the ring's centroid starts where
`initial_path` crosses the plane, or on the reactant-saddle line when no
band is given. Projecting the centroid position and momentum holds it on
the plane. The ring is carried from plane to plane: its centroid moves to
the next plane and its internal modes keep their thermalised state.
The free-ring springs are propagated exactly, so `pi_time_step` is
limited by the physical vibrations, as for classical dynamics.
`pi_equilibration_steps` are discarded, then `pi_sampling_steps` steps of
`pi_time_step` fs record {math}`n \cdot f_c`, the centroid force along the
plane normal. The bead forces of a step are one batch, so a calculator
group carries the beads. `pi_thermostat = pile` puts PILE on the internal
modes and a Langevin thermostat of time `pi_pile_tau` fs on the centroid
within the plane, and `pi_pile_scale` (default 1) scales the critical
damping of the internal modes. Below the crossover the lowest ring modes
are soft at the barrier and overdamped at critical damping; on the Eckart
check 0.5 cuts the mean-force error at 0.7 {math}`T_c` by a third. `piglet` reads a normal-mode GLE from `pi_gle_file`, in
the same format and with the same meaning as `[Dynamics] path_gle_file`.
`pi_seed` seeds the noise.
The free energy. The mean force on the plane at {math}`s` is
```{math}
F'(s) = -\left\langle \hat n \cdot M^{-1/2} f_c \right\rangle_s ,
```
in eV per amu^0.5 Å, and {math}`F(s)` is its trapezoid integral from
{math}`s_0`. The production run is cut into ten equal blocks. The standard
error of the block means is the error of {math}`F'(s)`. The errors of
{math}`F` and of the rate follow by linear propagation, with the planes
taken as independent. The quantum free-energy barrier is
{math}`\Delta F = F(s^*) - \min_{s < s^*} F(s)`. The log and `results.dat`
give it beside the classical barrier
{math}`V(\mathrm{saddle}) - V(\mathrm{reactant})` and the instanton's
effective barrier.
The rate. With {math}`s` a unit-mass coordinate,
```{math}
k_\mathrm{PI\text{-}QTST} = \frac{1}{2}\sqrt{\frac{2}{\pi\beta}}\;
\frac{e^{-\beta F(s^*)}}{\int_{s_0}^{s^*} e^{-\beta F(s)}\,ds},
```
with {math}`\beta = 1/k_B T` in eV^{-1}. The prefactor is
{math}`\tfrac12\langle|\dot s|\rangle`, half the mean speed of a free unit
mass, in amu^0.5 Å per time unit of
{math}`\sqrt{\mathrm{amu}\,\mathrm{Å}^2/\mathrm{eV}}` (10.18 fs). The
integral, again the trapezoid rule over the planes, is the reactant's
centroid density along {math}`s`. The job reports {math}`k` in s^{-1}. The
integral stops at the first plane, so that plane must sit several
{math}`k_B T` above the reactant minimum of {math}`F`; the job warns below
5 {math}`k_B T`. It also warns when {math}`F'(s^*)` differs from zero by
more than three standard errors: the maximum of the centroid free energy
then lies off the classical saddle's plane.
The formula is classical TST on the centroid free-energy surface. With one
bead, {math}`F` is the classical free energy and the rate is classical TST
along {math}`s`. Near and above the crossover it carries the tunnelling
correction of a symmetric barrier. For strongly asymmetric barriers well
below the crossover it fails {cite:p}`inst-vothFeynmanPathIntegral1993`,
and the instanton gives the rate there.
Output. `rate_piqtst.dat` has one row per temperature and plane, with
columns `T_K`, `s_amu05A`, `dF_ds_eV_per_amu05A`, `dF_ds_error`, `F_eV`,
`F_error_eV` and `spread_max_A`. `piqtst_planes.con` holds one frame per
plane at the coldest temperature, at the production-averaged centroid. Its
readcon `spreads` section holds each atom's root-mean-square bead
displacement from the centroid along x, y and z in Å. The scalars carry
{math}`s`, {math}`F'` and {math}`F` with their errors, the temperature and
the bead count. A run at more than one temperature also writes
`piqtst_planes_K.con`. `results.dat` gains, for the coldest temperature:
| Key | Meaning |
|---|---|
| `barrier_piqtst` | {math}`\Delta F`, eV |
| `barrier_piqtst_error` | its standard error, eV |
| `rate_piqtst` | {math}`k_\mathrm{PI\text{-}QTST}`, s^{-1} |
| `rate_piqtst_log` | {math}`\ln(k\,/\,\mathrm{s}^{-1})` |
| `rate_piqtst_log_error` | standard error of that logarithm |
| `piqtst_s_star` | {math}`s^*`, amu^0.5 Å |
| `piqtst_dF_ds_star`, `piqtst_dF_ds_star_error` | {math}`F'(s^*)` and its error |
| `piqtst_first_plane_kT` | {math}`\beta (F(s_0) - \min F)` |
| `piqtst_temperature_K`, `piqtst_planes`, `piqtst_beads` | the run |
Cost: `pi_planes` times (`pi_equilibration_steps` plus `pi_sampling_steps`)
steps per temperature, each step two force batches of `pi_beads` beads.
### Recrossing and the RPMD rate
PI-QTST counts every centroid that reaches {math}`s^*` moving forward as
reactive. Some of those trajectories turn back. With
`pi_recrossing_parents` above 0 the job measures that fraction, the
Bennett-Chandler transmission factor of ring-polymer molecular dynamics
(RPMD, {cite:t}`inst-craigChemicalReactionRates2005`; the two-step scheme
of {cite:t}`inst-suleimanovRPMDrateBimolecularChemical2013`), and reports
```{math}
k_\mathrm{RPMD} = \kappa\, k_\mathrm{PI\text{-}QTST} .
```
```ini
[Instanton]
pi_recrossing_parents = 100
pi_recrossing_children = 20
pi_recrossing_time = 100
pi_recrossing_spacing = 50
```
The parents. A ring with its centroid held on the top plane {math}`s^*`,
the dividing surface of the scan, is thermostatted as in the scan for
`pi_equilibration_steps`. Every `pi_recrossing_spacing` steps after that its
beads are one parent, `pi_recrossing_parents` in all.
The children. Each parent launches `pi_recrossing_children` momentum draws.
A draw takes every ring normal mode from the Maxwell-Boltzmann distribution
at {math}`\beta_P = \beta / P` with the plane constraint removed, and runs
twice, with {math}`p` and with {math}`-p`, which halves the variance. Each
child runs `pi_recrossing_time` fs of thermostat-free RPMD in steps of
`pi_time_step`: velocity Verlet on the physical forces with the free ring
propagated exactly in normal modes. Along the way the job records the
centroid coordinate {math}`s(t)`. The centroid velocity along the coordinate is
{math}`\dot s = \hat n \cdot M^{1/2} v_c`, and
```{math}
\kappa(t) = \frac{\langle \dot s(0)\, h(s(t) - s^*) \rangle}
{\langle \dot s(0)\, h(\dot s(0)) \rangle} ,
```
with {math}`h` the step function. At {math}`t = 0` the side is that of
{math}`\dot s(0)`, the limit {math}`t \to 0^+`, so {math}`\kappa(0) = 1`.
{math}`\kappa(t)` falls as children recross and levels off once they have
committed to a side. The reported {math}`\kappa` is the mean of
{math}`\kappa(t)` over the last quarter of `pi_recrossing_time`. Its
standard error is the jackknife over parents. Lengthen
`pi_recrossing_time` when `kappa_piqtst.dat` has not levelled off by the last
quarter.
What {math}`\kappa` means. {math}`\kappa` lies between 0 and 1. A value
of 1 means no trajectory that crosses {math}`s^*` forward returns, and
PI-QTST is the RPMD rate. A value below 1 means the plane is not the
dynamical bottleneck: either it is tilted from the barrier's own dividing
surface, or a bath coupling turns trajectories back. One bead gives the
classical transmission through the plane. On a harmonic saddle whose plane
normal makes an angle {math}`\theta` with the unstable mode it is
{math}`\sqrt{\cos^2\theta - \sin^2\theta\,\omega_b^2/\omega_\perp^2}`.
The RPMD rate is independent of the choice of {math}`s^*` in the
long-time limit. The PI-QTST rate is not.
Output. `kappa_piqtst.dat` has the coldest temperature's curve, columns
`t_fs` and `kappa`. A run at more than one temperature also writes
`kappa_piqtst_K.dat`. `rate_piqtst.dat` gains the columns `kappa`,
`kappa_error`, `ln_k_rpmd_s` and `ln_k_rpmd_s_error`, the same on every
plane of a temperature. `results.dat` gains:
| Key | Meaning |
|---|---|
| `piqtst_kappa`, `piqtst_kappa_error` | {math}`\kappa` and its standard error |
| `rate_rpmd` | {math}`k_\mathrm{RPMD}`, s^{-1} |
| `rate_rpmd_log` | {math}`\ln(k_\mathrm{RPMD}\,/\,\mathrm{s}^{-1})` |
| `rate_rpmd_log_error` | its standard error, both errors in quadrature |
| Option | Default | Meaning |
|---|---|---|
| `pi_recrossing_parents` | 0 | parent configurations; 0 is off, otherwise at least 2 |
| `pi_recrossing_children` | 20 | momentum draws per parent, each run forward and reversed |
| `pi_recrossing_time` | 100 | fs per child, at least four `pi_time_step` |
| `pi_recrossing_spacing` | 50 | thermostatted steps between parents |
Cost: `pi_equilibration_steps` plus `pi_recrossing_parents` times
`pi_recrossing_spacing` constrained steps (two force batches each), and
`2 * pi_recrossing_parents * pi_recrossing_children * pi_recrossing_time /
pi_time_step` child steps (one force batch each) per temperature.
## Centroid and spread
Both modes also write `instanton_centroid.con` (and
`instanton_centroid_K.con` per temperature): one frame at the mean of
the beads, with the readcon `spreads` section holding each atom's
root-mean-square displacement from that mean along x, y and z in Å. This is
the delocalised configuration as a centroid plus a per-atom spread, the same
representation a path-integral trajectory collapses to, so the atoms that
tunnel and how far they spread read off one frame. Below the crossover the
density is bimodal along the reaction path and the spread there is a width,
not a Gaussian; the beads in `instanton.con` keep the full path. The frame
carries `spread_max`, the largest entry, beside the temperature.
## Checks
These checks use two Catch2 cases. The curved-valley case is `Instanton splitting in a curved valley matches the exact gap`. The corner case is `The instanton cuts the corner the minimum energy path takes`.
The potential is {math}`V = V_0 (x^2 - 1)^2 + \tfrac{K}{2} (y - C (1 - x^2))^2` at unit mass
with {math}`K = 4` eV/Ų. The exact gap comes from a fourth-order
finite-difference Hamiltonian, converged to {math}`10^{-5}`.
| {math}`V_0` / eV | {math}`C` / Å | exact {math}`\Delta_0` / eV | instanton / exact | WKB on the valley floor / exact |
|---|---|---|---|---|
| 0.12 | 0.35 | 2.520e-5 | 1.17 | 0.35 |
| 0.30 | 0.35 | 9.818e-8 | 1.08 | |
| 0.12 | 0 | 2.040e-5 | 1.12 | 1.02 |
| 0.30 | 0 | 1.195e-7 | 1.07 | |
The instanton's error falls as the barrier deepens, the regime glass TLS sit
in. The same cases tie the C++ path and splitting to an independent
implementation of the discretisation to {math}`2 \times 10^{-3}`.
For the rate, `The Eckart rate instanton matches the exact flux to its
semiclassical error` compares {math}`k Z_r` through the symmetric Eckart
barrier {math}`V_0 / \cosh^2(x/a)` ({math}`V_0 = 0.425` eV, {math}`a =
0.734` amu^0.5 Å, {math}`T_c = 150` K) with the exact flux
{math}`(2\pi\hbar)^{-1}\int P(E) e^{-\beta E} dE` from Eckart's transmission
probability, at {math}`T = 0.5\,T_c` and {math}`0.35\,T_c`:
| beads | instanton / exact |
|---|---|
| 64 | 0.94 to 0.96 |
| 128 | 0.93 to 0.94 |
| {math}`N \to \infty` (1/N² extrapolation) | 0.928 |
In one dimension the instanton is the steepest-descent evaluation of the
WKB thermal integral, so its limit shares the uniform WKB error; the Kemble
integral along the path gives the same 0.928. `The ring spectrum from the
block chain matches the dense Hessian` ties the chain's determinant and
inertia to a dense eigendecomposition, and `A rigid mode leaves the
instanton rate unchanged` checks the rigid-mode bookkeeping through the
search.
## References
```{bibliography}
---
style: alpha
filter: docname in docnames
labelprefix: INST_
keyprefix: inst-
---
```