Skip to main content

Crate feral_metis

Crate feral_metis 

Source
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.
MetisOptions
Tunable parameters for METIS nested-dissection ordering.
MetisStats
Crate-specific diagnostic counters for METIS nested dissection.
OrderingStats
Diagnostic counters shared by every ordering producer.

Enums§

OrderingError
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.