2 volScalarField rAU("rAU", 1.0/UEqn().A());
3 surfaceScalarField rAUf("(1|A(U))", fvc::interpolate(rAU));
8 phi = fvc::interpolate(U) & mesh.Sf();
9 adjustPhi(phi, U, p_rgh);
11 surfaceScalarField buoyancyPhi(rAUf*ghf*fvc::snGrad(rhok)*mesh.magSf());
14 for (int nonOrth=0; nonOrth<=simple.nNonOrthCorr(); nonOrth++)
16 fvScalarMatrix p_rghEqn
18 fvm::laplacian(rAUf, p_rgh) == fvc::div(phi)
21 p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell));
25 if (nonOrth == simple.nNonOrthCorr())
27 // Calculate the conservative fluxes
28 phi -= p_rghEqn.flux();
30 // Explicitly relax pressure for momentum corrector
33 // Correct the momentum source with the pressure gradient flux
34 // calculated from the relaxed pressure
35 U -= rAU*fvc::reconstruct((buoyancyPhi + p_rghEqn.flux())/rAUf);
36 U.correctBoundaryConditions();
40 #include "continuityErrs.H"
44 if (p_rgh.needReference())
46 p += dimensionedScalar
50 pRefValue - getRefCellValue(p, pRefCell)