|
TRUST 1.9.8
HPC thermohydraulic platform
|
The first projection method was proposed by [4] and [27]. The pressure is not included in the intermediate velocity prediction.
Find intermediate velocity \(U^*\) satisfying:
\[\mathbb{M}\frac{U^* - U^n}{\delta t^n} + \mathbb{A}U^* = F^{n+1} \]
The boundary conditions of \(U^*\) are the same as those of \(U^{n+1}\). Note that \(U^*\) has no reason to be divergence-free.
Find \(P^{n+1}\) from the following system (convection and Laplacian matrices are omitted as the mass matrix is easy to invert):
\[\begin{aligned} \mathbb{M}\frac{U^{n+1} - U^*}{\delta t^n} + \mathbb{B}^T P^{n+1} &= 0 \\ \mathbb{B} U^{n+1} &= 0 \end{aligned} \]
Left-multiplying by \(\mathbb{B}\mathbb{M}^{-1}\) yields a Poisson system on pressure:
\[\delta t^n\,\mathbb{B}\mathbb{M}^{-1}\mathbb{B}^T P^{n+1} = \mathbb{B}U^* \]
\[U^{n+1} = U^* + \delta t^n\,\mathbb{M}^{-1}\mathbb{B}^T P^{n+1} \]
Summing steps 1 and 2, the velocity \(U^*\) appears in the reconstructed system behind the convection and Laplacian — introducing a splitting error [14].
A modification proposed by [13] takes the pressure at the previous time in step 1 and solves for a pressure increment in step 2. Used for semi-implicit or implicit schemes.
\[\mathbb{M}\frac{U^* - U^n}{\delta t^n} + \mathbb{A}U^* + \mathbb{B}^T P^n = F^{n+1} \]
Solve for the pressure increment \(\delta P := P^{n+1} - P^n\):
\[\delta t^n\,\mathbb{B}\mathbb{M}^{-1}\mathbb{B}^T \delta P = \mathbb{B}U^* \]
\[\begin{aligned} U^{n+1} &= U^* + \delta t^n\,\mathbb{M}^{-1}\mathbb{B}^T \delta P \\ P^{n+1} &= P^n + \delta P \end{aligned} \]
Semi-Implicit Method for Pressure Linked Equations [25] [3]. Similar to Chorin with pressure increment, but the mass matrix \(\mathbb{M}/\delta t^n\) in steps 2 and 3 is replaced by the diagonal of the convection-diffusion matrix:
\[\mathbb{D} := \text{diag}\!\left(\mathbb{A} + \frac{\mathbb{M}}{\delta t^n}\right) \]
Pressure correction:
\[\mathbb{B}\mathbb{D}^{-1}\mathbb{B}^T \delta P = \mathbb{B}U^* \]
Update:
\[\begin{aligned} U^{n+1} &= U^* + \mathbb{D}^{-1}\mathbb{B}^T \delta P \\ P^{n+1} &= P^n + \delta P \end{aligned} \]
A relaxation can be applied to the pressure (or velocity) at the update step. Implementation details: Simple.h.
SIMPLE Revised [26] — adds a pre-computed pressure step before the prediction step.
Define \(\mathbb{E} := \mathbb{A} + \mathbb{M}/\delta t^n - \mathbb{D}\). Find intermediate velocity \(U^p\):
\[\mathbb{D}(U^n)\,U^p - \mathbb{E}U^n = F^{n+1} \]
Then solve for the pre-computed pressure:
\[\mathbb{B}\mathbb{D}^{-1}\mathbb{B}^t P^{n+1} = \mathbb{B}U^p \]
Apply the standard SIMPLE algorithm (velocity prediction → pressure correction → update). Implementation details: Simpler.h.
Pressure-Implicit with Splitting of Operators [18] — a two-step projection method extending SIMPLE with a second correction that considers the non-diagonal part of \(\mathbb{A}\).
Velocity prediction:
\[\mathbb{M}\frac{U^* - U^n}{\delta t^n} + \mathbb{A}U^* + \mathbb{B}^T P^n = F^{n+1} \]
First pressure increment:
\[\mathbb{B}\mathbb{D}^{-1}\mathbb{B}^T \delta P^{p1} = \mathbb{B}U^* \]
First update:
\[\begin{aligned} U^{p1} &= U^* + \mathbb{D}^{-1}\mathbb{B}^T \delta P^{p1} \\ P^{p1} &= P^n + \delta P^{p1} \end{aligned} \]
The second correction considers the non-diagonal part \(\mathbb{E}_A\) of the convection-diffusion matrix:
\[\mathbb{B}\mathbb{D}^{-1}\mathbb{B}^t \delta P^{p2} = \mathbb{B}\mathbb{D}^{-1}\mathbb{E}_A U^{p1} \]
Final update:
\[\begin{aligned} U^{n+1} &= \mathbb{E}_A U^{p1} - \mathbb{B}^t \delta P^{p2} \\ P^{n+1} &= P^{p1} + \delta P^{p2} \end{aligned} \]