Template Function es::marusic_jones_speed

Function Documentation

template <typename T_z, typename T_pi_j>
T_z es::marusic_jones_speed(T_z const &z, T_pi_j const pi_j, const double kappa, const double z_0, const double delta, const double u_inf, const double u_tau)

Compute speed profile according to Marusic and Jones’ relations.

TODO refactor to base it on velocity deficit, keep code DRY

Templated so that it can be called with active scalars (allows use of autodiff), doubles/floats, Eigen::Arrays (directly) or Eigen::VectorXds (via template specialisation) of z values.

Speed is computed as:

\[\begin{split} \frac{\overline{U}}{U_{\tau}} & = & \frac{1}{\kappa} \ln \left( \frac{z+z_0}{k_s} \right) + Br + \frac{\Pi_j}{\kappa} W_c[\eta, \Pi_j] \\ W_c[\eta, \Pi_j] & = & 2 \eta^2 \left( 3 - 2\eta \right) - \frac{1}{3\Pi_j}\eta^3 \\ \eta & = & \frac{z+z_0}{\delta + z_0} \end{split}\]

which reduces to the defecit relation:

\[ U_{D}^{*} = \frac{U_\infty-\overline{U}}{U_{\tau}} = -\frac{1}{\kappa} \ln \left( \eta \right) + \frac{1}{3\kappa} \left(\eta^3 - 1 \right) + 2 \frac{\Pi_j}{\kappa} \left(1 - 3\eta^2 + 2\eta^3 \right) \]

Parameters
  • z: Height(s) in m at which you want to get speed.
  • pi_j: Jones’ modification of the Coles wake factor. Double or AutoDiffScalar type accepted.
  • kappa: von Karman constant
  • z_0: Roughness length - represents distance of hypothetical smooth wall from actual rough wall z0 = 0.25k_s (m)
  • delta: Boundary layer thickness (m)
  • u_inf: Speed of flow at z = delta (m/s)
  • u_tau: Shear / skin friction velocity (governed by ratio parameter S = u_inf / u_tau)