pEqn.H
Go to the documentation of this file.
1volScalarField rAU(1.0/UEqn.A());
2surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU));
3volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p_gh));
4
5if (pimple.nCorrPISO() <= 1)
6{
7 tUEqn.clear();
8}
9
10surfaceScalarField phiHbyA
11(
12 "phiHbyA",
13 fvc::flux(HbyA)
14 + MRF.zeroFilter(rAUf*fvc::ddtCorr(U, phi))
15);
16
17MRF.makeRelative(phiHbyA);
19
20// Update the pressure BCs to ensure flux consistency
22
23// Non-orthogonal pressure corrector loop
24while (pimple.correctNonOrthogonal())
25{
26 fvScalarMatrix p_ghEqn
27 (
28 fvm::laplacian(rAUf, p_gh) == fvc::div(phiHbyA)
29 );
30
31 p_ghEqn.setReference(p_ghRefCell, p_ghRefValue);
32
33 p_ghEqn.solve(mesh.solver(p_gh.select(pimple.finalInnerIter())));
34
35 if (pimple.finalNonOrthogonalIter())
36 {
37 phi = phiHbyA - p_ghEqn.flux();
38 }
39}
40
41#include "continuityErrs.H"
42
43// Explicitly relax pressure for momentum corrector
44p_gh.relax();
45
46p = p_gh + (g & mesh.C());
47
48U = HbyA - rAU*fvc::grad(p_gh);
49U.correctBoundaryConditions();
50fvOptions.correct(U);
const uniformDimensionedVectorField & g
fv::options & fvOptions
surfaceScalarField & phi
IOMRFZoneList & MRF
pimpleControl & pimple
U
Definition: pEqn.H:72
volScalarField & p
tmp< fvVectorMatrix > tUEqn(fvm::ddt(rho, U)+fvm::div(phi, U)+MRF.DDt(rho, U)+turbulence->divDevRhoReff(U)==fvOptions(rho, U))
fvVectorMatrix & UEqn
Definition: UEqn.H:13
phiHbyA
Definition: pcEqn.H:73
HbyA
Definition: pcEqn.H:74
dynamicFvMesh & mesh
surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU))
adjustPhi(phiHbyA, U, p_rgh)
tmp< volScalarField > rAU
Definition: initCorrectPhi.H:1