Loading...
Searching...
No Matches
eonc::tunneling::RateInstantonOptions Struct Reference

#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}}

Detailed Description

Definition at line 254 of file Tunneling.h.

Member Data Documentation

◆ beads

long eonc::tunneling::RateInstantonOptions::beads = 32

N, beads on the ring.

Definition at line 255 of file Tunneling.h.

◆ checkOddSector

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.

◆ energyShift

double eonc::tunneling::RateInstantonOptions::energyShift = 0.0

subtracted from every bead potential, eV

Definition at line 275 of file Tunneling.h.

◆ forceTolerance

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.

◆ halfRing

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.

◆ initialHessians

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.

◆ lanczosFirst

long eonc::tunneling::RateInstantonOptions::lanczosFirst = 30

Lanczos steps for the first minimum mode.

Definition at line 259 of file Tunneling.h.

◆ lanczosRestart

long eonc::tunneling::RateInstantonOptions::lanczosRestart = 6

Lanczos steps from the previous mode.

Definition at line 260 of file Tunneling.h.

◆ lanczosStep

double eonc::tunneling::RateInstantonOptions::lanczosStep = 1e-4

finite-difference step, amu^0.5 Angstrom

Definition at line 261 of file Tunneling.h.

◆ maxIterations

long eonc::tunneling::RateInstantonOptions::maxIterations = 1000

translation steps

Definition at line 256 of file Tunneling.h.

◆ maxStep

double eonc::tunneling::RateInstantonOptions::maxStep = 0.05

largest bead move per step, amu^0.5 Angstrom

Definition at line 262 of file Tunneling.h.

◆ memory

long eonc::tunneling::RateInstantonOptions::memory = 10

L-BFGS correction pairs.

Definition at line 264 of file Tunneling.h.

◆ newtonLimit

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.

◆ rigidReference

VectorXd eonc::tunneling::RateInstantonOptions::rigidReference

Definition at line 293 of file Tunneling.h.

◆ rigidRotations

std::array<bool, 3> eonc::tunneling::RateInstantonOptions::rigidRotations {{false, false, false}}

Definition at line 294 of file Tunneling.h.

294{{false, false, false}};

◆ rigidSqrtMasses

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.


The documentation for this struct was generated from the following file: