Skip to main content

DrydenParameters

Struct DrydenParameters 

Source
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

Source

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.

Source

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.4

The 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.

Source

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.

Source

pub fn intensity_m_s(&self) -> DVec3

RMS intensities (σ_u, σ_v, σ_w), m/s.

Source

pub fn scale_length_m(&self) -> DVec3

Scale lengths (L_u, L_v, L_w), m.

Source

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.

Source

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

Source§

fn clone(&self) -> DrydenParameters

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for DrydenParameters

Source§

impl Debug for DrydenParameters

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for DrydenParameters

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for DrydenParameters

Source§

fn eq(&self, other: &DrydenParameters) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for DrydenParameters

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for DrydenParameters

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.