cbcflow.schemes.official.ipcs module¶
This scheme follows the same logic as in IPCS_Naive
, but with a few notable exceptions.
A parameter \(\theta\) is added to the diffusion and convection terms, allowing for different evaluation of these, and the convection is handled semi-implicitly:
\[\frac{1}{\Delta t}\left( \tilde{u}^{n+1}-u^{n} \right)-
\nabla\cdot\nu\nabla \tilde{u}^{n+\theta}+
u^*\cdot\nabla \tilde{u}^{n+\theta}+\nabla p^{n}=f^{n+1},\]
where
\[\begin{split}u^* = \frac{3}{2}u^n - \frac{1}{2}u^{n-1}, \\
\tilde{u}^{n+\theta} = \theta \tilde{u}^{n+1}+\left(1-\theta\right)u^n.\end{split}\]
This convection term is unconditionally stable, and with \(\theta=0.5\), this equation is second order in time and space [1].
In addition, the solution process is significantly faster by solving for each of the velocity components separately, making for D number of smaller linear systems compared to a large system D times the size.
[1] | Simo, J. C., and F. Armero. Unconditional stability and long-term behavior of transient algorithms for the incompressible Navier-Stokes and Euler equations. Computer Methods in Applied Mechanics and Engineering 111.1 (1994): 111-154. |
Classes¶
-
class
cbcflow.schemes.official.ipcs.
IPCS
(params=None)¶ Bases:
cbcflow.core.nsscheme.NSScheme
Incremental pressure-correction scheme, fast and stable version.
-
classmethod
default_params
()¶
-
solve
(problem, timer)¶
-
classmethod