1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//! Band and minimum-mode saddle mechanics over rgmin steppers.
//!
//! Two seams, stepping at both:
//!
//! - The **inner seam** is rgmin's [`rgmin::Solver`]: one optimizer
//! step over an assembled band force. rgsaddle defines no optimizer
//! of its own.
//! - The **outer seam** is [`band::BandSession::step`]: assemble NEB
//! forces on the caller's surface, take one solver step, report.
//! There is no run-to-completion contract; hosts own the loop and
//! interleave their policy (trust, drift, acquisition, MMF)
//! between steps. [`band::BandSession::run`] is a convenience loop
//! over `step` and nothing more.
//!
//! The same shape carries the minimum-mode search
//! ([`minmode::MinModeSession`]): refresh the lowest curvature mode
//! (dimer rotation or Lanczos over finite-difference Hessian
//! actions), invert the force along it, take one solver step.
//!
//! Force assembly is pure: tangents (Mills–Jonsson–Schenter simple,
//! Henkelman–Jonsson improved), springs (uniform, energy-weighted,
//! Onsager–Machlup), projections (plain elastic band, NEB,
//! doubly-nudged), and the climbing-image force, ported from eOn's
//! NEBTangent / NEBSpringForce / NEBForceProjection with identical
//! branch structure.
//!
//! Positions are unwrapped Cartesian; a periodic host applies its
//! minimum-image convention before handing differences in.
pub use ;
pub use SaddleError;
pub use ;
pub use ProjectionKind;
pub use SpringKind;
pub use TangentKind;