-
Franck Pérignon authoredFranck Pérignon authored
penalisation.rst 1.27 KiB
Penalisation
u(X,t) is the current velocity field, \omega(X,t) is the current vorticity field, u_D the velocity of the obstacle, dt the time step.
Velocity penalisation
:class:`hysop.operator.penalization.Penalization`
Solves:
\frac{\partial u(X, t)}{\partial t} = \chi_O(X)\lambda(u_D - u(X, t))
where \lambda a penalisation coefficient, and \chi the indicator function of the obstacle:
\chi_O(X) = \left\{ \begin{align} 1 & \ if X \in O\\ 0 & \ if X \notin O \end{align}\right. \ \forall X \in \Omega
using implicit Euler method, we get:
u_{k+1}(X) = \frac{u_k(X)}{1 + \chi_O(X)\lambda dt} + \frac{\chi_O(X)\lambda dt}{1 + \chi_O(X)\lambda dt}u_D
After that, vorticity is computing as:
\omega(X,t) = \nabla \times u(X,t)
Vorticity penalisation
:class:`hysop.operator.penalize_vorticity.PenalizeVorticity`
Solves:
\frac{\partial \omega(X, t)}{\partial t} = \nabla \times \left[\chi_O(X)\lambda(u_D - u(X, t))\right]
which leads to
\omega_{k+1}(X) = \omega_k(X) + \nabla \times \left[\frac{- \chi_O(X)\lambda dt}{1 + \chi_O(X)\lambda dt}(u_k(X) - u_D)\right]