2if (!pimple.SIMPLErho())
9const volScalarField psip0(psi*p);
11volScalarField rAU(1.0 / UEqn.A());
12surfaceScalarField rhorAUf(
"rhorAUf", fvc::interpolate(rho*rAU));
13volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
15if (pimple.nCorrPISO() <= 1)
20surfaceScalarField phiHbyA
23 fvc::interpolate(rho)*fvc::flux(HbyA)
24 + MRF.zeroFilter(rhorAUf * fvc::ddtCorr(rho, U, phi, rhoUf))
27fvc::makeRelative(phiHbyA, rho, U);
28MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
31constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF);
33if (pimple.transonic())
35 surfaceScalarField phid
38 (fvc::interpolate(psi) / fvc::interpolate(rho))*phiHbyA
40 phiHbyA -= fvc::interpolate(psi * p) * phiHbyA / fvc::interpolate(rho);
41 fvScalarMatrix pDDtEqn
44 + psi * correction(fvm::ddt(p))
48 fvOptions(psi, p, rho.name())
51 while (pimple.correctNonOrthogonal())
56 - fvm::laplacian(rhorAUf, p)
60 pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
62 if (pimple.finalNonOrthogonalIter())
64 phi = phiHbyA + pEqn.flux();
70 fvScalarMatrix pDDtEqn
72 fvc::ddt(rho) + psi * correction(fvm::ddt(p))
75 fvOptions(psi, p, rho.name())
78 while (pimple.correctNonOrthogonal())
80 fvScalarMatrix pEqn(pDDtEqn - fvm::laplacian(rhorAUf, p));
81 pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
83 if (pimple.finalNonOrthogonalIter())
85 phi = phiHbyA + pEqn.flux();
94U = HbyA - rAU * fvc::grad(p);
95U.correctBoundaryConditions();
99if (pressureControl.limit(p))
101 p.correctBoundaryConditions();
104thermo.correctRho(psi * p - psip0, rhoMin, rhoMax) ;
107#include "compressibleContinuityErrs.H"
112fvc::correctRhoUf(rhoUf, rho, U, phi);
120 dpdt -= fvc::div(fvc::meshPhi(rho, U), p);