initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / applications / solvers / incompressible / simpleFoam / pEqn.H
blobdd9cae30a9c3a94d4be9c1bd3d5ab2df2d65f998
1     p.boundaryField().updateCoeffs();
3     volScalarField AU = UEqn().A();
4     U = UEqn().H()/AU;
5     UEqn.clear();
6     phi = fvc::interpolate(U) & mesh.Sf();
7     adjustPhi(phi, U, p);
9     // Non-orthogonal pressure corrector loop
10     for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
11     {
12         fvScalarMatrix pEqn
13         (
14             fvm::laplacian(1.0/AU, p) == fvc::div(phi)
15         );
17         pEqn.setReference(pRefCell, pRefValue);
18         // retain the residual from the first iteration
19         if (nonOrth == 0)
20         {
21             eqnResidual = pEqn.solve().initialResidual();
22             maxResidual = max(eqnResidual, maxResidual);
23         }
24         else
25         {
26             pEqn.solve();
27         }
29         if (nonOrth == nNonOrthCorr)
30         {
31             phi -= pEqn.flux();
32         }
33     }
35 #   include "continuityErrs.H"
37     // Explicitly relax pressure for momentum corrector
38     p.relax();
40     // Momentum corrector
41     U -= fvc::grad(p)/AU;
42     U.correctBoundaryConditions();