forked from 1b-agent/fieldcraft-upstream
solver: symmetric indefinite LDLᵀ factorization with inertia
A supernodal LDLᵀ on the Cholesky factor's symbolic factorization (ordering, supernodes, fill, cap and parallel subtree tasks shared through a Symbolic and a generic driver; the Cholesky numerics are unchanged bit for bit). Pivots by the bounded Bunch–Kaufman (rook) search of Ashcraft, Grimes & Lewis among each supernode's columns (Schenk & Gärtner's supernode Bunch–Kaufman), 1 × 1 and 2 × 2, right-looking panels whose trailing update reuses the tiled Cholesky kernels with L D formed on the fly. Reports the inertia; a column without a pivot above round-off is a located Singular error; NaN is refused. Symmetric::new picks Cholesky, LDLᵀ, or Cholesky with an LDLᵀ fallback; solve_refined adds iterative refinement. 1.1–1.2× the Cholesky time on a 140 000-equation hex8 pattern. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm
This commit is contained in:
1 parent
11a69d8171
commit
908dae180b
7 files changed
+1176
-75
No files matched your search
@@ -13,7 +13,9 @@
|
||||
//! 4. **Solution** ([`cholesky`]): sparse Cholesky; reactions K u − f at the prescribed degrees
|
||||
//! of freedom; stresses at the integration points, extrapolated and averaged at the nodes, and
|
||||
//! von Mises. Frequency analysis ([`eigen`]) runs shift-invert block Lanczos on the same
|
||||
//! kind of factorization.
|
||||
//! kind of factorization. Indefinite matrices (tangents past a limit point, strained mixed
|
||||
//! elements, shifted operators) are factored by the symmetric indefinite LDLᵀ ([`ldlt`]) on
|
||||
//! the same symbolic factorization, which also counts their negative eigenvalues.
|
||||
//!
|
||||
//! Element matrices and stresses, the factorization's subtrees and dense tiles, the Lanczos
|
||||
//! block solves and matrix products run on threads ([`fieldcraft_parallel`]), but every number
|
||||
@@ -31,6 +33,7 @@ pub mod constraints;
|
||||
pub mod discrete;
|
||||
pub mod eigen;
|
||||
pub mod heat;
|
||||
pub mod ldlt;
|
||||
pub mod nonlinear;
|
||||
pub mod ordering;
|
||||
pub mod sparse;
|
||||
|
||||
Reference in new issue
Block a user