
Elastic cylinder modal series solution
Source:vignettes/ecms/ecms-implementation.Rmd
ecms-implementation.RmdacousticTS implementation
ECMS implements the elastic-cylinder series used in the Faran–Stanton finite-length approximation (Faran 1951; Stanton 1988).
The elastic-cylinder modal-series solution is available through
target_strength(..., model = "ecms"). The preferred
geometry carrier is an elastic-cylinder ESS object, while
the elastic material parameters are supplied through:
density_bodysound_speed_longitudinal_bodysound_speed_transversal_body
The implementation check uses an independent direct transcription of the Faran-Stanton algebra rather than a package-to-package comparison. That is useful for confirming that the package code path reproduces the intended elastic-cylinder algebra on a shared grid, but it is not a substitute for an external benchmark ladder or a separate public software implementation.
ECMS is marked unvalidated because the check is an
independent algebra transcription rather than an external benchmark
ladder or separate public software implementation.
Reference case
The reference cylinder uses:
- length
40 mm - radius
5 mm - body density
2800 kg m^-3 - longitudinal speed
6398 m s^-1 - transverse speed
3122 m s^-1 - surrounding water density
1026.8 kg m^-3 - surrounding water sound speed
1477.3 m s^-1 - broadside incidence
-
12-200 kHzin2 kHzsteps
In acousticTS, the call is:
library(acousticTS)
elastic_cylinder <- fls_generate(
shape = cylinder(
length_body = 0.04,
radius_body = 0.005,
n_segments = 201
),
density_body = 2800,
sound_speed_body = 1500,
theta_body = pi / 2
)
elastic_cylinder <- target_strength(
elastic_cylinder,
frequency = seq(12e3, 200e3, by = 2e3),
model = "ecms",
density_sw = 1026.8,
sound_speed_sw = 1477.3,
sound_speed_longitudinal_body = 6398,
sound_speed_transversal_body = 3122
)
head(extract(elastic_cylinder, "model")$ECMS)## frequency ka f_bs sigma_bs TS
## 1 12000 0.2551893 -0.001166938+1.400062e-05i 1.361941e-06 -58.65842
## 2 14000 0.2977208 -0.001556457+2.480975e-05i 2.423172e-06 -56.15616
## 3 16000 0.3402524 -0.001985893+4.061151e-05i 3.945421e-06 -54.03907
## 4 18000 0.3827839 -0.002447214+6.270084e-05i 5.992788e-06 -52.22371
## 5 20000 0.4253155 -0.002931593+9.261615e-05i 8.602815e-06 -50.65359
## 6 22000 0.4678470 -0.003429548+1.322009e-04i 1.177928e-05 -49.28881
Implementation check
| Diagnostic | Value |
|---|---|
| Max abs. \Delta TS (dB) | 0 |
| Mean abs. \Delta TS (dB) | 0 |
| Frequency at max \Delta (kHz) | 12 |
This is not presented as a benchmark. It is an implementation
identity check: the package output and the independent algebra
transcription coincide on the shared grid, so the ECMS code
path is reproducing the stated elastic-cylinder series rather than
drifting numerically from it.
