pEqn.H
Go to the documentation of this file.
1rho = thermo.rho();
2
3volScalarField rAU(1.0/UEqn.A());
4surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
5volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
6
7if (pimple.transonic())
8{
9 surfaceScalarField phid
10 (
11 "phid",
12 fvc::interpolate(psi)
13 *(
14 (fvc::interpolate(HbyA) & mesh.Sf())
15 + rhorAUf*fvc::ddtCorr(rho, U, phi)/fvc::interpolate(rho)
16 )
17 );
18
19 fvc::makeRelative(phid, psi, U);
20 MRF.makeRelative(fvc::interpolate(psi), phid);
21
22 while (pimple.correctNonOrthogonal())
23 {
24 fvScalarMatrix pEqn
25 (
26 fvm::ddt(psi, p)
27 + fvm::div(phid, p)
28 - fvm::laplacian(rhorAUf, p)
29 ==
30 fvOptions(psi, p, rho.name())
31 );
32
33 pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
34
35 if (pimple.finalNonOrthogonalIter())
36 {
37 phi == pEqn.flux();
38 }
39 }
40}
41else
42{
43 surfaceScalarField phiHbyA
44 (
45 "phiHbyA",
46 (
47 (fvc::interpolate(rho*HbyA) & mesh.Sf())
48 + rhorAUf*fvc::ddtCorr(rho, U, rhoUf)
49 )
50 );
51
52 fvc::makeRelative(phiHbyA, rho, U);
53 MRF.makeRelative(phiHbyA);
54
55 // Update the pressure BCs to ensure flux consistency
57
58 while (pimple.correctNonOrthogonal())
59 {
60 fvScalarMatrix pEqn
61 (
62 fvm::ddt(psi, p)
63 + fvc::div(phiHbyA)
64 - fvm::laplacian(rhorAUf, p)
65 ==
66 fvOptions(psi, p, rho.name())
67 );
68
69 pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
70
71 if (pimple.finalNonOrthogonalIter())
72 {
73 phi = phiHbyA + pEqn.flux();
74 }
75 }
76}
77
78#include "rhoEqn.H"
79#include "compressibleContinuityErrs.H"
80
81U = HbyA - rAU*fvc::grad(p);
82U.correctBoundaryConditions();
83fvOptions.correct(U);
84K = 0.5*magSqr(U);
85
86{
87 rhoUf = fvc::interpolate(rho*U);
88 surfaceVectorField n(mesh.Sf()/mesh.magSf());
89 rhoUf += n*(fvc::absolute(phi, rho, U)/mesh.magSf() - (n & rhoUf));
90}
91
92if (thermo.dpdt())
93{
94 dpdt = fvc::ddt(p);
95
96 if (mesh.moving())
97 {
98 dpdt -= fvc::div(fvc::meshPhi(rho, U), p);
99 }
100}
CGAL::Exact_predicates_exact_constructions_kernel K
label n
fv::options & fvOptions
surfaceScalarField & phi
IOMRFZoneList & MRF
pimpleControl & pimple
Basic thermodynamics type based on the use of fitting functions for cp, h, s obtained from the templa...
U
Definition: pEqn.H:72
rhoUf
Definition: pEqn.H:89
volScalarField & p
const volScalarField & psi
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho *rAU))
fvVectorMatrix & UEqn
Definition: UEqn.H:13
phiHbyA
Definition: pcEqn.H:73
HbyA
Definition: pcEqn.H:74
surfaceScalarField phid("phid", fvc::interpolate(psi) *(fvc::flux(HbyA)+MRF.zeroFilter(rhorAUf *fvc::ddtCorr(rho, U, phi)/fvc::interpolate(rho))))
dynamicFvMesh & mesh
volScalarField & dpdt
tmp< volScalarField > rAU
Definition: initCorrectPhi.H:1