pub enum ElementMode {
PerConstraint,
PrimalBlock,
}Expand description
How the Lagrangian is split into elements.
Variants§
PerConstraint
One element per constraint row (plus the objective). Each block
has a multiplier-independent target, and needs no assumption about
how the model orders its variables — but there are as many blocks
as constraints, each approximating a ∇²c_j with no sign
structure, and the errors accumulate through the weighted sum.
PrimalBlock
One element per contiguous block of primal variables, modelling the Lagrangian’s restriction to that block with damped BFGS. This is Asprion, Chinellato & Guzzella’s partition: a direct collocation transcription orders its variables by stage, so the Lagrangian Hessian really is close to block diagonal in this partition, and the block count is the stage count rather than the constraint count.
Trait Implementations§
Source§impl Clone for ElementMode
impl Clone for ElementMode
Source§fn clone(&self) -> ElementMode
fn clone(&self) -> ElementMode
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 ElementMode
Source§impl Debug for ElementMode
impl Debug for ElementMode
impl Eq for ElementMode
Source§impl PartialEq for ElementMode
impl PartialEq for ElementMode
impl StructuralPartialEq for ElementMode
Auto Trait Implementations§
impl Freeze for ElementMode
impl RefUnwindSafe for ElementMode
impl Send for ElementMode
impl Sync for ElementMode
impl Unpin for ElementMode
impl UnsafeUnpin for ElementMode
impl UnwindSafe for ElementMode
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more