pub enum TangentStrategy {
Current,
ReuseAtStepStart,
Initial,
}Expand description
Which tangent stiffness an Algorithm::Newton/KrylovNewton iteration
solves against. Closed enum — mirrors Xara’s TangentFlagType
(CURRENT_TANGENT / INITIAL_TANGENT / PREDICTOR_TANGENT), which
every Newton-family algorithm class there takes as a constructor
argument rather than hard-coding (docs/algorithms.md §3).
Variants§
Current
Re-form and re-factor the tangent at the current trial state, every iteration. Full Newton-Raphson — today’s only behavior before this type existed.
ReuseAtStepStart
Form the tangent once, at the state the step started from, and
reuse it (still factored once) for every iteration of that step.
Xara’s ModifiedNewton with CURRENT_TANGENT passed at
construction (misleadingly named from the caller’s perspective —
it means “current as of step start,” not “current every
iteration”).
Initial
Form the tangent once, from the model’s very first (undeformed)
state, ever — reused for every iteration of every step. Xara’s
ModifiedNewton with INITIAL_TANGENT. Cheapest, worst
convergence rate (linear, not quadratic); pairs naturally with
Algorithm::KrylovNewton’s acceleration to claw the convergence
rate back without paying for re-factorization.
Trait Implementations§
Source§impl Clone for TangentStrategy
impl Clone for TangentStrategy
Source§fn clone(&self) -> TangentStrategy
fn clone(&self) -> TangentStrategy
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for TangentStrategy
Source§impl Debug for TangentStrategy
impl Debug for TangentStrategy
impl Eq for TangentStrategy
Source§impl PartialEq for TangentStrategy
impl PartialEq for TangentStrategy
impl StructuralPartialEq for TangentStrategy
Auto Trait Implementations§
impl Freeze for TangentStrategy
impl RefUnwindSafe for TangentStrategy
impl Send for TangentStrategy
impl Sync for TangentStrategy
impl Unpin for TangentStrategy
impl UnsafeUnpin for TangentStrategy
impl UnwindSafe for TangentStrategy
Blanket Implementations§
impl<T> Boilerplate for T
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<T, U> Imply<T> for U
impl<T> Scalar for T
§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.