pub struct MecpGradient {
pub f_vec: DVector<f64>,
pub g_vec: DVector<f64>,
pub combined: DVector<f64>,
}Expand description
Holds the decomposed MECP effective gradient.
The Harvey algorithm combines two physically distinct components:
f_vec: drives the energy difference to zero (pure Hartree)g_vec: minimizes energy on the crossing seam (pure Ha/A)
The combined field is f_vec + g_vec used only for the step direction.
Downstream consumers that expect pure Ha/A (Hessian update, DIIS error
vectors, convergence check) should use g_vec.
Fields§
§f_vec: DVector<f64>f-vector: (E1 - E2) * x_hat — pure Hartree (Ha)
g_vec: DVector<f64>g-vector: g1 - (x_hat·g1) * x_hat — pure Hartree/Angstrom (Ha/A)
combined: DVector<f64>Combined: f_vec + g_vec — mixed units, used for step direction only
Implementations§
Source§impl MecpGradient
impl MecpGradient
Trait Implementations§
Source§impl Clone for MecpGradient
impl Clone for MecpGradient
Source§fn clone(&self) -> MecpGradient
fn clone(&self) -> MecpGradient
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for MecpGradient
impl RefUnwindSafe for MecpGradient
impl Send for MecpGradient
impl Sync for MecpGradient
impl Unpin for MecpGradient
impl UnsafeUnpin for MecpGradient
impl UnwindSafe for MecpGradient
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
Mutably borrows from an owned value. Read more
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>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
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
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.