bieshuxuhe |
April 16, 2014 04:30 |
talk about the most suitable way to discretize diffusion term in UEqn
hi,
I often see two kinds of UEqn in "Foam of multiphase flow"(e.g. interFoam ,MRFInterFoam ......) ! :) these are :
the first is
Code:
surfaceScalarField muEff
(
"muEff",
mixture.muf()
+ fvc::interpolate(rho*turbulence->nut())
);
fvVectorMatrix UEqn
(
fvm::ddt(rho, U)
+ fvm::div(mixture.rhoPhi(), U)
- fvm::laplacian(muEff, U)
- (fvc::grad(U) & fvc::grad(muEff))
//- fvc::div(muEff*(fvc::interpolate(dev(fvc::grad(U))) & mesh.Sf()))
);
this kind of UEqn often used for porous or MRF ...
the second is
Code:
fvVectorMatrix UEqn
(
fvm::ddt(rho, U)
+ fvm::div(rhoPhi, U)
+ turbulence->divDevRhoReff(rho, U)
);
to make divDevRhoReff() more clear ,look down (for kEpsilon ):
00195 tmp<fvVectorMatrix> kEpsilon::divDevRhoReff
00196 (
00197 const volScalarField& rho,
00198 volVectorField& U
00199 ) const
00200 {
00201 volScalarField muEff("muEff", rho*nuEff());
00202
00203 return
00204 (
00205 - fvm::laplacian(muEff, U)
00206 - fvc::div(muEff*dev(T(fvc::grad(U))))
00207 );
00208 }
this kind of UEqn often used for interFoam, InterDyMFoam ...
I think the red part in the code is the main difference ! That is the diffution term ! ;) could you talk about how to make a choice between the two kinds of UEqn ?
for example : if we take the first UEqn for InterDyMFoam , will it be unsuitable for some reason ?
|