pub struct WaterAbsorption {
pub temperature_c: f64,
pub salinity_ppt: f64,
pub depth_m: f64,
}Expand description
Frequency-dependent absorption model using multiple relaxation mechanisms.
Models absorption in water including classical viscous losses and a magnesium sulfate (MgSO₄) relaxation term.
Reference: Francois & Garrison (1982), simplified.
Fields§
§temperature_c: f64Temperature [°C]
salinity_ppt: f64Salinity [ppt (parts per thousand)]
depth_m: f64Depth [m]
Implementations§
Source§impl WaterAbsorption
impl WaterAbsorption
Sourcepub fn new(temperature_c: f64, salinity_ppt: f64, depth_m: f64) -> Self
pub fn new(temperature_c: f64, salinity_ppt: f64, depth_m: f64) -> Self
Create a new WaterAbsorption model.
Sourcepub fn freshwater() -> Self
pub fn freshwater() -> Self
Freshwater (zero salinity) at 20°C, sea surface.
Sourcepub fn absorption_db_per_km(&self, freq_khz: f64) -> f64
pub fn absorption_db_per_km(&self, freq_khz: f64) -> f64
Absorption coefficient [dB/km] at frequency f [kHz].
Uses the Francois-Garrison formula (simplified).
Trait Implementations§
Source§impl Clone for WaterAbsorption
impl Clone for WaterAbsorption
Source§fn clone(&self) -> WaterAbsorption
fn clone(&self) -> WaterAbsorption
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for WaterAbsorption
impl RefUnwindSafe for WaterAbsorption
impl Send for WaterAbsorption
impl Sync for WaterAbsorption
impl Unpin for WaterAbsorption
impl UnsafeUnpin for WaterAbsorption
impl UnwindSafe for WaterAbsorption
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more