pub struct BlockAdjacency { /* private fields */ }Expand description
The finalized, consolidated block structure of a BlockMatrix, indexed
both by row and by column (see BlockMatrix::finish’s doc comment for
why both are needed rather than one derived from the other on demand).
Implementations§
Source§impl BlockAdjacency
impl BlockAdjacency
pub fn n(&self) -> usize
pub fn row(&self, i: usize) -> &[(usize, Block2)]
Sourcepub fn col(&self, j: usize) -> &[(usize, Block2)]
pub fn col(&self, j: usize) -> &[(usize, Block2)]
All (row, block) pairs with a nonzero block in column j, sorted
by row. block is the real A[row][j] value — not A[j][row]
reused under a symmetry assumption, since the Jacobian doesn’t
satisfy one (see BlockMatrix::finish).
pub fn get(&self, i: usize, j: usize) -> Block2
Sourcepub fn colamd_order(&self) -> Vec<usize>
pub fn colamd_order(&self) -> Vec<usize>
Computes a fill-reducing column permutation over the collapsed
bus-level structural graph (one node per bus, ignoring the internal
2×2 block contents — colamd’s ordering is purely structural),
reusing faer’s tested colamd::order rather than hand-writing an
ordering heuristic. perm[k] = the original bus index placed at
elimination position k.
Auto Trait Implementations§
impl Freeze for BlockAdjacency
impl RefUnwindSafe for BlockAdjacency
impl Send for BlockAdjacency
impl Sync for BlockAdjacency
impl Unpin for BlockAdjacency
impl UnsafeUnpin for BlockAdjacency
impl UnwindSafe for BlockAdjacency
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
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> ⓘ
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