sciforge-core 0.0.4

Shared engineering primitives: materials, fasteners, fluids, propulsion taxonomies, std components.
Documentation
use crate::moleculars::{Gas, Liquid};
use sciforge_hub::prelude::constants::EARTH_GRAVITY;
use sciforge_hub::prelude::physics::fluid_mechanics::waves as sf_waves;

impl Gas {
    pub fn mach_number(&self, velocity_m_s: f64, temperature_k: f64) -> f64 {
        sf_waves::mach_number(velocity_m_s, self.speed_of_sound_m_s(temperature_k))
    }
}

impl Liquid {
    pub fn mach_number(&self, velocity_m_s: f64) -> f64 {
        sf_waves::mach_number(velocity_m_s, self.speed_of_sound_m_s())
    }

    pub fn water_hammer_pressure_pa(&self, delta_velocity_m_s: f64) -> f64 {
        sf_waves::water_hammer_pressure(
            self.density_kg_m3_ref,
            self.speed_of_sound_m_s(),
            delta_velocity_m_s,
        )
    }

    pub fn weber_number(&self, velocity_m_s: f64, length_m: f64) -> f64 {
        sf_waves::weber_number(
            self.density_kg_m3_ref,
            velocity_m_s,
            length_m,
            self.surface_tension_n_m,
        )
    }

    pub fn capillary_number(&self, velocity_m_s: f64) -> f64 {
        sf_waves::capillary_number(
            self.dynamic_viscosity_pa_s_ref,
            velocity_m_s,
            self.surface_tension_n_m,
        )
    }

    pub fn froude_number(&self, velocity_m_s: f64, depth_m: f64) -> f64 {
        sf_waves::froude_number(velocity_m_s, EARTH_GRAVITY, depth_m)
    }

    pub fn shallow_water_speed_m_s(&self, depth_m: f64) -> f64 {
        sf_waves::shallow_water_speed(EARTH_GRAVITY, depth_m)
    }

    pub fn deep_water_speed_m_s(&self, wavelength_m: f64) -> f64 {
        sf_waves::deep_water_speed(EARTH_GRAVITY, wavelength_m)
    }

    pub fn wave_energy_density_j_m2(&self, amplitude_m: f64) -> f64 {
        sf_waves::wave_energy_density(self.density_kg_m3_ref, EARTH_GRAVITY, amplitude_m)
    }
}