[petsc-users] How to solve N-S equation with SIMPLE-like prediction-correction method?

Barry Smith bsmith at petsc.dev
Tue Mar 1 10:16:44 CST 2022


   The PCFIELDSPLIT preconditioner provides a general framework for solving coupled systems by using inner solvers on individual fields. It can be used for some instances of SIMPLE-like algorithms but I do not know if it exactly handles your specific instance. src/snes/tutorials/ex70.c demonstrates its usage on Poiseuille flow problem. Some of the online tutorials and slides also discuss the SIMPLE algorithm and have example usage with PCFIELDSPLIT.

   If you have specific questions with the usage please let us know.

  Barry


> On Mar 1, 2022, at 4:19 AM, Zhang Qingwen <zhangqingwen at live.cn> wrote:
> 
> Hi, all,
> 
> In the field of CFD, the prediction-correction method (e.g., the SIMPLE algorithm) has been widely used to solved the Navier-Stokes equations with finite volume method.
> 
> However, I have no idea about how it can be implemented with PETSc.
> 
> Let me describe a simplified case of creeping flow (e.g., mantle flow), in which the inertia term in the N-S equ. can be neglected and reduced to the so-called Stokes equ.
> This equation only contains a diffusion term and source term of pressure gradient, and there are two coupled equations to solved:
> The equation of momentum conservation
> The equation of mass conservation
> The SIMPLE does not solve these coupled equations simultaneously. Instead, this can be done in a iterative fashion with SEPERATE steps until the solutions of velocity and pressure are accurate enough:
> 
> 1. set initial u*, v*, P*
> 2. solve the momentum equation to get the velocity
> 3. solve the continuity equation to get the pressure correction P'
> 4. correct the velocity and the pressure with P' to get the new u, v, P
> 5. update the solutions: u*=u, v*=v, P*=P
> 6. go to step 2 if the solutions are not accurate enough
> 
> (A document is attached to clearify the governing equation and the SIMPLE algorithm, please check the attachment)
> 
> There is a cavity flow example using TS that demonstrate how to solve N-S equations simultaneously,
> which solve four coupled equations with nonlinear iterations inside SNES and TS, and does not involves separate prediction-correction steps like the SIMPLE algorithm above.
> 
> So, any hints about how can the SIMPLE algorithm be implemented in PETSc?
> Particularly, how can I solve these equations in separate steps, so I can solve the governing equations in a prediction-correction fashion?
> 
> Best,
> Qw
> <SIMPLE-like_algorithm.pdf>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20220301/ee7a240e/attachment.html>


More information about the petsc-users mailing list