Vulcan
Aerospace Engineering Utilities Built on Janus
Loading...
Searching...
No Matches
vulcan::wind_shear Namespace Reference

Namespaces

namespace  roughness
namespace  exponent

Functions

template<typename Scalar>
Scalar linear (const Scalar &altitude, double base_wind, double base_altitude, double shear_rate)
 Linear wind shear profile.
template<typename Scalar>
wind::WindVector< Scalar > linear_vector (const Scalar &altitude, const wind::WindVector< double > &base_wind, double base_altitude, double shear_rate)
 Linear wind shear returning full wind vector.
template<typename Scalar>
Scalar power_law (const Scalar &altitude, double ref_wind, double ref_altitude=10.0, double exponent=1.0/7.0)
 Power-law wind profile (typical for atmospheric boundary layer).
template<typename Scalar>
wind::WindVector< Scalar > power_law_vector (const Scalar &altitude, const wind::WindVector< double > &base_wind, double ref_altitude=10.0, double exponent=1.0/7.0)
 Power-law wind profile returning full wind vector.
template<typename Scalar>
Scalar logarithmic (const Scalar &altitude, double friction_velocity, double roughness_length, double displacement=0.0)
 Logarithmic wind profile (neutral atmospheric boundary layer).
double friction_velocity_from_ref (double ref_wind, double ref_altitude, double roughness_length, double displacement=0.0)
 Compute friction velocity from reference wind.

Variables

constexpr double VON_KARMAN_CONSTANT = 0.41
 von Kármán constant for atmospheric boundary layer

Function Documentation

◆ friction_velocity_from_ref()

double vulcan::wind_shear::friction_velocity_from_ref ( double ref_wind,
double ref_altitude,
double roughness_length,
double displacement = 0.0 )
inline

Compute friction velocity from reference wind.

Given wind speed at a reference height, compute the friction velocity for use in logarithmic profile calculations.

u* = κ * V_ref / ln((h_ref - d) / z_0)

Parameters
ref_windWind speed at reference height [m/s]
ref_altitudeReference height [m]
roughness_lengthSurface roughness z_0 [m]
displacementZero-plane displacement d [m]
Returns
Friction velocity u* [m/s]

◆ linear()

template<typename Scalar>
Scalar vulcan::wind_shear::linear ( const Scalar & altitude,
double base_wind,
double base_altitude,
double shear_rate )

Linear wind shear profile.

Wind = W_0 + (dW/dh) * (h - h_0)

Template Parameters
Scalardouble or casadi::MX
Parameters
altitudeAltitude [m]
base_windWind at reference altitude [m/s]
base_altitudeReference altitude [m]
shear_rateWind change per unit altitude [1/s], i.e., dV/dh
Returns
Wind speed at given altitude [m/s]

◆ linear_vector()

template<typename Scalar>
wind::WindVector< Scalar > vulcan::wind_shear::linear_vector ( const Scalar & altitude,
const wind::WindVector< double > & base_wind,
double base_altitude,
double shear_rate )

Linear wind shear returning full wind vector.

Scales the base wind vector by the altitude-dependent factor. Wind direction is preserved while magnitude changes linearly.

Template Parameters
Scalardouble or casadi::MX
Parameters
altitudeAltitude [m]
base_windWind vector at reference altitude
base_altitudeReference altitude [m]
shear_rateWind change per unit altitude [1/s]
Returns
WindVector scaled by altitude factor

◆ logarithmic()

template<typename Scalar>
Scalar vulcan::wind_shear::logarithmic ( const Scalar & altitude,
double friction_velocity,
double roughness_length,
double displacement = 0.0 )

Logarithmic wind profile (neutral atmospheric boundary layer).

V(h) = (u* / κ) * ln((h - d) / z_0)

Where:

  • u* = friction velocity [m/s]
  • κ = von Kármán constant (≈ 0.41)
  • d = zero-plane displacement [m] (for vegetation/urban areas)
  • z_0 = roughness length [m]
Template Parameters
Scalardouble or casadi::MX
Parameters
altitudeAltitude above ground [m]
friction_velocitySurface friction velocity u* [m/s]
roughness_lengthSurface roughness z_0 [m]
displacementZero-plane displacement d [m] (default: 0)
Returns
Wind speed at altitude [m/s]

◆ power_law()

template<typename Scalar>
Scalar vulcan::wind_shear::power_law ( const Scalar & altitude,
double ref_wind,
double ref_altitude = 10.0,
double exponent = 1.0 / 7.0 )

Power-law wind profile (typical for atmospheric boundary layer).

V(h) = V_ref * (h / h_ref)^alpha

Common exponents:

  • α = 1/7 (0.143) - unstable/daytime conditions
  • α = 1/4 (0.25) - neutral conditions
  • α = 1/3 (0.33) - stable/nighttime conditions
Template Parameters
Scalardouble or casadi::MX
Parameters
altitudeAltitude above ground [m]
ref_windWind speed at reference height [m/s]
ref_altitudeReference height [m] (typically 10m)
exponentPower law exponent α (default: 1/7 for unstable)
Returns
Wind speed at altitude [m/s]

◆ power_law_vector()

template<typename Scalar>
wind::WindVector< Scalar > vulcan::wind_shear::power_law_vector ( const Scalar & altitude,
const wind::WindVector< double > & base_wind,
double ref_altitude = 10.0,
double exponent = 1.0 / 7.0 )

Power-law wind profile returning full wind vector.

Template Parameters
Scalardouble or casadi::MX
Parameters
altitudeAltitude above ground [m]
base_windWind vector at reference height
ref_altitudeReference height [m] (typically 10m)
exponentPower law exponent α
Returns
WindVector scaled by power law

Variable Documentation

◆ VON_KARMAN_CONSTANT

double vulcan::wind_shear::VON_KARMAN_CONSTANT = 0.41
inlineconstexpr

von Kármán constant for atmospheric boundary layer