Skip to main content

Module core

Module core 

Source
Expand description

Pure Rust BEM (Boundary Element Method) Solver

This module provides a complete BEM solver for acoustic scattering problems, supporting Traditional BEM (TBEM), Single-Level Fast Multipole (SLFMM), and Multi-Level Fast Multipole (MLFMM) methods.

§Architecture

  • types: Core data structures (Mesh, Element, PhysicsParams)
  • constants: Physical and integration constants
  • greens: Green’s function computations (via math-wave)
  • mesh: Mesh loading, element operations, and mesh generators
  • integration: Numerical quadrature (Gauss-Legendre, singular)
  • assembly: BEM matrix assembly (TBEM, SLFMM, MLFMM)
  • solver: Linear solvers (Direct, CGS, BiCGSTAB)
  • incident: Incident field computation (plane waves, point sources)
  • postprocess: Result computation at evaluation points
  • io: Input/output (NC.inp format, JSON)
  • bem_solver: High-level API for solving BEM problems
  • algebra: Pure Rust linear algebra fallbacks for WASM portability
  • parallel: Portable parallel iteration (works with native, WASM, or sequential)

Re-exports§

pub use bem_solver::AssemblyMethod;
pub use bem_solver::BemError;
pub use bem_solver::BemProblem;
pub use bem_solver::BemSolution;
pub use bem_solver::BemSolver;
pub use bem_solver::SolverMethod;
pub use constants::PhysicsParams;
pub use incident::IncidentField;
pub use types::*;

Modules§

assembly
BEM matrix assembly
bem_solver
High-level BEM Solver API
constants
Physical and integration constants
incident
Incident field computation
integration
Numerical integration for BEM
io
Input/Output for BEM solver
mesh
Mesh structures and element operations
parallel
Portable parallel iteration abstractions
postprocess
Post-processing: compute pressure at evaluation points
solver
Linear solvers for BEM
types
Core type definitions for BEM solver