rho = thermo.rho(); volScalarField A = UEqn.A(); U = UEqn.H()/A; if (pimple.transonic()) { surfaceScalarField phid ( "phid", fvc::interpolate(psi) *((fvc::interpolate(U) & mesh.Sf()) - fvc::meshPhi(rho, U)) ); while (pimple.correctNonOrthogonal()) { fvScalarMatrix pEqn ( fvm::ddt(psi, p) + fvm::div(phid, p) - fvm::laplacian(rho/A, p) == Sevap ); pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { phi == pEqn.flux(); } } } else { phi = fvc::interpolate(rho) *((fvc::interpolate(U) & mesh.Sf()) - fvc::meshPhi(rho, U)); while (pimple.correctNonOrthogonal()) { fvScalarMatrix pEqn ( fvm::ddt(psi, p) + fvc::div(phi) - fvm::laplacian(rho/A, p) == Sevap ); pEqn.solve(); if (pimple.finalNonOrthogonalIter()) { phi += pEqn.flux(); } } } #include "rhoEqn.H" #include "compressibleContinuityErrs.H" U -= fvc::grad(p)/A; U.correctBoundaryConditions(); DpDt = fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);