Skip to main content

Module nested_dissection

Module nested_dissection 

Source
Expand description

Nested dissection ordering for sparse direct solvers.

Provides graph-based fill-reducing orderings that minimize fill-in during sparse Cholesky or LU factorization. The main algorithm recursively finds vertex separators to split the graph, orders each partition recursively, then places separator vertices last.

§Algorithm

  1. Build an AdjacencyGraph from a symmetric CSR matrix.
  2. Call NestedDissectionOrdering::compute to obtain a Permutation.
  3. Evaluate quality with analyze_ordering.

The separator finder uses a multi-level approach: heavy-edge coarsening, BFS-based bisection on the coarse graph, and Fiduccia-Mattheyses refinement.

Structs§

AdjacencyGraph
Undirected graph of a symmetric sparse matrix in CSR-like form.
MinimumDegreeOrdering
Approximate minimum degree ordering for small subgraphs.
NestedDissectionOrdering
Nested dissection ordering algorithm.
OrderingQuality
Quality metrics for an ordering.
Permutation
A permutation with its inverse, for reordering matrix rows/columns.
SeparatorResult
Result of a graph separator computation.
VertexSeparator
Finds graph vertex separators using a multi-level approach.

Functions§

analyze_ordering
Analyze the quality of an ordering by estimating fill-in via symbolic factorization.