pub enum HessianMethod {
DirectPsb,
InverseBfgs,
Bofill,
Powell,
BfgsPowellMix,
}Expand description
Hessian update method for geometry optimization.
Determines how the Hessian matrix (or its inverse) is stored and updated at each optimization step. The choice affects convergence behavior, especially near crossing points.
Variants§
DirectPsb
Direct Hessian + PSB (Powell-Symmetric-Broyden) update. Stores the full Hessian H (Ha/Ų), solves H·dk = -g via LU. Recommended for MECP. Required for blend optimizer.
InverseBfgs
Inverse H⁻¹ + BFGS update (Fortran-style). Stores H⁻¹ (Ų/Ha), computes step as H⁻¹·g via multiply. Incompatible with blend optimizer.
Bofill
Bofill weighted update for saddle-point-like crossings. Direct Hessian. Blends Powell and Murtagh-Sargent.
Powell
Powell symmetric rank-one (SR1) update. Direct Hessian.
BfgsPowellMix
Adaptive BFGS/Powell blend with Bofill weighting. Direct Hessian.
Implementations§
Source§impl HessianMethod
impl HessianMethod
Sourcepub fn is_direct(&self) -> bool
pub fn is_direct(&self) -> bool
Returns true if this method stores a direct Hessian H (not inverse).
Direct Hessian methods solve linear systems H·e = F to compute
error vectors. They are required for the blend optimizer.
Sourcepub fn is_inverse(&self) -> bool
pub fn is_inverse(&self) -> bool
Returns true if this method stores an inverse Hessian H⁻¹.
Trait Implementations§
Source§impl Clone for HessianMethod
impl Clone for HessianMethod
Source§fn clone(&self) -> HessianMethod
fn clone(&self) -> HessianMethod
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for HessianMethod
impl Debug for HessianMethod
Source§impl<'de> Deserialize<'de> for HessianMethod
impl<'de> Deserialize<'de> for HessianMethod
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for HessianMethod
impl PartialEq for HessianMethod
Source§impl Serialize for HessianMethod
impl Serialize for HessianMethod
impl StructuralPartialEq for HessianMethod
Auto Trait Implementations§
impl Freeze for HessianMethod
impl RefUnwindSafe for HessianMethod
impl Send for HessianMethod
impl Sync for HessianMethod
impl Unpin for HessianMethod
impl UnsafeUnpin for HessianMethod
impl UnwindSafe for HessianMethod
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.