Skip to content
Mikael Mortensen edited this page Nov 13, 2017 · 10 revisions

The fractional step algorithm used by Oasis is basically

while not finished:
    t += dt
    for i in range(max_inner_iters):
        solve tentative velocity
        solve pressure
    update velocity
    solve scalars

This algorithm is implemented generically in NSfracStep. More specifically there are two different implementations of this method that are both second order accurate in time

  • IPCS (Incremental Pressure Correction Scheme)
  • IPCS in rotational form

The IPCS solver is described in

  • Simo, J.C. and Armero, F. "Unconditional Stability and Long-Term Behavior of Transient Algorithms for the Incompressible Navier-Stokes and Euler Equations", Computer Methods in Applied Mechanics and Engineering, 1994, (111), 111-154.

Crank-Nicolson discretization is used in time for the viscous term (the Laplacian). There are two main approaches for convection, one implicit and one explicit. The user chooses which one to use with a parameter solver, that can be set from the command-line. If solver="IPCS_ABCN", then the convected velocity is discretized with Crank-Nicolson, whereas the convecting velocity is computed with an Adams-Bashforth projection. If solver="IPCS_ABE", a fully explicit Adams-Bashforth discretization is used instead. As a third option, if solver="IPCS", then a slow and naive solver is used instead. This solver's implementation is located in file solvers/NSfracStep/IPCS.py and should be very easy to follow. The naive solver is very easy to manipulate and understand and should give exactly the same result as the optimized version. It is intended for validation and experimentation only. The scheme using implicit convection can be represented as

IPCS

where in the first step we solve for a tentative velocity that is corrected in the second projection step.

The IPCS in rotational form uses backwards differencing for the temporal difference and is described in

  • Guermond, J. L., Minev, P. and Shen, J. "An overview of projection methods for incompressible flows", Comput. Methods Appl. Mech. Engrg. 195 (2006) 6011–6045

For IPCS in rotational form the scheme is

IPCS rotational

The fractional step method can be used both non-iteratively or with iterations over the pressure velocity system. More information can be found in these lecture notes.

Clone this wiki locally