Module fmm_interface

Module fmm_interface 

Source
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§

AdaptiveMeshConfig
Adaptive mesh configuration based on frequency and room size
CsrOperator
CSR sparse matrix linear operator
DenseOperator
Dense matrix linear operator
DiagonalPreconditioner
Diagonal preconditioner from a linear operator
IluDiagnostics
Information about ILU setup for diagnostics
IluOperator
ILU preconditioner wrapper implementing LinearOperator
MlfmmOperator
MLFMM linear operator
SlfmmOperator
SLFMM linear operator

Traits§

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