#include <Tunneling.h>
Public Attributes | |
| long | beads = 32 |
| N, beads on the ring. | |
| long | maxIterations = 1000 |
| translation steps | |
| double | forceTolerance = 1e-3 |
| largest per-bead |dU_N/dq|, eV / (amu^0.5 Angstrom) | |
| long | lanczosFirst = 30 |
| Lanczos steps for the first minimum mode. | |
| long | lanczosRestart = 6 |
| Lanczos steps from the previous mode. | |
| double | lanczosStep = 1e-4 |
| finite-difference step, amu^0.5 Angstrom | |
| double | maxStep = 0.05 |
| largest bead move per step, amu^0.5 Angstrom | |
| long | memory = 10 |
| L-BFGS correction pairs. | |
| bool | halfRing = true |
| Even N, when the guess already matches under j -> N - j: evaluate the potential from one turning point to the other and copy it. | |
| bool | checkOddSector = true |
| A half ring that has converged, or that is stationary at the wrong index, is probed for an unstable mode odd under j -> N - j (two copies of the instanton on one ring), at about lanczosFirst * N gradient calls; the search then finishes on the whole ring. | |
| double | energyShift = 0.0 |
| subtracted from every bead potential, eV | |
| long | newtonLimit = std::numeric_limits<long>::max() |
| Active coordinates at or below this take the Newton step. | |
| std::string | initialHessians = "saddle" |
| Where the bead Hessian blocks start: "saddle" copies the saddle's Hessian to every bead and lets the Bofill update carry it, at no force calls; "finite_difference" takes 2 f gradient calls per bead first. | |
| std::vector< double > | rigidSqrtMasses |
| Rigid motions of the ring: a translation, or one rotation about the ring's centre of mass, applied to every bead alike leaves U_N unchanged. | |
| VectorXd | rigidReference |
| std::array< bool, 3 > | rigidRotations {{false, false, false}} |
Definition at line 254 of file Tunneling.h.
| long eonc::tunneling::RateInstantonOptions::beads = 32 |
N, beads on the ring.
Definition at line 255 of file Tunneling.h.
| bool eonc::tunneling::RateInstantonOptions::checkOddSector = true |
A half ring that has converged, or that is stationary at the wrong index, is probed for an unstable mode odd under j -> N - j (two copies of the instanton on one ring), at about lanczosFirst * N gradient calls; the search then finishes on the whole ring.
A cooling schedule probes only its last temperature.
Definition at line 274 of file Tunneling.h.
| double eonc::tunneling::RateInstantonOptions::energyShift = 0.0 |
subtracted from every bead potential, eV
Definition at line 275 of file Tunneling.h.
| double eonc::tunneling::RateInstantonOptions::forceTolerance = 1e-3 |
largest per-bead |dU_N/dq|, eV / (amu^0.5 Angstrom)
Definition at line 257 of file Tunneling.h.
| bool eonc::tunneling::RateInstantonOptions::halfRing = true |
Even N, when the guess already matches under j -> N - j: evaluate the potential from one turning point to the other and copy it.
An odd N, or a guess without that symmetry, evaluates every bead.
Definition at line 268 of file Tunneling.h.
| std::string eonc::tunneling::RateInstantonOptions::initialHessians = "saddle" |
Where the bead Hessian blocks start: "saddle" copies the saddle's Hessian to every bead and lets the Bofill update carry it, at no force calls; "finite_difference" takes 2 f gradient calls per bead first.
Definition at line 283 of file Tunneling.h.
| long eonc::tunneling::RateInstantonOptions::lanczosFirst = 30 |
Lanczos steps for the first minimum mode.
Definition at line 259 of file Tunneling.h.
| long eonc::tunneling::RateInstantonOptions::lanczosRestart = 6 |
Lanczos steps from the previous mode.
Definition at line 260 of file Tunneling.h.
| double eonc::tunneling::RateInstantonOptions::lanczosStep = 1e-4 |
finite-difference step, amu^0.5 Angstrom
Definition at line 261 of file Tunneling.h.
| long eonc::tunneling::RateInstantonOptions::maxIterations = 1000 |
translation steps
Definition at line 256 of file Tunneling.h.
| double eonc::tunneling::RateInstantonOptions::maxStep = 0.05 |
largest bead move per step, amu^0.5 Angstrom
Definition at line 262 of file Tunneling.h.
| long eonc::tunneling::RateInstantonOptions::memory = 10 |
L-BFGS correction pairs.
Definition at line 264 of file Tunneling.h.
| long eonc::tunneling::RateInstantonOptions::newtonLimit = std::numeric_limits<long>::max() |
Active coordinates at or below this take the Newton step.
Zero keeps minimum-mode following. The step solves through the block chain, so the default admits every size a batch potential can evaluate.
Definition at line 279 of file Tunneling.h.
| VectorXd eonc::tunneling::RateInstantonOptions::rigidReference |
Definition at line 293 of file Tunneling.h.
| std::array<bool, 3> eonc::tunneling::RateInstantonOptions::rigidRotations {{false, false, false}} |
Definition at line 294 of file Tunneling.h.
| std::vector<double> eonc::tunneling::RateInstantonOptions::rigidSqrtMasses |
Rigid motions of the ring: a translation, or one rotation about the ring's centre of mass, applied to every bead alike leaves U_N unchanged.
The search rebuilds those directions from the current beads at every step (the rigid quotient) and keeps them out of the step and out of the classification, as it does the imaginary-time cycle. Empty masses switch it off (atoms fixed). rigidSqrtMasses holds sqrt(m) per atom, rigidReference the Cartesian positions q is measured from (3 per atom), rigidRotations which rotations are free (a free cluster).
Definition at line 292 of file Tunneling.h.