|
| double | eonc::tunneling::massWeightedDistance (const Matter &a, const Matter &b) |
| | sqrt(sum_i m_i |b_i - a_i|^2) under the minimum image of a's cell.
|
| std::vector< double > | eonc::tunneling::massWeightedPath (const std::vector< std::shared_ptr< Matter > > &band) |
| | Cumulative mass-weighted arc length at each image of a band.
|
| double | eonc::tunneling::wellCurvature (const Profile &p, bool leftEnd) |
| | d2V/ds2 at one end of the path, in eV / (amu Angstrom^2), from a least squares fit of a s^2 + b s^3 to the points within half the barrier above that end.
|
| double | eonc::tunneling::hbarOmega (double curvature) |
| | hbar omega in eV for a mass-weighted curvature.
|
| double | eonc::tunneling::wkbAction (const Profile &p, double energy, int points=4001) |
| | (1/hbar) integral sqrt(2 (V(s) - E)) ds over the path where V > E.
|
| Splitting | eonc::tunneling::wkbSplitting (const Profile &p, double hwReactant, double hwProduct) |
| | delta0 = (hbar omega / pi) exp(-S) with the Landau and Lifshitz prefactor.
|
| std::vector< VectorXd > | eonc::tunneling::ringFromPath (const std::vector< VectorXd > &path, const std::vector< double > &energies, double betaHbar, long beads) |
| | Closed ring of beads samples of path whose imaginary-time period is betaHbar.
|
| double | eonc::tunneling::wkbLogRateAlongPath (const Profile &profile, double beta, double hwReactant) |
| | ln(k), k in 1/time, for the one-dimensional thermal rate along profile.
|
| Splitting | eonc::tunneling::bandSplitting (const std::vector< std::shared_ptr< Matter > > &band, double referenceEnergy) |
| | The splitting of a converged band, with the well frequencies from the band's curvature at each end.
|
| double | eonc::tunneling::pathOmega (const MatrixXd &hessStart, const MatrixXd &hessEnd, const VectorXd &start, const VectorXd &end) |
| | omega along the straight line between the minima from the curvature of each well there, the larger of the two; in 1 / time.
|
| Instanton | eonc::tunneling::optimizeInstanton (const VectorXd &start, const VectorXd &end, double betaHbar, std::vector< VectorXd > guess, const BatchPotential &potential, const InstantonOptions &options) |
| | Minimises the action from guess (P + 1 beads, ends at the minima, or empty for a tanh kink along the straight line).
|
| void | eonc::tunneling::instantonSplitting (Instanton &inst, const BeadHessian &hessian, const MatrixXd &hessStart, const MatrixXd &hessEnd) |
| | Fills delta0, zeroMode and modeSeparation from the bead Hessians and the Hessians of the two minima.
|
| double | eonc::tunneling::crossoverTemperature (const MatrixXd &hessSaddle) |
| | T_c = hbar omega_b / (2 pi kB) from the mass-weighted Hessian at the saddle, in K; throws when the Hessian has no negative eigenvalue.
|
| RingSpectrum | eonc::tunneling::ringSpectrum (const std::vector< MatrixXd > &beadHessians, double c, const std::vector< VectorXd > &tau) |
| | The ring Hessian of bead Hessians beadHessians (d2V/dq2 at each of the N beads) and spring constant c, with the normalised direction tau (N beads) projected out through the determinant lemma det(J + tau tau^T) = det' J when J tau = 0.
|
| double | eonc::tunneling::cyclicRingLogAbsDet (double c, const std::vector< MatrixXd > &diag) |
| | log|det| of the cyclic block-tridiagonal ring Hessian.
|
| std::vector< VectorXd > | eonc::tunneling::cyclicRingSolve (double c, const std::vector< MatrixXd > &diag, const std::vector< VectorXd > &rhs) |
| | Solves that same cyclic ring Hessian.
|
| RateInstanton | eonc::tunneling::optimizeRateInstanton (const VectorXd &saddle, const MatrixXd &hessSaddle, double beta, std::vector< VectorXd > guess, const BatchPotential &potential, const RateInstantonOptions &options) |
| | Finds the rate instanton at inverse temperature beta (1 / eV).
|
| void | eonc::tunneling::instantonRate (RateInstanton &inst, const RingBeadHessian &hessian, const MatrixXd &hessReactant, double vReactant, const MatrixXd &hessSaddle=MatrixXd(), double vSaddle=0.0, long rigidModes=0, long denseLimit=4096) |
| | Fills the rate from the bead Hessians, the reactant minimum's Hessian and energy, and optionally the saddle's Hessian and energy for the classical comparison (pass an empty matrix to skip it).
|
| double | eonc::tunneling::parabolicFactor (double temperature, double crossover) |
| | (pi T_c / T) / sin(pi T_c / T).
|
| double | eonc::tunneling::harmonicTstLogRate (const MatrixXd &hessReactant, const MatrixXd &hessSaddle, double beta, double barrier, long rigidModes) |
| | ln(k) for classical harmonic transition-state theory, k in 1/time.
|
| double | eonc::tunneling::quantumHarmonicTstLogRate (const MatrixXd &hessReactant, const MatrixXd &hessSaddle, double beta, double barrier, long rigidModes) |
| | ln(k) for quantum harmonic transition-state theory, k in 1/time: (1 / (2 pi beta hbar)) prod_r 2 sinh(beta hbar omega_r / 2) / prod'_s 2 sinh(beta hbar omega_s / 2) exp(-beta barrier), the zero-point and quantised partition functions of every bound mode; the saddle's unstable mode leaves the product.
|