AcousticScattering.jl models how individual objects scatter sound in a fluid. It provides access to modal series solutions, Kirchhoff approximations in physical optics, boundary- and finite-element methods, the method of fundamental solutions, and Fourier matching methods for calculating scattering amplitude and target strength. Supported geometries include spheres, spheroids, straight and bent cylinders, shells, and general bodies of revolution. Material options include rigid, pressure-release, fluid-filled, and elastic configurations. Support varies by solver. See the model guide for available combinations and limitations.
Requires Julia 1.10 or later. Install the development version from GitHub:
import Pkg
Pkg.add("AcousticScattering.jl")Installation runs an optional precompile workload to reduce first-call latency. Getting Started explains how to disable it before installation.
Calculate backscatter target strength for a rigid sphere with a 1 cm radius at 38 kHz using the modal series solution:
using AcousticScattering
# Parameters
frequency = 38000.0 # Hz
sound_speed = 1477.4 # m/s
wavenumber = 2pi * frequency / sound_speed
solution = modal(Sphere(0.01), Rigid(), wavenumber)
pressure(solution, (0.02, 0.0, 0.0)) # total pressure relative to the incident wave
target_strength(solution) # dB re 1 m²Calculate the scattering amplitude and target strength for an aluminum shell on a spheroid with a 2 mm wall at 12 kHz using numerical methods:
# Parameters
exterior_density = 1000.0 # kg/m³
exterior_sound_speed = 1500.0 # m/s
interior_density = 1000.0 # kg/m³
interior_sound_speed = 1500.0 # m/s
wavenumber = 2pi * 12000.0 / exterior_sound_speed
# Boundaries/material
shell = Shell(Spheroid(0.02, 0.01), 0.002)
elastic_material = Shelled(0.33, 2700.0, 70e9) # Poisson ratio, density (kg/m³), Young's modulus (Pa)
solution = fem(shell, elastic_material, exterior_density, exterior_sound_speed,
interior_density, interior_sound_speed, wavenumber)
scattering_amplitude(solution) # complex m
target_strength(solution) # dB re 1 m²- Getting Started: installation and your first calculation.
- First frequency sweep: plot target strength and save the data.
- Models and theory: conventions, assumptions, and solver selection.
- API reference: geometry, materials, solvers, and result queries.
- Visualization gallery: figures with links to their examples.
If you use this package in research, cite the archived version you used:
Lucca, B. (2026). AcousticScattering.jl (v0.1.2) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.22776330
Please also cite the relevant model papers listed in the documentation references.
GPL-3.0-only license for the package. The logo artwork incorporates Julia's dots and is licensed separately under CC BY-NC-SA 4.0.