Original RC interplation
No time dependency, No relaxation of the velocity field:
// Rhie-Chow interplation
phi = (U_avg_f & mesh.Sf())
- ( (DUf*( gradp_f - gradp_avg_f)) & mesh.Sf() );
Time dependency, relaxation of the velocity field:
// Rhie-Chow interplation
phi = (U_avg_f & mesh.Sf())
- ( (DUf*( gradp_f - gradp_avg_f)) & mesh.Sf() )
+ (scalar(1) - URFU)*(phi.prevIter() - (U_avg_prevIter_f & mesh.Sf()))
+ DTf*( phi_old - (U_old_f& mesh.Sf()));
OpenFOAM
No time dependency, with or without relaxation of the velocity field (check simpleFoam solver):
surfaceScalarField phiHbyA("phiHbyA", fvc::interpolate(HbyA) & mesh.Sf());
Questions: Where is the second term of the original RC? Where is the third term of the original RC if taking the relaxation of the velocity field into consideration?
Time dependency, relaxation of the velocity field (check pisoFoam solver):
surfaceScalarField phiHbyA
(
"phiHbyA",
(fvc::interpolate(HbyA) & mesh.Sf())
+ fvc::ddtPhiCorr(rAU, U, phi)
);
Questions: ddtPhiCorr takes the function of (the third term+the fourth term of the original RC)? I guess NO. Let's recall the definition of ddtPhiCorr:
tmp<fluxFieldType> ddtPhiCorr
(
new fluxFieldType
(
ddtIOobject,
rDeltaT
* this->fvcDdtPhiCoeff(U.oldTime(), phiAbs.oldTime())
* (
fvc::interpolate(rA*rho.oldTime())*phiAbs.oldTime()
- (
fvc::interpolate(rA*rho.oldTime()*U.oldTime())
& mesh().Sf()
)
)
)
);
Look like ddtPhiCorr returns the following codes:
fvcDdtPhiCoeff*DTf*( phi_old - (U_old_f& mesh.Sf()));
Last question: How to take the effect of relaxation of the velocity field into ddtPhiCorr?
谢谢