Classes | |
| struct | DNEB_Projection |
| Trygubenko & Wales, JCP 120:2082, 2004. More... | |
| struct | ExtremaResult |
| struct | ImageForceData |
| Data for a single image needed by projection strategies. More... | |
| struct | ImprovedTangent |
| Henkelman & Jonsson, JCP 113:9978, 2000. More... | |
| struct | NEB_Projection |
| Jonsson, Mills, Jacobsen 1998 (World Scientific). More... | |
| class | OCINEBController |
| Goswami (in prep). More... | |
| struct | OnsagerMachlupSpring |
| Onsager-Machlup action-based springs (Mandelli & Parrinello 2021). More... | |
| struct | PlainEB |
| Mills, Jonsson, Schenter, Surf. More... | |
| struct | SimpleTangent |
| Mills, Jonsson, Schenter, Surf. More... | |
| struct | SpringResult |
| Result of spring force computation for a single image. More... | |
| struct | UniformSpring |
| Uniform spring constant for all images. More... | |
| struct | WeightedSpring |
| Energy-weighted spring constants (variable per segment). More... | |
Typedefs | |
| using | ProjectionStrategy |
| using | SpringStrategy |
| using | TangentStrategy = std::variant<SimpleTangent, ImprovedTangent> |
Functions | |
| AtomMatrix | computeTangent (const AtomMatrix &posDiffNext, const AtomMatrix &posDiffPrev, double energy, double energyPrev, double energyNext, bool use_old_tangent) |
| Compute the tangent vector at image i using the improved tangent scheme. | |
| AtomMatrix | forcePerp (const AtomMatrix &force, const AtomMatrix &tangent) |
| Compute the perpendicular component of force relative to the tangent. | |
| AtomMatrix | climbingImageForce (const AtomMatrix &force, const AtomMatrix &tangent, const AtomMatrix &forceDNEB) |
| Compute the climbing image projected force. | |
| AtomMatrix | computeDNEB (const AtomMatrix &forceSpring, const AtomMatrix &tangent, const AtomMatrix &forcePerp) |
| Compute the doubly-nudged elastic band perpendicular spring force. | |
| void | zeroTranslation (AtomMatrix &projectedForce, int nFreeAtoms, int nAtoms) |
| Zero net translational force for fully free systems. | |
| ProjectionStrategy | buildProjectionStrategy (const Parameters ¶ms) |
| Build the projection strategy from parameters. | |
| AtomMatrix | computeDNEBComponent (const AtomMatrix &forceSpring, const AtomMatrix &tangent, const AtomMatrix &forcePerp) |
| Compute the DNEB force component for a given image. | |
| ExtremaResult | findSplineExtrema (const std::vector< std::shared_ptr< Matter > > &path, const std::vector< std::shared_ptr< AtomMatrix > > &tangent, long numImages) |
| Find extrema along the MEP using cubic spline interpolation. | |
| void | printImageData (const std::vector< std::shared_ptr< Matter > > &path, const std::vector< std::shared_ptr< AtomMatrix > > &tangent, const std::vector< std::shared_ptr< EigenmodeStrategy > > &eigenmode_solvers, long numImages, bool estimateEigenvalues, bool writeToFile, size_t idx, eonc::log::Scoped log) |
| Print NEB image data to log and optionally to file. | |
| std::vector< readcon::ConFrame > | pathToConFrames (const std::vector< std::shared_ptr< Matter > > &path, const std::vector< std::shared_ptr< AtomMatrix > > &tangent, const std::vector< std::shared_ptr< EigenmodeStrategy > > &eigenmode_solvers, long numImages, bool estimateEigenvalues, std::optional< size_t > bandIndex=std::nullopt) |
| Build stamped ConFrames for a NEB band (same metadata as writePathCon). | |
| eonc::io::IoStatus | writePathCon (const std::vector< std::shared_ptr< Matter > > &path, const std::vector< std::shared_ptr< AtomMatrix > > &tangent, const std::vector< std::shared_ptr< EigenmodeStrategy > > &eigenmode_solvers, long numImages, bool estimateEigenvalues, std::string filename, std::optional< size_t > bandIndex=std::nullopt) |
| Write a NEB band as a multi-frame .con via readcon ConFrameBuilder::clone(). | |
| SpringStrategy | buildSpringStrategy (const Parameters ¶ms, const std::vector< std::shared_ptr< Matter > > &path, long numImages, int atoms, double maxEnergy, double E_ref) |
| Build the appropriate spring strategy from parameters and current path state. | |
| TangentStrategy | buildTangentStrategy (const Parameters ¶ms) |
| Build the tangent strategy from parameters. | |
Definition at line 49 of file NEBProjection.h.
Definition at line 58 of file NEBSpringForce.h.
| using eonc::neb::TangentStrategy = std::variant<SimpleTangent, ImprovedTangent> |
Definition at line 38 of file NEBTangent.h.
| ProjectionStrategy eonc::neb::buildProjectionStrategy | ( | const Parameters & | params | ) |
Build the projection strategy from parameters.
DNEB is incompatible with OM and weighted springs; falls back to NEB_Projection.
Definition at line 33 of file NEBProjection.cpp.
| SpringStrategy eonc::neb::buildSpringStrategy | ( | const Parameters & | params, |
| const std::vector< std::shared_ptr< Matter > > & | path, | ||
| long | numImages, | ||
| int | atoms, | ||
| double | maxEnergy, | ||
| double | E_ref ) |
Build the appropriate spring strategy from parameters and current path state.
Definition at line 65 of file NEBSpringForce.cpp.
| TangentStrategy eonc::neb::buildTangentStrategy | ( | const Parameters & | params | ) |
Build the tangent strategy from parameters.
Definition at line 72 of file NEBTangent.cpp.
| AtomMatrix eonc::neb::climbingImageForce | ( | const AtomMatrix & | force, |
| const AtomMatrix & | tangent, | ||
| const AtomMatrix & | forceDNEB ) |
Compute the climbing image projected force.
F_CI = F - 2*(F.t)*t + forceDNEB
Definition at line 73 of file NEBForceProjection.cpp.
| AtomMatrix eonc::neb::computeDNEB | ( | const AtomMatrix & | forceSpring, |
| const AtomMatrix & | tangent, | ||
| const AtomMatrix & | fPerp ) |
Compute the doubly-nudged elastic band perpendicular spring force.
Definition at line 79 of file NEBForceProjection.cpp.
| AtomMatrix eonc::neb::computeDNEBComponent | ( | const AtomMatrix & | forceSpring, |
| const AtomMatrix & | tangent, | ||
| const AtomMatrix & | forcePerp ) |
Compute the DNEB force component for a given image.
Returned separately so it can be added to the CI force when DNEB is active.
Definition at line 47 of file NEBProjection.cpp.
| AtomMatrix eonc::neb::computeTangent | ( | const AtomMatrix & | posDiffNext, |
| const AtomMatrix & | posDiffPrev, | ||
| double | energy, | ||
| double | energyPrev, | ||
| double | energyNext, | ||
| bool | use_old_tangent ) |
Compute the tangent vector at image i using the improved tangent scheme.
Returns a normalized tangent vector.
Definition at line 22 of file NEBForceProjection.cpp.
| ExtremaResult eonc::neb::findSplineExtrema | ( | const std::vector< std::shared_ptr< Matter > > & | path, |
| const std::vector< std::shared_ptr< AtomMatrix > > & | tangent, | ||
| long | numImages ) |
Find extrema along the MEP using cubic spline interpolation.
Definition at line 74 of file NEBSplineExtrema.cpp.
| AtomMatrix eonc::neb::forcePerp | ( | const AtomMatrix & | force, |
| const AtomMatrix & | tangent ) |
Compute the perpendicular component of force relative to the tangent.
Definition at line 69 of file NEBForceProjection.cpp.
|
nodiscard |
Build stamped ConFrames for a NEB band (same metadata as writePathCon).
Empty on invalid path size. Does not write to disk.
Definition at line 251 of file NEBSplineExtrema.cpp.
| void eonc::neb::printImageData | ( | const std::vector< std::shared_ptr< Matter > > & | path, |
| const std::vector< std::shared_ptr< AtomMatrix > > & | tangent, | ||
| const std::vector< std::shared_ptr< EigenmodeStrategy > > & | eigenmode_solvers, | ||
| long | numImages, | ||
| bool | estimateEigenvalues, | ||
| bool | writeToFile, | ||
| size_t | idx, | ||
| eonc::log::Scoped | log ) |
Print NEB image data to log and optionally to file.
Definition at line 166 of file NEBSplineExtrema.cpp.
|
nodiscard |
Write a NEB band as a multi-frame .con via readcon ConFrameBuilder::clone().
Definition at line 279 of file NEBSplineExtrema.cpp.
| void eonc::neb::zeroTranslation | ( | AtomMatrix & | projectedForce, |
| int | nFreeAtoms, | ||
| int | nAtoms ) |
Zero net translational force for fully free systems.
Definition at line 103 of file NEBForceProjection.cpp.