pub struct DaeIndexInfo {
pub structural_index: usize,
pub n_hidden_constraints: usize,
pub differentiation_schedule: Vec<(usize, usize)>,
pub assignment: Vec<Option<usize>>,
pub n_diff: usize,
pub n_alg: usize,
}Expand description
Result of structural DAE index analysis.
Fields§
§structural_index: usizeStructural (Pantelides) index of the DAE system.
- 0: pure ODE (no algebraic equations)
- 1: index-1 DAE (algebraic constraints directly solvable)
- 2: index-2 DAE (constraints need 1 differentiation)
- 3: index-3 DAE (constraints need 2 differentiations)
Number of hidden constraints discovered by the algorithm.
differentiation_schedule: Vec<(usize, usize)>Schedule of differentiations: (equation_index, n_times_to_differentiate).
Each entry says “equation equation_index must be differentiated
n_times_to_differentiate times to reduce the index.”
assignment: Vec<Option<usize>>Assignment from the Pantelides algorithm: equation i is matched to variable assign[i].
Only meaningful after a successful structural analysis.
n_diff: usizeNumber of differential variables in the original system.
n_alg: usizeNumber of algebraic variables in the original system.
Trait Implementations§
Source§impl Clone for DaeIndexInfo
impl Clone for DaeIndexInfo
Source§fn clone(&self) -> DaeIndexInfo
fn clone(&self) -> DaeIndexInfo
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 DaeIndexInfo
impl RefUnwindSafe for DaeIndexInfo
impl Send for DaeIndexInfo
impl Sync for DaeIndexInfo
impl Unpin for DaeIndexInfo
impl UnsafeUnpin for DaeIndexInfo
impl UnwindSafe for DaeIndexInfo
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,
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>
Converts
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>
Converts
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