4 // Thermodynamic density needs to be updated by psi*d(p) after the
5 // pressure solution - done in 2 parts. Part 1:
8 volScalarField rUA = 1.0/UEqn.A();
11 if (pimple.transonic())
13 surfaceScalarField phiv =
14 (fvc::interpolate(U) & mesh.Sf())
15 + fvc::ddtPhiCorr(rUA, rho, U, phi);
17 phi = fvc::interpolate(rho)*phiv;
19 surfaceScalarField phid
22 fvc::interpolate(thermo.psi())*phiv
25 while (pimple.correctNonOrthogonal())
29 fvc::ddt(rho) + fvc::div(phi)
30 + correction(fvm::ddt(psi, p) + fvm::div(phid, p))
31 - fvm::laplacian(rho*rUA, p)
36 mesh.solutionDict().solver(p.select(pimple.finalInnerIter()))
39 if (pimple.finalNonOrthogonalIter())
50 (fvc::interpolate(U) & mesh.Sf())
51 + fvc::ddtPhiCorr(rUA, rho, U, phi)
54 while (pimple.correctNonOrthogonal())
58 fvc::ddt(rho) + psi*correction(fvm::ddt(p))
60 - fvm::laplacian(rho*rUA, p)
65 mesh.solutionDict().solver(p.select(pimple.finalInnerIter()))
68 if (pimple.finalNonOrthogonalIter())
75 // Second part of thermodynamic density update
76 thermo.rho() += psi*p;
79 #include "compressibleContinuityErrs.H"
81 U -= rUA*fvc::grad(p);
82 U.correctBoundaryConditions();
84 DpDt = fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);