vivyd.models.HartlenCurrieModel#

class HartlenCurrieModel(*, diam=0.18, St=0.18, c_m=0.05, k_m=39.47841760435743, m_lin=25.0, rho=1.25, u_inf=1.0, gamma=0.667, alpha=0.02, b_star=0.4)[source]#

Bases: VIVModel

Hartlen & Currie (1970) wake-oscillator model for vortex-induced vibrations on circular cylinders [HC70]. By identifying the lift, the mechanical equation of motion of the cylinder is written as

\[\ddot{y} + \frac{c}{m} \dot{y} + \frac{k}{m} y = \frac{\rho D^3}{8 \pi^2 \text{St}^2 m_\text{lin}} \omega_s^2 q,\]

and the equation of the wake is written as

\[\ddot{q} + \left(\frac{\gamma}{\omega_s} \dot{q}^2 - \alpha \omega_s \right) \dot{q} + \omega_s^2 q = b^* \frac{\omega_s}{D} \dot{y},\]

with

\[\omega_s = 2 \pi \text{St} \frac{U_\infty}{D}.\]
Parameters:
  • diam (float, optional) – Diameter of the cylinder, \(D\). Default is 0.18 m.

  • St (float, optional) – Strouhal number, \(\text{St}\). Default is 0.18.

  • c_m (float, optional) – Specific mechanical damping, \(c/m\). Default is 0.05.

  • k_m (float, optional) – Specific mechanical stiffness, \(k/m\). Default is \(4 \pi^2\).

  • m_lin (float, optional) – Mass per unit length of the cylinder, \(m_\text{lin}\). Default is 25.0 kg/m.

  • rho (float, optional) – Density of the fluid, \(\rho\). Default is 1.25 kg/m³.

  • u_inf (float, optional) – Free-stream velocity, \(U_\infty\). Default is 1.0 m/s.

  • gamma (float, optional) – Quadratic wake damping coefficient, \(\gamma\). Default is 0.667.

  • alpha (float, optional) – Constant wake damping coefficient, \(\alpha\). Default is 0.02.

  • b_star (float, optional) – Wake-coupling coefficient, \(b^* = b \dfrac{\omega_0}{\omega_s}\), where \(b\) is the wake-coupling coefficient as defined by Hartlen & Currie (1970) and \(\omega_0\) is the natural frequency of the structure. Default is 0.4.

Attributes#

HartlenCurrieModel.diam: float#

Diameter of the cylinder, \(D\).

HartlenCurrieModel.St: float#

Strouhal number, \(\text{St}\).

HartlenCurrieModel.c_m: float#

Specific mechanical damping, \(c/m\).

HartlenCurrieModel.k_m: float#

Specific mechanical stiffness, \(k/m\).

HartlenCurrieModel.m_lin: float#

Mass per unit length of the cylinder, \(m_\text{lin}\).

HartlenCurrieModel.rho: float#

Density of the fluid, \(\rho\).

HartlenCurrieModel.u_inf: float#

Free-stream velocity, \(U_\infty\).

HartlenCurrieModel.gamma: float#

Quadratic wake damping coefficient, \(\gamma\).

HartlenCurrieModel.alpha: float#

Constant wake damping coefficient, \(\alpha\).

HartlenCurrieModel.b_star: float#

Structure-to-wake coefficient, \(b^* = b \dfrac{\omega_0}{\omega_s}\), where \(b\) is the structure-to-wake coefficient as defined by Hartlen & Currie (1970) and \(\omega_0\) is the natural frequency of the structure.

property HartlenCurrieModel.a: float#

Wake-to-structure coupling coefficient as defined by Hartlen & Currie (1970).

property HartlenCurrieModel.St_star: float#

Angular Strouhal number, \(\text{St}^* = 2 \pi \text{St}\).

property HartlenCurrieModel.ws: float#

Strouhal’s vortex shedding pulsation, \(\omega_s = 2 \pi \text{St} \dfrac{U_\infty}{D}\).

property HartlenCurrieModel.generalized_params: dict[str, float]#

A dictionary containing the parameters of the model in a format compatible with the constructor of GeneralizedModel.

Methods#

HartlenCurrieModel.rhs(t, state, **kwargs)[source]#

Compute the right-hand side of the system of ODEs.

Parameters:
  • t (float) – Time.

  • state (arrf64) – State vector indexed [y_dot, y, q_dot, q].

Returns:

Derivatives of the state vector indexed [dy_dot, dy, dq_dot, dq].

Return type:

arrf64

HartlenCurrieModel.to_generalized()[source]#
Returns:

A generalized model instance equivalent to the present model.

Return type:

GeneralizedModel

HartlenCurrieModel.to_taichi()[source]#
Returns:

A Taichi-compatible generalized model instance equivalent to the present model.

Return type:

GeneralizedModel