Skip to main content

math_audio_bem/core/
mod.rs

1//! Pure Rust BEM (Boundary Element Method) Solver
2//!
3//! This module provides a complete BEM solver for acoustic scattering problems,
4//! supporting Traditional BEM (TBEM), Single-Level Fast Multipole (SLFMM),
5//! and Multi-Level Fast Multipole (MLFMM) methods.
6//!
7//! ## Architecture
8//!
9//! - `types`: Core data structures (Mesh, Element, PhysicsParams)
10//! - `constants`: Physical and integration constants
11//! - `greens`: Green's function computations (via math-wave)
12//! - `mesh`: Mesh loading, element operations, and mesh generators
13//! - `integration`: Numerical quadrature (Gauss-Legendre, singular)
14//! - `assembly`: BEM matrix assembly (TBEM, SLFMM, MLFMM)
15//! - `solver`: Linear solvers (Direct, CGS, BiCGSTAB)
16//! - `incident`: Incident field computation (plane waves, point sources)
17//! - `postprocess`: Result computation at evaluation points
18//! - `io`: Input/output (NC.inp format, JSON)
19//! - `bem_solver`: High-level API for solving BEM problems
20//! - `algebra`: Pure Rust linear algebra fallbacks for WASM portability
21//! - `parallel`: Portable parallel iteration (works with native, WASM, or sequential)
22
23pub mod assembly;
24pub mod bem_solver;
25pub mod constants;
26// pub mod greens; // Removed - use math_audio_wave::greens instead
27pub mod incident;
28pub mod integration;
29pub mod io;
30pub mod mesh;
31pub mod parallel;
32pub mod postprocess;
33pub mod solver;
34pub mod types;
35
36// Re-exports for convenience
37pub use bem_solver::{AssemblyMethod, BemError, BemProblem, BemSolution, BemSolver, SolverMethod};
38pub use constants::PhysicsParams;
39pub use incident::IncidentField;
40pub use types::*;