mod hypersphere¶
- module hypersphere¶
Thomson covering of (S^{d-1}).
Plasencia Gutiérrez, M.; Argáez, C.; Jónsson, H. Improved Minimum Mode Following Method for Finding First Order Saddle Points. J. Chem. Theory Comput. 2017, 13 (1), 125-134. <https://doi.org/10.1021/acs.jctc.5b01216> Even covering of the unit hypersphere for saddle-search starts.
Plasencia Gutiérrez, M.; Argáez, C.; Jónsson, H. Improved Minimum Mode Following Method for Finding First Order Saddle Points. J. Chem. Theory Comput. 2017, 13 (1), 125-134. <https://doi.org/10.1021/acs.jctc.5b01216> (ookcite: ACS bibliography; IEEE: vol. 13, no. 1, pp. 125-134, Jan. 2017). Optbench / SoftSaddle heptamer. Instead of Gaussian displacements, starting points lie on (S^{d-1}) and a Thomson-like repulsion (sum_{ineq j} 1/gamma_{ij}^{s}) with geodesic (gamma=arccos(mathbf{v}_icdotmathbf{v}_j)) and (s=1) spaces them. SoftSaddle
triangulation_hight_v2is the Gauss-Seidel update (astarts at 1, clamp to 0.2, no grow; close pairs dropped not aborted;dEsigned).sort_initial_disporders by Euclidean diameter then max-sum distance. Occupancy ArchiveHole takes one covering direction per extra, placed at the existing all-atom RMSD cap with mobile COM removed: that placement is the occupancy cap, not SoftSaddleV*Ron a mobile block. The paper’s adaptive radius (grow (R) from the (lambda=0) crossing when the batch success rate drops) is not used on the covering itself. Occupancy Leave then climbs that start with ART / SoftSaddle MMF (crate::methods::activation) and quenches past the saddle.Variables
- const COVER_ETOL: f64¶
Relative energy change that ends the Gauss–Seidel sweep.
- const COVER_NITR: usize¶
SoftSaddle default iteration cap (
Nitr = 2E3).
- const COVER_S: f64¶
Repulsion exponent (s) in (1/gamma^{s}). SoftSaddle uses 1.
Functions
- fn all_atom_rmsd(left: &[f64], right: &[f64]) -> f64¶
All-atom RMSD between
leftandright.
- fn cover_direction(n: usize, dim: usize, index: usize) -> Vec<f64>¶
Direction
indexof the shared covering, wrapping.
- fn cover_points<R: rand::Rng + ?Sized>(n: usize, dim: usize, max_iter: usize, rng: &mut R) -> Vec<Vec<f64>>¶
Unit vectors of length
dim, Thomson-spaced on (S^{d-1}).
- fn default_cover_size() -> usize¶
Covering size: two directions per wave replica so a later Leave of the same extra is not the same point.
CATALOG_WAVEwhen set.
- fn farthest_order(points: &[Vec<f64>]) -> Vec<usize>¶
SoftSaddle
sort_initial_disp: start at the Euclidean diameter pair, then each next point maximises the sum of Euclidean distances to those already chosen.
- fn min_geodesic(points: &[Vec<f64>]) -> f64¶
Smallest pairwise geodesic on the covering.
- fn place_around(min: &[f64], direction: &[f64], rmsd: f64, mobile: Option<&[usize]>) -> Vec<f64>¶
Place
min + radius * directionat all-atom RMSDrmsd. Translation of the mobile set is removed so a covering direction is not a COM hop. Frozen atoms stay atmin.
Shared covering for
(n, dim), farthest-point ordered.