Skip to contents

Core Workflows

Running and simulating models

Primary package entry points for deterministic target-strength modeling and repeated simulation workflows.

target_strength()
Wrapper function to model acoustic target strength
simulate_ts()
Simulate target strength (TS) with flexible parameterization and batching

Model registry and extensions

Helpers for listing built-in models and registering custom model implementations for the current session or across sessions.

available_models()
List available target-strength models
register_model()
Register a user-defined target-strength model
unregister_model()
Remove a user-defined target-strength model registration
reset_model_registry()
Clear user-defined model registrations

Inspection, plotting, and reshaping

Helpers for pulling components out of package objects, visualizing stored results, and modifying geometry after construction.

extract()
Extract nested components, slots, or matrix/vector fields from objects
plot(<Scatterer>)
Plot scatterer geometry, stored model results, or stored TMM scattering views
translate_shape()
Translate a stored shape or scatterer component
reanchor_shape()
Re-anchor a stored shape or scatterer component along the x axis
offset_component()
Offset an internal scatterer component without rebuilding the object
inflate_shape()
Locally widen, pinch, or taper a stored shape profile
smooth_shape()
Smooth a stored shape or scatterer profile
resample_shape()
Resample a stored shape or scatterer profile to a new segment count
flip_shape()
Flip a stored shape or scatterer profile across the x or z axis
reforge()
Resize or reparameterize a scatterer object
brake()
Bend a scatterer body or body component

Bundled benchmark and example data

Built-in objects used throughout the package examples, validation workflows, and benchmark reproductions.

benchmark_ts
Benchmark model outputs from Jech et al. (2015)
cod
Sample cod shape with fully inflated swimbladder
krill
Sample krill (Euphausia superba) shape taken from McGehee et al. (1998)
sardine
Sample sardine shape with fully inflated swimbladder

T-Matrix Post-Processing

Stored-state scattering products

Post-processing helpers that reuse stored T-matrix state for angular scattering, orientation averaging, diagnostics, and higher-level summary products.

tmm_scattering()
Evaluate scattering from a stored TMM object
tmm_scattering_grid()
Evaluate a 2D scattering grid from a stored TMM object
tmm_average_orientation()
Orientation-average scattering from a stored TMM object
tmm_orientation_distribution()
Build an orientation distribution for stored TMM post-processing
tmm_bistatic_summary()
Summarize bistatic products from a stored TMM object
tmm_diagnostics()
Diagnostics for stored single-target TMM solutions
tmm_products()
Collect multiple post-processed products from one stored TMM solve

Scatterer Types

Scatterer classes

General scattering classes that dictate expected parameters and model compatibility.

Scatterer Scatterer-class
Scatterer-class object for target strength estimation
CSC CSC-class
Composite scatterer (CSC) object/class.
ELA ELA-class
Elastic-based scatterer (ELA) object/class.
BBF BBF-class
Backboned fish (BBF) object/class.
CAL CAL-class
Solid and calibration sphere (CAL) object/class.
ESS ESS-class
Elastic shelled scatterer (ESS) object/class.
GAS GAS-class
Generic gas-filled scatterer (GAS) object/class.
FLS FLS-class
Fluid-like scatterer (FLS) object/class.
SBF SBF-class
Swimbladdered fish (SBF) object/class.

Scatterer generation

Constructors for the supported scatterer classes.

cal_generate()
Generate a CAL-class object.
ess_generate()
Generate an ESS-class object
fls_generate()
Generate a FLS-class object.
gas_generate()
Generate a GAS-class object
sbf_generate()
Generate a SBF-class object.
bbf_generate()
Generate a BBF-class object.

Scatterer Geometry

Shape classes

Canonical and arbitrary shape classes used throughout the package.

Shape Shape-class
Generic scattering shape object used throughout this package.
Arbitrary Arbitrary-class
Arbitrary body shape
Cylinder Cylinder-class
Cylindrical body shape
PolynomialCylinder PolynomialCylinder-class
Cylindrical body shape deformed using a polynomial
OblateSpheroid OblateSpheroid-class
Oblate spheroidal body shape
ProlateSpheroid ProlateSpheroid-class
Prolate spheroidal body shape
Sphere Sphere-class
Spherical body shape

Shape generation

Shape constructors, canonicalization helpers, and the convenience wrapper for canonical geometry.

canonicalize_shape()
Canonicalize one shape into a canonical surrogate
create_shape()
A wrapper function that automatically creates generalized and/or canonical shapes for TS modeling.
arbitrary()
Creates arbitrary body shape from user inputs
cylinder()
Creates a cylinder.
polynomial_cylinder()
Creates a polynomial deformed cylinder
oblate_spheroid()
Creates an oblate spheroid.
prolate_spheroid()
Creates a prolate spheroid.
sphere()
Creates a sphere.

Acoustic and Elastic Utilities

Utility functions for basic acoustic quantities, contrasts, and elastic material-property conversions.

Acoustic quantities and coefficients

wavenumber()
Calculate the acoustic wavenumber (\(k\)) for a given frequency and sound speed.
linear() db()
Convert between logarithmic (dB) and linear domains for backscatter values.
transmission_coefficient()
Plane wave/plane interface transmission coefficient
compressibility()
Calculate she compressibility (\(\kappa\)) of a scattering boundary/interface.
rho()
Calculate the density contrast (\(\rho\)) of a scattering boundary

Elastic moduli for homogeneous isotropic materials

pois()
Calculate the Poisson's ratio (\(\nu\))
bulk()
Calculate the bulk modulus (K).
young()
Calculate Young's modulus (E).
shear()
Calculate the shear modulus (G)
lame()
Calculate Lamé's first parameter (\(\lambda\))

Mathematical Functions

Special functions and numerical helpers used throughout the package.

Summation, quadrature, and vector helpers

along_sum()
Along-matrix summing function
gauss_legendre()
Gauss-Legendre nodes and weights
neumann()
Compute the Neumann factor \(\nu_{n}\)
vecnorm()
Calculates the Euclidean norm across each row of a given matrix.

Bessel functions (cylindrical)

jc() jcdk()
Cylindrical Bessel function of the first kind, \(J_\nu(z)\), and its respective derivatives
yc() ycdk()
Cylindrical Bessel function of the second kind, \(Y_\nu(x)\), and its respective derivatives
hc() hcdk()
Cylindrical Bessel function of the third kind (Hankel), \(H_\nu(x)\), and its respective derivatives

Bessel functions (spherical)

js() jsdk()
Spherical Bessel function of the first kind, \(j_\nu(z)\), and its respective derivatives
ys() ysdk()
Spherical Bessel function of the second kind, \(y_\nu(z)\), and its respective derivatives
hs() hsdk()
Spherical Bessel function of the third kind (Hankel), \(h_\nu(x)\), and its respective derivatives

Legendre functions

Pn()
Legendre Polynomial of the First Kind, \(P_\nu(x)\)
Pndk()
Derivative of the Legendre Polynomial of the First Kind
Qn()
Legendre Function of the Second Kind, \(Q_\nu(x)\)
Qndk()
Derivative of the Legendre function of the second kind

Spheroidal wave functions

Smn()
Prolate Spheroidal Angular Function of the First Kind, \(S^{1}_{mn}(c, \eta)\)
Rmn()
Prolate Spheroidal Radial Functions

Angle conversion

degrees()
Convert angular measurements from radians to degrees
radians()
Convert angular measurements from degrees to radians.