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