Expand description
FMM-solver interface
This module provides a unified interface for solving BEM systems using either direct methods (TBEM) or iterative methods with FMM acceleration.
The key abstraction is the LinearOperator trait, which allows iterative
solvers to work with any matrix representation.
§Preconditioning
BEM systems are typically ill-conditioned. Simple diagonal (Jacobi) preconditioning is not sufficient for BEM. Use ILU preconditioning instead:
ⓘ
use bem::core::solver::{IluMethod, IluScanningDegree, solve_with_ilu};
// For TBEM systems
let solution = solve_with_ilu(
&matrix,
&rhs,
IluMethod::Tbem,
IluScanningDegree::Fine,
&cgs_config,
);Re-exports§
pub use super::ilu_preconditioner::IluMethod;pub use super::ilu_preconditioner::IluPreconditioner;pub use super::ilu_preconditioner::IluScanningDegree;pub use super::ilu_preconditioner::IluSetup;pub use super::preconditioner::Preconditioner;
Structs§
- Adaptive
Mesh Config - Adaptive mesh configuration based on frequency and room size
- CsrOperator
- CSR sparse matrix linear operator
- Dense
Operator - Dense matrix linear operator
- Diagonal
Preconditioner - Diagonal preconditioner from a linear operator
- IluDiagnostics
- Information about ILU setup for diagnostics
- IluOperator
- ILU preconditioner wrapper implementing LinearOperator
- Mlfmm
Operator - MLFMM linear operator
- Slfmm
Operator - SLFMM linear operator
Traits§
- Linear
Operator - Trait for linear operators that can perform matrix-vector products
Functions§
- estimate_
element_ count - Estimate element count for a room at given mesh resolution
- gmres_
solve_ fmm_ batched - Solve using GMRES with batched BLAS operations
- gmres_
solve_ fmm_ batched_ with_ ilu - Solve using GMRES with batched BLAS and ILU preconditioning
- gmres_
solve_ fmm_ hierarchical - Solve using GMRES with hierarchical preconditioner (operator interface)
- gmres_
solve_ tbem_ with_ ilu - Solve a TBEM system with GMRES + ILU preconditioning
- gmres_
solve_ with_ hierarchical_ precond - Solve using GMRES with hierarchical FMM preconditioner
- gmres_
solve_ with_ ilu - Solve a linear system using GMRES with ILU preconditioning
- gmres_
solve_ with_ ilu_ operator - Solve using GMRES with ILU preconditioning (using LinearOperator)
- ilu_
diagnostics - Create ILU diagnostics from a preconditioner
- mesh_
resolution_ for_ frequency_ range - Calculate mesh resolution for a frequency range
- recommended_
mesh_ resolution - Calculate recommended mesh resolution for a given frequency
- solve_
adaptive - Solve a linear system using the appropriate method based on system size
- solve_
bicgstab - Solve a linear system using BiCGSTAB with the given linear operator
- solve_
cgs - Solve a linear system using CGS with the given linear operator
- solve_
gmres - Solve a linear system using GMRES with the given linear operator
- solve_
tbem_ with_ ilu - Solve a TBEM system with ILU preconditioning
- solve_
with_ ilu - Solve a linear system using CGS with ILU preconditioning
- solve_
with_ ilu_ operator - Solve a linear system using CGS with ILU preconditioning (using LinearOperator)