math-bem 0.4.1

High-performance Boundary Element Method library for acoustic scattering
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
name = "math-bem"
version = "0.4.1"
authors = ["Pierre F. Aubert pierre@spinorama.org"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-performance Boundary Element Method library for acoustic scattering"
readme = "README.md"
keywords = [
    "bem",
    "boundary-element",
    "acoustics",
    "numerical",
    "hrtf",
]
categories = [
    "science",
    "mathematics",
    "simulation",
]
license = "GPL-3.0-or-later"
repository = "https://github.com/pierreaubert/sotf"

[features]
cli = [
    "native",
    "dep:clap",
]
default = [
    "native",
    "cli",
]
memory-optimized = []
native = [
    "ndarray/blas",
    "ndarray/rayon",
    "oxiblas-ndarray",
    "dep:env_logger",
]
out-of-core = []
parallel = []
pure-rust = ["native"]
wasm = [
    "dep:wasm-bindgen",
    "dep:wasm-bindgen-rayon",
]

[lib]
name = "math_audio_bem"
path = "src/lib.rs"

[[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",
]

[[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"]

[[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"

[dependencies.anyhow]
version = "1.0"

[dependencies.chrono]
version = "0.4"
features = ["serde"]

[dependencies.clap]
version = "4.5"
features = ["derive"]
optional = true

[dependencies.env_logger]
version = "0.11"
optional = true

[dependencies.log]
version = "0.4"

[dependencies.math-solvers]
version = "0.4"
default-features = false

[dependencies.math-wave]
version = "0.4"

[dependencies.math-xem-common]
version = "0.4"

[dependencies.ndarray]
version = "0.17"
features = [
    "rayon",
    "serde",
]
default-features = false

[dependencies.num-complex]
version = "0.4"
features = ["serde"]

[dependencies.oxiblas-ndarray]
version = "0.2"
optional = true

[dependencies.rayon]
version = "1.11"

[dependencies.serde]
version = "1.0"
features = [
    "derive",
    "rc",
]

[dependencies.serde_json]
version = "1.0"

[dependencies.thiserror]
version = "2.0.17"

[dependencies.toml]
version = "0.8"

[dependencies.wasm-bindgen]
version = "0.2"
optional = true

[dependencies.wasm-bindgen-rayon]
version = "1.2"
optional = true

[dev-dependencies.directories]
version = "6"