Expand description
Multilevel nested-dissection fill-reducing ordering.
Clean-room Rust implementation of the algorithm described in Karypis & Kumar, “A Fast and High Quality Multilevel Scheme for Partitioning Irregular Graphs” (SIAM J. Sci. Comput., 1998), and George, “Nested Dissection of a Regular Finite Element Mesh” (SIAM J. Numer. Anal., 1973).
The public surface conforms to the FERAL ordering-crate contract
(dev/plans/ordering-crate-contract.md): CscPattern,
OrderingStats, OrderingError, and CONTRACT_VERSION are
re-exported from feral-ordering-core.
Status: M1–M7 complete. metis_order_full coarsens the graph
(SHEM + 2-hop), picks the best of niparts initial bisections
scored on their post-FM cut, uncoarsens with FM refinement, turns
the final edge bisection into a node separator via min vertex
cover (König’s theorem), and recursively orders the two sides —
handing off to AMD on subgraphs no larger than
nd_to_amd_switch. M8 (integration into the main solver) is
tracked separately in dev/plans/ordering-metis.md.
Structs§
- CscPattern
- Borrowed symmetric sparsity pattern in CSC form.
- Metis
Options - Tunable parameters for METIS nested-dissection ordering.
- Metis
Stats - Crate-specific diagnostic counters for METIS nested dissection.
- Ordering
Stats - Diagnostic counters shared by every ordering producer.
Enums§
- Ordering
Error - Shared error shape for the ordering-crate contract.
Constants§
- CONTRACT_
VERSION - Version of the shared ordering-crate contract.
Functions§
- metis_
order - Compute a fill-reducing METIS nested-dissection ordering.
- metis_
order_ full - Contract-conforming ordering producer.