Repository navigation
v3.5.0
eOn 3.5.0
A minor release on v3.4.0. See monorepo CHANGELOG.md section 3.5.0
for the full list.
Tunnelling rates
job = instanton finds the ring-polymer instanton between two minima
for a tunnelling splitting. With mode = rate it finds the closed-ring
instanton through a saddle, for the thermal rate below the crossover
temperature (Richardson and Althorpe, doi:10.1063/1.3267318).
- The rate search is an index-1 Newton step on the ring Hessian. Each
solve, determinant and inertia count goes through a block LU of the
open bead chain plus a low-rank Woodbury correction, at O(N f^3) with
no dense ring matrix. - Without a band, the ring is seeded from a steepest-descent path out of
the saddle by the period condition. A supplied band (initial_path)
seeds it the same way and adds a one-dimensional WKB rate. - A ring that converges onto another saddle is refused. On the LJ13 test
pair, cooling a cosine ring from the crossover slides onto a
neighbouring saddle that leads to a different minimum. - An even ring runs on one half, from one turning point to the other. A
half ring that has converged, or stopped stationary at the wrong index,
is checked for an unstable mode odd under the mirror. That mode is two
copies of the instanton on one ring, and the search finishes on the
whole ring. - The rigid motions of the whole ring are rebuilt from the current beads
at every step and kept out of the step and the classification. - Above the crossover, the parabolic-barrier factor multiplies quantum
harmonic TST, soln kis continuous atT_c. temperaturestakes a list and writes one row per temperature to
rate_instanton.dat.instanton_centroid.conwrites the centroid with
the readconspreadssection, the per-atom spread of the beads.
On the LJ13 pair at 198 K, 0.6 of the 330 K crossover, with 16 beads the
search converges in 32 Newton iterations and 2369 force calls. The ring
has one negative mode, and ln(k s) = -2.49 against -24.82 from harmonic
TST.
Path-integral QTST and the ring-polymer rate
[Instanton] pi_planes samples a ring polymer with its centroid held on
parallel planes from behind the reactant to the saddle. The centroid
mean force integrates to a free-energy profile, which gives the
path-integral QTST rate (Voth, Chandler and Miller,
doi:10.1063/1.457242). pi_recrossing_parents adds the ring-polymer
recrossing factor. Parent rings on the top plane launch thermostat-free
RPMD children in momentum-reversed pairs, which give the
Bennett-Chandler plateau kappa, and k_RPMD = kappa k_QTST. On a two-dimensional curved
barrier the classical kappa is 0.779 +- 0.005, against 0.777 +- 0.003
from independent trajectories.
Path-integral dynamics
The dynamics job runs path-integral trajectories with a normal-mode PILE
or a GLE read from a matrix file, a separate centroid Langevin
thermostat, and economised ring-polymer springs. Bead forces are one
batch. The normal-mode transform is one matrix product, about eight
times faster per step at 32 beads. The economised spring fit iterates to
its least-squares minimum and raises an error when it does not converge.
Solid-state NEB
Solid-state NEB relaxes the lower-triangular cell of each interior image
together with the atoms, with the tangent and spring of
doi:10.1063/1.3684549. A calculator's Cauchy stress (xTB, the i-PI
virial, LAMMPS pressure) is read on the force call.
In-process CPMD
[RgpotPot] ranks_per_imagesplits the MPI world into cpmdc calculator
groups, one CPMD session each, and a NEB spreads its images over the
groups throughforceBatch. The finite-difference Hessian spreads its
columns the same way.params_pathloads a CPMDParams file, andinput_blockpasses CPMD
&SECTIONtext ahead of the generated sections. The Python server
accepts the CPMD key spellings the client reads.- A failed engine call in one group raises on every rank, and the run
aborts the MPI world instead of hanging. - The rgpot subproject pins 3.4.0, and the build requires readcon-core
0.16.0.
Other changes
- The Hessian job writes
modes.con, one frame per normal mode, and
accepts the trivial-mode count of the structure's symmetries. neb.conframes carry the mass-weighted reaction coordinate and the
band's one-dimensional tunnelling estimate.- aKMC with
use_kdb = truestores processes throughamsel.KdbStore
and the run's readcon-db corpus. The tsasekdbpath is removed. with_mpiis a feature option and stays off unlessenabled.
-Dwith_parallel_nebhas no effect; the NEB image pool uses
std::thread.- The GP dimer builds when a checkout of the private gpr_optim
repository sits insubprojects/gpr_optim. That repository is not
part of eOn.