Skip to main content

Crate math_audio_fem

Crate math_audio_fem 

Source
Expand description

Multigrid FEM solver for Helmholtz equation

This crate provides a finite element method solver for the Helmholtz equation with adaptive mesh refinement and multigrid acceleration.

§Features

  • 2D and 3D meshes: Triangles, quadrilaterals, tetrahedra, hexahedra
  • Lagrange elements: P1, P2, P3 polynomial basis functions
  • Boundary conditions: Dirichlet, Neumann, Robin, PML
  • Multigrid solver: V-cycle, W-cycle with geometric coarsening
  • Adaptive refinement: h-refinement with residual-based error estimation

§Example

use math_audio_fem::{FemProblem, FemSolver, mesh};

// Create a 2D mesh
let mesh = mesh::unit_square_triangles(10);

// Define the Helmholtz problem
let problem = FemProblem::helmholtz(mesh, k);

// Solve
let solver = FemSolver::new();
let solution = solver.solve(&problem)?;

Modules§

assembly
Finite element matrix assembly
basis
Finite element basis functions
boundary
Boundary condition handling for finite element problems
mesh
Mesh types and generators for FEM
multigrid
Geometric multigrid solver for finite element problems
neural_multigrid
Neural Multigrid (Wave-ADR-NS) solver for the Helmholtz equation
quadrature
Numerical quadrature rules for finite element integration
schwarz_pml
Optimized Schwarz Methods with PML transmission conditions
solver
FEM solvers for Helmholtz equation
waveholtz
WaveHoltz solver for the Helmholtz equation

Functions§

version
Library version