Loading...
Searching...
No Matches
pEqn.H
Go to the documentation of this file.
1{
2 volScalarField rAU(1.0/UEqn.A());
3 surfaceScalarField rAUf("rAUf", faceMask*fvc::interpolate(rAU));
4
5 volVectorField HbyA("HbyA", U);
6 HbyA = constrainHbyA(cellMask*rAU*UEqn.H(), U, p);
7
8 tUEqn.clear();
9
10 surfaceScalarField phiHbyA("phiHbyA", fvc::flux(HbyA));
11
13
15 {
16 oversetAdjustPhi(phiHbyA, U);
17 }
18
19 // Non-orthogonal pressure corrector loop
20 while (simple.correctNonOrthogonal())
21 {
22 fvScalarMatrix pEqn
23 (
24 fvm::laplacian(rAUf, p) == fvc::div(phiHbyA)
25 );
26
27 pEqn.setReference(pRefCell, pRefValue);
28
29 pEqn.solve();
30
31 if (simple.finalNonOrthogonalIter())
32 {
33 phi = phiHbyA - pEqn.flux();
34 }
35 }
36
37 #include "continuityErrs.H"
38
39 // Explicitly relax pressure for momentum corrector
40 p.relax();
41
42 // Momentum corrector
43 volVectorField gradP(fvc::grad(p));
44 //mesh.interpolate(gradP);
45
46 U = HbyA - rAU*cellMask*gradP;
47 U.correctBoundaryConditions();
48 fvOptions.correct(U);
49}
Calculates and prints the continuity errors.
fv::options & fvOptions
const scalar pRefValue
const label pRefCell
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
volVectorField gradP(fvc::grad(p))
surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU))
adjustPhi(phiHbyA, U, p_rgh)
tmp< volScalarField > rAU
GeometricField< vector, fvPatchField, volMesh > volVectorField
GeometricField< scalar, fvPatchField, volMesh > volScalarField
const dictionary & simple
faceMask
Definition setCellMask.H:43