Skip to contents

acousticTS implementation

Benchmarked Validated

FCMS evaluates straight circular cylinders with a finite-length modal-series approximation (Stanton 1988, 1989).

The principal inputs are cylinder radius, length, orientation, interior properties, and boundary condition.

Cylinder object generation

library(acousticTS)

cylinder_shape <- cylinder(
  length_body = 50e-3,
  radius_body = 5e-3,
  n_segments = 80
)

cylinder_object <- fls_generate(
  shape = cylinder_shape,
  density_body = 1045,
  sound_speed_body = 1520,
  theta_body = pi / 2
)

cylinder_object
## FLS-object
##  Fluid-like scatterer 
##  ID:UID
## Body dimensions:
##  Length:0.05 m(n = 80 cylinders)
##  Mean radius:0.005 m
##  Max radius:0.005 m
## Shape parameters:
##  Defined shape:Cylinder
##  L/a ratio:10
##  Taper order:N/A
## Material properties:
##  Density: 1045 kg m^-3 | Sound speed: 1520 m s^-1
## Body orientation (relative to transducer face/axis):1.571 radians

The cylinder geometry is built first because the FCMS expects a straight, constant-radius finite cylinder. That means the shape object is not a generic placeholder. It is the part of the workflow that states the physical idealization being used: a body of length length_body, radius radius_body, and a discretization fine enough to represent that idealized cylinder cleanly in later inspection and plotting steps.

The scatterer object then adds the material description. For a fluid-filled cylinder, density_body and sound_speed_body define the interior fluid properties, while theta_body defines the cylinder orientation relative to the incident field. In practice, this orientation parameter is often just as important as the material contrasts because the FCMS separates cross-sectional scattering from axial coherence. Changing the orientation changes the argument of both the transverse size parameter and the longitudinal coherence factor.

Calculating a TS-frequency spectrum

frequency <- seq(38e3, 150e3, by = 8e3)

cylinder_object <- target_strength(
  object = cylinder_object,
  frequency = frequency,
  model = "fcms",
  boundary = "liquid_filled"
)

This call evaluates the FCMS over a discrete frequency grid. The frequency sequence should be chosen with the interpretation in mind. A coarse grid may be adequate for broad trends, but it can miss modal structure or oscillatory interference if the spectrum varies rapidly. For cylinders, that matters most when the acoustic size grows and more cylindrical orders contribute meaningfully to the modal sum.

The boundary argument is also part of the model definition, not a cosmetic option. A liquid_filled boundary says that pressure and normal velocity are matched across a fluid-fluid interface. A fixed_rigid boundary says that normal motion is suppressed. A pressure_release boundary says that total pressure vanishes at the surface. Those alternatives often produce qualitatively different spectra, so boundary choice should be tied to the actual physical interpretation of the target.

Extracting model results

Model results can be extracted either visually or directly through extract().

Plotting results

Pre-rendered FCMS example plots showing the finite-cylinder geometry and its stored target-strength spectrum.Pre-rendered FCMS example plots showing the finite-cylinder geometry and its stored target-strength spectrum.

Accessing results

fcms_results <- extract(cylinder_object, "model")$FCMS
head(fcms_results)
##   frequency                        f_bs     sigma_bs        TS
## 1     38000 -0.0003505136+4.936752e-06i 0.0003505484 -69.10504
## 2     46000 -0.0004333017+9.047585e-06i 0.0004333961 -67.26230
## 3     54000 -0.0004806581+1.410163e-05i 0.0004808649 -66.35954
## 4     62000 -0.0004799232+1.916460e-05i 0.0004803057 -66.36965
## 5     70000 -0.0004244122+2.286433e-05i 0.0004250276 -67.43166
## 6     78000 -0.0003144932+2.364618e-05i 0.0003153809 -70.02329

At this stage, it is worth checking more than whether the model ran. Readers should confirm that the returned frequencies match the requested grid, that the target-strength values vary over a plausible range for the assumed cylinder, and that the results are being interpreted in the intended domain. FCMS output is often discussed in TS, but the underlying backscattering physics lives in the linear amplitude and cross-section quantities from which TS is derived.

Comparison workflows

Boundary conditions

Pre-rendered FCMS comparison between liquid-filled and fixed-rigid finite cylinders over the same frequency sweep.

This comparison is useful because it isolates one of the most consequential FCMS decisions. Holding the geometry fixed and changing the boundary condition shows how much of the response is being driven by the circular shape itself and how much is being driven by the assumed interface physics. If two boundary choices produce materially different spectra, then the physical interpretation of the target interior is a first-order modeling decision rather than a minor sensitivity check.

For practical FCMS work, the first additional controls to revisit are usually:

  1. the boundary choice, because it changes the modal coefficient equations themselves,
  2. the orientation angle theta_body, because it changes both transverse scattering strength and axial coherence, and
  3. the modal truncation limit m_limit, because larger acoustic size requires more retained cylindrical orders for stable convergence.

Those checks are especially important when comparing FCMS with other models. A fair comparison should keep the cylinder geometry, orientation convention, medium properties, and reporting domain consistent before any disagreement is interpreted as a model effect.

Benchmark comparisons

FCMS can be compared directly against the Jech cylindrical benchmark family stored in benchmark_ts.

Boundary Max abs. \Delta TS (dB) Mean abs. \Delta TS (dB)
fixed_rigid 0.19454 0.00914
pressure_release 0.00780 0.00263
gas_filled 0.00499 0.00245
liquid_filled 0.11453 0.00512

The pressure-release and gas-filled cases remain very close to the benchmark family across the full frequency grid. The larger residuals are confined to the fixed-rigid and liquid-filled branches, where the finite-cylinder benchmark curves show somewhat deeper minima than the present implementation at a small number of frequencies.

Cross-software implementation checks

The same four boundary definitions were also compared with the echoSMs finite-cylinder implementation (Macaulay and contributors 2024). This tests agreement on the same problem independently of the rounded benchmark values.

Boundary Mean abs. \Delta acousticTS vs echoSMs (dB) Max abs. \Delta acousticTS vs echoSMs (dB) Mean abs. \Delta echoSMs vs benchmark (dB) Max abs. \Delta echoSMs vs benchmark (dB)
fixed_rigid 7.14e-09 1.64e-07 0.00914 0.19454
pressure_release 6.97e-09 1.59e-07 0.00263 0.00780
gas_filled 6.96e-09 1.59e-07 0.00245 0.00499
liquid_filled 4.36e-09 2.62e-07 0.00512 0.11453

The key point is that acousticTS and echoSMs collapse onto the same FCMS spectra to practical machine precision across all four boundary types. That means the larger fixed-rigid and liquid-filled benchmark residuals reported above are shared against the benchmark curve rather than being a disagreement between the two software implementations.

The main additional numerical switch in FCMS is m_limit, so the natural follow-up check is the same one used for SPHMS: hold the liquid-filled benchmark definition fixed and inspect how strongly the benchmark fit depends on a reduced modal cap.

Boundary m_limit Max abs. \Delta TS (dB) Mean abs. \Delta TS (dB)
liquid_filled default rule 0.11453 0.00512
liquid_filled 20 0.12618 0.00547
liquid_filled 10 43.09805 4.29035

That sensitivity check shows why the FCMS page does not need a large PSMS-style configuration matrix. The physically meaningful benchmark branches are the boundary conditions themselves. The extra argument is a modal truncation cap, and the benchmark comparison shows that it can be pushed somewhat, but not recklessly, before the cylindrical modal sum is no longer trustworthy.

References

Macaulay, Gavin, and contributors. 2024. “echoSMs: Making Acoustic Scattering Models Available to Fisheries and Plankton Scientists.” In GitHub Repository. Https://github.com/ices-tools-dev/echoSMs; GitHub.
Stanton, T. K. 1988. “Sound Scattering by Cylinders of Finite Length. I. Fluid Cylinders.” The Journal of the Acoustical Society of America 83 (1): 55–63. https://doi.org/10.1121/1.396184.
Stanton, T. K. 1989. “Sound Scattering by Cylinders of Finite Length. III. Deformed Cylinders.” The Journal of the Acoustical Society of America 86 (2): 691–705. https://doi.org/10.1121/1.398193.