pub struct DrydenParameters { /* private fields */ }Expand description
Intensities and scale lengths of Dryden turbulence.
Components are u (longitudinal), v (lateral) and w (vertical); see GustField for the
axes they apply along.
Implementations§
Source§impl DrydenParameters
impl DrydenParameters
Sourcepub fn new(
intensity_m_s: DVec3,
scale_length_m: DVec3,
) -> Result<Self, AtmosError>
pub fn new( intensity_m_s: DVec3, scale_length_m: DVec3, ) -> Result<Self, AtmosError>
Turbulence with RMS intensities (σ_u, σ_v, σ_w) in m/s and scale lengths
(L_u, L_v, L_w) in m.
§Errors
AtmosError::Domain if an intensity is negative or a scale length is not positive, or
any value is not finite.
Sourcepub fn mil_f_8785c_low_altitude(
height_agl_m: f64,
wind_speed_20_ft_m_s: f64,
) -> Result<Self, AtmosError>
pub fn mil_f_8785c_low_altitude( height_agl_m: f64, wind_speed_20_ft_m_s: f64, ) -> Result<Self, AtmosError>
MIL-F-8785C low-altitude turbulence (§3.7.3.4, Figures 10 and 11) at height_agl_m
above the terrain, for a mean wind of wind_speed_20_ft_m_s at 20 ft (6.096 m). With h
in feet:
L_u = L_v = h / (0.177 + 0.000823 h)^1.2, L_w = h (ft)
σ_w = 0.1 u₂₀, σ_u = σ_v = σ_w / (0.177 + 0.000823 h)^0.4The formulas hold from 10 to 1000 ft. Below 10 ft this uses the 10 ft values; from 1000 to
2000 ft, the specification’s figures’ values at 1000 ft (L = 1000 ft, σ_u = σ_v = σ_w).
The specification applies the low-altitude model only up to about 2000 ft (§3.8.1) and
gives no blend into the medium/high-altitude model
(DrydenParameters::mil_f_8785c_medium_high_altitude), so above 2000 ft this refuses.
§Errors
AtmosError::Domain if the height is not finite or above 2000 ft (609.6 m), or the wind
speed is negative or not finite.
Sourcepub fn mil_f_8785c_medium_high_altitude(
intensity_m_s: f64,
) -> Result<Self, AtmosError>
pub fn mil_f_8785c_medium_high_altitude( intensity_m_s: f64, ) -> Result<Self, AtmosError>
MIL-F-8785C medium/high-altitude turbulence (§3.7.2, above about 2000 ft): isotropic, with
σ_u = σ_v = σ_w = intensity_m_s and L_u = L_v = L_w = 1750 ft (533.4 m).
The specification gives the intensity against altitude and probability of exceedance only as a graph (Figure 7), so the caller supplies it.
§Errors
AtmosError::Domain if the intensity is negative or not finite.
Sourcepub fn intensity_m_s(&self) -> DVec3
pub fn intensity_m_s(&self) -> DVec3
RMS intensities (σ_u, σ_v, σ_w), m/s.
Sourcepub fn scale_length_m(&self) -> DVec3
pub fn scale_length_m(&self) -> DVec3
Scale lengths (L_u, L_v, L_w), m.
Sourcepub fn spectra(&self, omega_rad_m: f64) -> DVec3
pub fn spectra(&self, omega_rad_m: f64) -> DVec3
The one-sided spectra (Φ_u, Φ_v, Φ_w) at spatial frequency omega_rad_m (rad/m), in
(m/s)² per rad/m.
Sourcepub fn autocorrelation(&self, separation_m: f64) -> DVec3
pub fn autocorrelation(&self, separation_m: f64) -> DVec3
The autocorrelations (R_u, R_v, R_w) at path separation separation_m, (m/s)².
Trait Implementations§
Source§impl Clone for DrydenParameters
impl Clone for DrydenParameters
Source§fn clone(&self) -> DrydenParameters
fn clone(&self) -> DrydenParameters
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for DrydenParameters
Source§impl Debug for DrydenParameters
impl Debug for DrydenParameters
Source§impl<'de> Deserialize<'de> for DrydenParameters
impl<'de> Deserialize<'de> for DrydenParameters
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for DrydenParameters
impl PartialEq for DrydenParameters
Source§fn eq(&self, other: &DrydenParameters) -> bool
fn eq(&self, other: &DrydenParameters) -> bool
self and other values to be equal, and is used by ==.