pub struct BlockSymbolic { /* private fields */ }Expand description
The symbolic (structure-only) part of a block LU factorization: the
colamd permutation plus which rows are nonzero in each column of L and
U after fill-in. This is fixed for as long as the sparsity pattern
doesn’t change — exactly the case across Newton-Raphson iterations, where
the bus topology stays constant and only numeric Jacobian values change —
so it’s computed once via analyze and reused by BlockLu::refactor for
cheap numeric-only refactorization on every iteration, mirroring
sparse::RealSparseSystem’s SymbolicLu reuse for the scalar backend.
Implementations§
Source§impl BlockSymbolic
impl BlockSymbolic
Sourcepub fn analyze(adj: &BlockAdjacency) -> Self
pub fn analyze(adj: &BlockAdjacency) -> Self
Discovers the elimination structure (fill-in pattern) via the same
left-looking DFS reachability BlockLu used to use inline, but
tracking only which positions become nonzero, not their values.
Auto Trait Implementations§
impl Freeze for BlockSymbolic
impl RefUnwindSafe for BlockSymbolic
impl Send for BlockSymbolic
impl Sync for BlockSymbolic
impl Unpin for BlockSymbolic
impl UnsafeUnpin for BlockSymbolic
impl UnwindSafe for BlockSymbolic
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T, U> Imply<T> for U
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