[[bin]]
name = "qa-suite"
path = "bin/qa_suite.rs"
required-features = ["native", "cli", "parallel"]
[[bin]]
name = "roomsim"
path = "bin/room_simulator_bem.rs"
required-features = ["cli", "native", "parallel", "memory-optimized", "out-of-core"]
[dependencies.anyhow]
version = "1.0"
[dependencies.chrono]
version = "0.4"
[dependencies.clap]
features = ["derive"]
optional = true
version = "4.5"
[dependencies.criterion]
optional = true
version = "0.5"
[dependencies.env_logger]
optional = true
version = "0.11"
[dependencies.log]
version = "0.4"
[dependencies.math-solvers]
default-features = false
version = "0.1"
[dependencies.math-wave]
version = "0.1"
[dependencies.math-xem-common]
version = "0.1"
[dependencies.memory-stats]
optional = true
version = "1.2"
[dependencies.ndarray]
default-features = false
features = ["rayon", "blas", "serde"]
version = "0.17"
[dependencies.ndarray-linalg]
optional = true
version = "0.18"
[dependencies.num-complex]
features = ["serde"]
version = "0.4"
[dependencies.num-traits]
version = "0.2"
[dependencies.num_cpus]
optional = true
version = "1.17"
[dependencies.rayon]
optional = true
version = "1.11"
[dependencies.serde]
features = ["derive"]
version = "1.0"
[dependencies.serde_json]
version = "1.0"
[dependencies.spec_math]
version = "0.1.6"
[dependencies.special]
version = "0.11"
[dependencies.sysinfo]
optional = true
version = "0.37"
[dependencies.thiserror]
version = "2.0.17"
[dependencies.toml]
version = "0.8"
[dependencies.wasm-bindgen]
optional = true
version = "0.2"
[dependencies.wasm-bindgen-rayon]
optional = true
version = "1.2"
[dev-dependencies.approx]
version = "0.5"
[dev-dependencies.criterion]
features = ["html_reports"]
version = "0.5"
[dev-dependencies.directories]
version = "5"
[dev-dependencies.proptest]
version = "1.9"
[[example]]
name = "adaptive_beta_sweep"
path = "examples/adaptive_beta_sweep.rs"
[[example]]
name = "analytical_check"
path = "examples/analytical_check.rs"
[[example]]
name = "angular_validation"
path = "examples/angular_validation.rs"
[[example]]
name = "audio_fmm_sweep"
path = "examples/audio_fmm_sweep.rs"
[[example]]
name = "audio_frequency_sweep"
path = "examples/audio_frequency_sweep.rs"
[[example]]
name = "bem_convergence_study"
path = "examples/bem_convergence_study.rs"
[[example]]
name = "bem_diagnostics"
path = "examples/bem_diagnostics.rs"
[[example]]
name = "beta_comparison"
path = "examples/beta_comparison.rs"
[[example]]
name = "bounded_beta_test"
path = "examples/bounded_beta_test.rs"
[[example]]
name = "convergence_test"
path = "examples/convergence_test.rs"
[[example]]
name = "e_integral_debug"
path = "examples/e_integral_debug.rs"
[[example]]
name = "e_nearby_analysis"
path = "examples/e_nearby_analysis.rs"
[[example]]
name = "e_offdiag_sum"
path = "examples/e_offdiag_sum.rs"
[[example]]
name = "fmm_benchmark"
path = "examples/fmm_benchmark.rs"
[[example]]
name = "fmm_ilu_solver"
path = "examples/fmm_ilu_solver.rs"
[[example]]
name = "fmm_test"
path = "examples/fmm_test.rs"
[[example]]
name = "fmm_validation"
path = "examples/fmm_validation.rs"
[[example]]
name = "high_order_quad_test"
path = "examples/high_order_quad_test.rs"
[[example]]
name = "hypersingular_test"
path = "examples/hypersingular_test.rs"
[[example]]
name = "incident_field_check"
path = "examples/incident_field_check.rs"
[[example]]
name = "integration_test"
path = "examples/integration_test.rs"
[[example]]
name = "matrix_debug"
path = "examples/matrix_debug.rs"
[[example]]
name = "mesh_comparison"
path = "examples/mesh_comparison.rs"
[[example]]
name = "mesh_convergence_study"
path = "examples/mesh_convergence_study.rs"
[[example]]
name = "mesh_debug"
path = "examples/mesh_debug.rs"
[[example]]
name = "mesh_refinement_test"
path = "examples/mesh_refinement_test.rs"
[[example]]
name = "mesh_topology_comparison"
path = "examples/mesh_topology_comparison.rs"
[[example]]
name = "neighbor_integration_test"
path = "examples/neighbor_integration_test.rs"
[[example]]
name = "normal_check"
path = "examples/normal_check.rs"
[[example]]
name = "optimal_beta_convergence"
path = "examples/optimal_beta_convergence.rs"
[[example]]
name = "residual_check"
path = "examples/residual_check.rs"
[[example]]
name = "room_simulator_config"
path = "examples/room_simulator_config.rs"
[[example]]
name = "room_simulator_demo"
path = "examples/room_simulator_demo.rs"
[[example]]
name = "row_sum_correction_test"
path = "examples/row_sum_correction_test.rs"
[[example]]
name = "row_sum_debug"
path = "examples/row_sum_debug.rs"
[[example]]
name = "simple_sphere_test"
path = "examples/simple_sphere_test.rs"
required-features = ["native"]
[features]
benchmarks = ["criterion"]
cli = ["native", "clap"]
default = ["native", "cli"]
memory-optimized = []
native = ["ndarray/blas", "ndarray/rayon", "ndarray-linalg", "rayon", "env_logger", "memory-stats", "sysinfo", "num_cpus"]
out-of-core = []
parallel = ["rayon"]
pure-rust = ["native"]
wasm = ["rayon", "wasm-bindgen", "wasm-bindgen-rayon"]
[lib]
name = "bem"
path = "src/lib.rs"
[package]
authors = ["Pierre F. Aubert pierre@spinorama.org"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = "build.rs"
categories = ["science", "mathematics", "simulation"]
description = "High-performance Boundary Element Method library for acoustic scattering"
edition = "2024"
keywords = ["bem", "boundary-element", "acoustics", "numerical", "hrtf"]
license = "GPL-3.0-or-later"
name = "math-bem"
readme = "README.md"
repository = "https://github.com/pierreaubert/sotf"
version = "0.1.6"
[[test]]
name = "test_1d_wave"
path = "tests/test_1d_wave.rs"
[[test]]
name = "test_2d_cylinder"
path = "tests/test_2d_cylinder.rs"
[[test]]
name = "test_3d_sphere"
path = "tests/test_3d_sphere.rs"
[[test]]
name = "test_accuracy_parity"
path = "tests/test_accuracy_parity.rs"
[[test]]
name = "test_bem_sphere_integration"
path = "tests/test_bem_sphere_integration.rs"
[[test]]
name = "test_fmm_validation"
path = "tests/test_fmm_validation.rs"