Go to the documentation of this file.00001 {
00002 volScalarField rAU = 1.0/UEqn.A();
00003 surfaceScalarField rAUf = fvc::interpolate(rAU);
00004
00005 U = rAU*UEqn.H();
00006 surfaceScalarField phiU
00007 (
00008 "phiU",
00009 (fvc::interpolate(U) & mesh.Sf())
00010 + fvc::ddtPhiCorr(rAU, rho, U, phi)
00011 );
00012
00013 adjustPhi(phiU, U, p_rgh);
00014
00015 phi = phiU +
00016 (
00017 fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1)
00018 - ghf*fvc::snGrad(rho)
00019 )*rAUf*mesh.magSf();
00020
00021 for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
00022 {
00023 fvScalarMatrix p_rghEqn
00024 (
00025 fvm::laplacian(rAUf, p_rgh) == fvc::div(phi)
00026 );
00027
00028 p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell));
00029
00030 p_rghEqn.solve
00031 (
00032 mesh.solver
00033 (
00034 p_rgh.select(corr == nCorr-1 && nonOrth == nNonOrthCorr)
00035 )
00036 );
00037
00038 if (nonOrth == nNonOrthCorr)
00039 {
00040 phi -= p_rghEqn.flux();
00041 }
00042 }
00043
00044 U += rAU*fvc::reconstruct((phi - phiU)/rAUf);
00045 U.correctBoundaryConditions();
00046
00047 #include <finiteVolume/continuityErrs.H>
00048
00049 p == p_rgh + rho*gh;
00050
00051 if (p_rgh.needReference())
00052 {
00053 p += dimensionedScalar
00054 (
00055 "p",
00056 p.dimensions(),
00057 pRefValue - getRefCellValue(p, pRefCell)
00058 );
00059 p_rgh = p - rho*gh;
00060 }
00061 }
00062
00063