Difference between revisions of "OpenFOAM guide/The PISO algorithm in OpenFOAM"
From OpenFOAMWiki
Line 1: | Line 1: | ||
+ | == The PISO algorithm == | ||
+ | |||
+ | The PISO (Pressure Implicit with Splitting of Operators) is an efficient method to solve the Navier-Stokes equations in unsteady problems. The main differences from the [The SIMPLE algorithm in OpenFOAM | SIMPLE] algorithm are the following: | ||
+ | |||
+ | * No under-relaxation is applied. | ||
+ | * The momentum corrector step is performed more than once. | ||
+ | |||
== Implementation of the PISO algorithm in OpenFOAM == | == Implementation of the PISO algorithm in OpenFOAM == | ||
Revision as of 23:02, 12 March 2007
1 The PISO algorithm
The PISO (Pressure Implicit with Splitting of Operators) is an efficient method to solve the Navier-Stokes equations in unsteady problems. The main differences from the [The SIMPLE algorithm in OpenFOAM | SIMPLE] algorithm are the following:
- No under-relaxation is applied.
- The momentum corrector step is performed more than once.
2 Implementation of the PISO algorithm in OpenFOAM
The PISO algorithm is implemented in OpenFOAM as follows (Details can be found in the icoFoam standard solver provided with OpenFOAM):
- Define the equation for U
fvVectorMatrix UEqn ( fvm::ddt(U) + fvm::div(phi, U) - fvm::laplacian(nu, U) );
- Solve the momentum predictor
solve (UEqn == -fvc::grad(p));
- Calculate the coefficient and calculate U
volScalarField AU = UEqn().A(); U = UEqn().H()/AU;
- Calculate the flux
phi = (fvc::interpolate(U) & mesh.Sf()) + fvc::ddtPhiCorr(1/AU, U, phi); adjustPhi(phi, U, p);
- Define and solve the pressure equation and repeat for the prescribed number of non-orthogonal corrector steps
fvScalarMatrix pEqn ( fvm::laplacian(1.0/AU, p) == fvc::div(phi) ); pEqn.setReference(pRefCell, pRefValue); pEqn.solve();
- Correct the flux
phi -= pEqn.flux();
- Calculate continuity errors
# include "continuityErrs.H"
- Perform the momentum corrector step
U -= fvc::grad(p)/AU; U.correctBoundaryConditions();
- Repeat from the calculation of for the prescribed number of PISO corrector steps.
3 References
J. H. Ferziger, M. Peric, Computational Methods for Fluid Dynamics, Springer, 3rd Ed., 2001.
H. Jasak, Error Analysis and Estimation for the Finite Volume Method with Applications to Fluid Flows, Ph.D. Thesis, Imperial College, London, 1996.