Skip to content
Snippets Groups Projects
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]