Go to the documentation of this file.00001 rho = thermo.rho();
00002
00003 volScalarField rUA = 1.0/UEqn.A();
00004 U = rUA*UEqn.H();
00005
00006 if (transonic)
00007 {
00008 surfaceScalarField phid
00009 (
00010 "phid",
00011 fvc::interpolate(psi)
00012 *(
00013 (fvc::interpolate(U) & mesh.Sf())
00014 + fvc::ddtPhiCorr(rUA, rho, U, phi)
00015 )
00016 );
00017
00018 for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
00019 {
00020 fvScalarMatrix pEqn
00021 (
00022 fvm::ddt(psi, p)
00023 + fvm::div(phid, p)
00024 - fvm::laplacian(rho*rUA, p)
00025 );
00026
00027 pEqn.solve();
00028
00029 if (nonOrth == nNonOrthCorr)
00030 {
00031 phi == pEqn.flux();
00032 }
00033 }
00034 }
00035 else
00036 {
00037 phi =
00038 fvc::interpolate(rho)*
00039 (
00040 (fvc::interpolate(U) & mesh.Sf())
00041 + fvc::ddtPhiCorr(rUA, rho, U, phi)
00042 );
00043
00044 for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
00045 {
00046 fvScalarMatrix pEqn
00047 (
00048 fvm::ddt(psi, p)
00049 + fvc::div(phi)
00050 - fvm::laplacian(rho*rUA, p)
00051 );
00052
00053 pEqn.solve();
00054
00055 if (nonOrth == nNonOrthCorr)
00056 {
00057 phi += pEqn.flux();
00058 }
00059 }
00060 }
00061
00062 #include <finiteVolume/rhoEqn.H>
00063 #include <finiteVolume/compressibleContinuityErrs.H>
00064
00065 U -= rUA*fvc::grad(p);
00066 U.correctBoundaryConditions();
00067
00068 DpDt = fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);