pub struct ScotchOptions {
pub compress: bool,
pub compress_ratio: f64,
pub amd_switch: u32,
pub coarsen_floor: u32,
pub n_sep_trials: u32,
pub fm_move_cap: u32,
pub fm_pass_cap: u32,
pub max_imbalance: f64,
pub node_refine: bool,
pub seed: u64,
}Expand description
Tunable parameters for SCOTCH nested-dissection ordering.
Defaults mirror SCOTCH 7.0’s vertex-separation ordering defaults as
documented in the audit of dev/plans/ordering-scotch.md:
cmin = 100 (coarsening floor), amd_switch = 120,
n_sep_trials = 5, fm_move_cap = 200, bal = 0.05,
compress_ratio = 0.7, seed = 0xDEAD_BEEF.
S1 status: only compress and
compress_ratio are consumed by shipped
code. The remaining fields are defined at the S1 boundary so that
the public type does not drift between milestones.
Fields§
§compress: boolApply graph compression before partitioning.
compress_ratio: f64Compress only if n_compressed / n < compress_ratio (i.e.,
compress only when compression saves at least
(1 - compress_ratio) * 100 % of vertices). SCOTCH uses 0.75;
we follow the plan’s slightly more aggressive 0.7.
amd_switch: u32Switch from recursive ND to AMD on subproblems with at most this many vertices (SCOTCH default: 120).
coarsen_floor: u32Stop coarsening when the graph has fewer than this many
vertices (SCOTCH cmin = 100 for vertex-separation contexts).
n_sep_trials: u32Number of separator trials at each recursion level (SCOTCH default: 5).
fm_move_cap: u32FM refinement: per-pass move cap (SCOTCH default: 200).
fm_pass_cap: u32FM refinement: per-call pass cap. SCOTCH’s default is “passes until no improvement”; we clamp at 32 for bounded runtime.
max_imbalance: f64Imbalance tolerance (SCOTCH default: 0.05).
node_refine: boolCarry the node separator through uncoarsening and refine it at every level, instead of refining the 2-way bisection with halo FM and building the separator once at the finest level.
The old path optimised the wrong objective at every level: halo
FM minimises an edge cut, and minimum edge cut and minimum
vertex separator are different problems. feral-metis had the
identical defect and fixing it there was worth 3.1x on a
collocation KKT; the same measurement for this crate is in
dev/research/scotch-kahip-node-separator-2026-09-18.md.
seed: u64Deterministic RNG seed for coarsening matching.
Trait Implementations§
Source§impl Clone for ScotchOptions
impl Clone for ScotchOptions
Source§fn clone(&self) -> ScotchOptions
fn clone(&self) -> ScotchOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more