pydune.physics.dune.bedinstability_2D.celerity_bidi#

celerity_bidi(k, alpha, Ax, Ay, Bx, By, r, mu, delta, theta, N)[source]#

Celerity \(\sigma\) of sinusoidal periodic dunes of wavenumber \(k\) and orientation \(\alpha\) induced by a bidirectional wind whose orientation alternates regularly between \(-\theta/2\) and \(+\theta/2\). It is calculated elementwise.

Parameters:
  • k (scalar, numpy array) – non dimensional wavenumber \(k\).

  • alpha (scalar, numpy array) – direction \(alpha\) in degree of the wavevector \(\boldsymbol{k}\). It is also the dune orientation measured with respect to the perpendicular to the wind direction .

  • Ax (function) – hydrodynamic coefficient in the \(x\)-direction \(\mathcal{A}_{x}\) (in-phase). A vectorized function taking k as first argument and alpha as second one.

  • Ay (function) – hydrodynamic coefficient in the \(y\)-direction \(\mathcal{A}_{y}\) (in-phase). A vectorized function taking k as first argument and alpha as second one.

  • Bx (function) – hydrodynamic coefficient in the \(x\)-direction \(\mathcal{B}_{x}\) (in-qudrature). A vectorized function taking k as first argument and alpha as second one.

  • By (function) – hydrodynamic coefficient in the \(y\)-direction \(\mathcal{B}_{y}\) (in-qudrature). A vectorized function taking k as first argument and alpha as second one.

  • r (scalar, numpy array) – velocity ratio \(u_{*}/u_{\rm d} = \sqrt{\theta/\theta_{d}}\). Here, it is the same for both winds.

  • mu (scalar, numpy array) – friction coefficient \(\mu\).

  • delta (scalar, numpy array) – cross-stream diffusion coefficient. Set to 0 if you want to recover the exact results of Andreotti et al. 2012, Gadal et al. 2019. See the PhD thesis “Dune emergence in multidirectional wind regimes” by Cyril Gadal, section 3.5.1, for additonal details.

  • theta (float) – angle between the two wind direction, in degree.

  • N (float) – mass transport ratio between the two wind directions

Returns:

c – celerity

Return type:

scalar, numpy array

Examples

>>> import numpy as np
>>> # Range of parameter exploration
>>> k, alpha = np.linspace(0.001, 1, 300), np.linspace(0, 360, 300)
>>> K, ALPHA = np.meshgrid(k, alpha)
>>> # Defining all parameters
>>> A0, B0 = 3.5, 2
>>> r, mu, delta = 1.5, 0.6, 0
>>> theta, N = 120, 3
>>> # Chosing a form for the hydrodynamic coefficients
>>> Ax = lambda k, alpha: A0*np.cos(2*np.pi*alpha/180)**2
>>> Bx = lambda k, alpha: B0*np.cos(2*np.pi*alpha/180)**2
>>> Ay = lambda k, alpha: 0.5*A0*np.cos(2*np.pi*alpha/180)*np.sin(2*np.pi*alpha/180)
>>> By = lambda k, alpha: 0.5*B0*np.cos(2*np.pi*alpha/180)*np.sin(2*np.pi*alpha/180)
>>> # Calculating growth function
>>> CELERITY = celerity_bidi(k, alpha, Ax, Ay, Bx, By, r, mu, delta, theta, N)

References

[1] Gadal, C., Narteau, C., Du Pont, S. C., Rozier, O., & Claudin, P. (2019). Incipient bedforms in a bidirectional wind regime. Journal of Fluid Mechanics, 862, 490-516.