pub struct AMGConfig {Show 99 fields
pub max_levels: usize,
pub strong_threshold: f64,
pub coarse_threshold: usize,
pub max_coarse_size: usize,
pub min_coarse_size: usize,
pub truncation_factor: f64,
pub max_elements_per_row: usize,
pub interpolation_truncation: f64,
pub rap_truncation_abs: f64,
pub rap_max_elements_per_row: usize,
pub keep_transpose: bool,
pub keep_pivot_in_rap: bool,
pub require_spd: bool,
pub spd_diag_floor: f64,
pub forbid_non_galerkin_in_spd: bool,
pub grid_relax_type: [RelaxType; 4],
pub num_grid_sweeps: [usize; 4],
pub pre_sweeps: usize,
pub post_sweeps: usize,
pub coarsen_type: CoarsenType,
pub interp_type: InterpType,
pub relax_type: RelaxType,
pub logging_level: usize,
pub print_level: usize,
pub tolerance: f64,
pub max_iterations: usize,
pub min_iterations: usize,
pub ieee_checks: bool,
pub optimize_workspace: bool,
pub jacobi_omega: f64,
pub adaptive_interp: bool,
pub adaptive_samples: usize,
pub adaptive_smooth_steps: usize,
pub adaptive_smooth_omega: f64,
pub adaptive_lambda: f64,
pub adaptive_enforce_sum1: bool,
pub adaptive_weight_mode: AdaptiveWeight,
pub chebyshev_recompute_esteig: bool,
pub chebyshev_safety: f64,
pub chebyshev_lower_ratio: f64,
pub chebyshev_power_steps: usize,
pub chebyshev_degree: usize,
pub use_level_scheduling: bool,
pub drop_tol: f64,
pub stats_eps: f64,
pub verify_p_rank: bool,
pub rank_sketch_cols: usize,
pub rank_cond_threshold: f64,
pub rank_min_col_norm: f64,
pub verify_galerkin: bool,
pub galerkin_samples: usize,
pub galerkin_rel_tol: f64,
pub on_rank_failure: RankFallback,
pub fsai_dist: usize,
pub fsai_use_strength: bool,
pub fsai_max_per_row: usize,
pub fsai_lambda: f64,
pub fsai_adaptive_passes: usize,
pub fsai_drop_tol: f64,
pub fsai_damping: f64,
pub normalize_strength: bool,
pub coarse_solve: CoarseSolve,
pub ilu_drop_tol: f64,
pub ilu_fill_per_row: usize,
pub max_operator_complexity: Option<f64>,
pub agg_num_levels: usize,
pub aggressive_mis_k: usize,
pub max_strong_per_row: Option<usize>,
pub cycle_type: CycleType,
pub kcycle: Option<KCycle>,
pub fmg_nu_pre: usize,
pub fmg_nu_post: usize,
pub fmg_gamma: usize,
pub fmg_levels_use: Option<usize>,
pub non_galerkin: NonGalerkin,
pub nodal: NodalMode,
pub block_size: usize,
pub num_functions: usize,
pub near_nullspace: Option<NearNullspace>,
pub filter_trial_vectors: Option<Vec<Vec<f64>>>,
pub filter_omega: f64,
pub filter_after_non_galerkin: bool,
pub post_interp: PostInterpType,
pub flexible_level: Option<usize>,
pub flexible_iters: usize,
pub flexible_rtol: f64,
pub flexible_pc_sweeps: usize,
pub mixed_precision: Option<MixedPrecision>,
pub mixed_storage: MixedStorage,
pub conditioning: ConditioningOptions,
pub dist_coarse_strategy: DistCoarseStrategy,
pub dist_coarse_repartition: DistCoarseRepartition,
pub dist_coarse_solver_route: DistCoarseSolverRoute,
pub dist_apply_instrumentation: bool,
pub dist_coarse_ghost_scale: f64,
pub require_native_complex_hierarchy: bool,
pub level_relax_overrides: BTreeMap<usize, RelaxType>,
pub level_sweep_overrides: BTreeMap<usize, (usize, usize)>,
pub level_coarse_overrides: BTreeMap<usize, CoarseSolve>,
}Available on crate feature
backend-faer only.Fields§
§max_levels: usize§strong_threshold: f64§coarse_threshold: usize§max_coarse_size: usize§min_coarse_size: usize§truncation_factor: f64§max_elements_per_row: usize§interpolation_truncation: f64§rap_truncation_abs: f64§rap_max_elements_per_row: usize§keep_transpose: bool§keep_pivot_in_rap: bool§require_spd: bool§spd_diag_floor: f64§forbid_non_galerkin_in_spd: bool§grid_relax_type: [RelaxType; 4]§num_grid_sweeps: [usize; 4]§pre_sweeps: usize§post_sweeps: usize§coarsen_type: CoarsenType§interp_type: InterpType§relax_type: RelaxType§logging_level: usize§print_level: usize§tolerance: f64§max_iterations: usize§min_iterations: usize§ieee_checks: bool§optimize_workspace: bool§jacobi_omega: f64§adaptive_interp: bool§adaptive_samples: usize§adaptive_smooth_steps: usize§adaptive_smooth_omega: f64§adaptive_lambda: f64§adaptive_enforce_sum1: bool§adaptive_weight_mode: AdaptiveWeight§chebyshev_recompute_esteig: bool§chebyshev_safety: f64§chebyshev_lower_ratio: f64§chebyshev_power_steps: usize§chebyshev_degree: usize§use_level_scheduling: bool§drop_tol: f64§stats_eps: f64§verify_p_rank: bool§rank_sketch_cols: usize§rank_cond_threshold: f64§rank_min_col_norm: f64§verify_galerkin: bool§galerkin_samples: usize§galerkin_rel_tol: f64§on_rank_failure: RankFallback§fsai_dist: usize§fsai_use_strength: bool§fsai_max_per_row: usize§fsai_lambda: f64§fsai_adaptive_passes: usize§fsai_drop_tol: f64§fsai_damping: f64§normalize_strength: bool§coarse_solve: CoarseSolve§ilu_drop_tol: f64§ilu_fill_per_row: usize§max_operator_complexity: Option<f64>§agg_num_levels: usize§aggressive_mis_k: usize§max_strong_per_row: Option<usize>§cycle_type: CycleType§kcycle: Option<KCycle>§fmg_nu_pre: usize§fmg_nu_post: usize§fmg_gamma: usize§fmg_levels_use: Option<usize>§non_galerkin: NonGalerkin§nodal: NodalMode§block_size: usize§num_functions: usize§near_nullspace: Option<NearNullspace>§filter_trial_vectors: Option<Vec<Vec<f64>>>§filter_omega: f64§filter_after_non_galerkin: bool§post_interp: PostInterpType§flexible_level: Option<usize>§flexible_iters: usize§flexible_rtol: f64§flexible_pc_sweeps: usize§mixed_precision: Option<MixedPrecision>§mixed_storage: MixedStorage§conditioning: ConditioningOptions§dist_coarse_strategy: DistCoarseStrategy§dist_coarse_repartition: DistCoarseRepartition§dist_coarse_solver_route: DistCoarseSolverRoute§dist_apply_instrumentation: bool§dist_coarse_ghost_scale: f64§require_native_complex_hierarchy: boolIn complex builds, reject genuinely complex non-diagonal operators until AMG carries complex values through the full hierarchy.
level_relax_overrides: BTreeMap<usize, RelaxType>§level_sweep_overrides: BTreeMap<usize, (usize, usize)>§level_coarse_overrides: BTreeMap<usize, CoarseSolve>Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for AMGConfig
impl RefUnwindSafe for AMGConfig
impl Send for AMGConfig
impl Sync for AMGConfig
impl Unpin for AMGConfig
impl UnsafeUnpin for AMGConfig
impl UnwindSafe for AMGConfig
Blanket Implementations§
Source§impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
Source§fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
Convert the given value into an approximately equivalent representation.
Source§impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
Source§type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
The error type produced by a failed conversion.
Source§fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
Convert the subject into an approximately equivalent representation.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, Dst> ConvAsUtil<Dst> for T
impl<T, Dst> ConvAsUtil<Dst> for T
Source§impl<T> ConvUtil for T
impl<T> ConvUtil for T
Source§fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
Approximate the subject to a given type with the default scheme.
Source§fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
Approximate the subject to a given type with a specific scheme.
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T, U> Imply<T> for U
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> ShellContext for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§unsafe fn to_subset_unchecked(&self) -> SS
unsafe fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.