dyOneEqEddy (and perhaps other
dyOneEqEddy (and perhaps other dynamic models) depends upon a localized ck i.e.
nuSgs = ck(D) * sqrt(k) * delta
I've found that ck(D) can become negative leading to negative nuSgs.
How about bounding nuSgs e.g. in dyOneEqEddy.C after the k solve with somebody like
bound(nuSgs_, dimensionedScalar("zero", nuSgs_.dimensions(), 0.0));
Or upstream in the actual calculation of ck.
Of course, perhaps we're simply trying to reverse the cascade. http://www.cfd-online.com/OpenFOAM_D...part/happy.gif
Hi Michael, Does the dyOneE
Does the dyOneEqEddy model calculate one single global constant, ck, or is it a localized costant. If it is local then in the presence of backsactter ck can be negative ( and nuSgs also negative). One the other hand if the constant is a global one, then the backscatter << forward scatter and the chance of the constant going negative is small.
Hi Kumar, dyOneEqEddy uses
dyOneEqEddy uses a localized ck.
Hmmm backscatter. Good point though I'm seeing far too much of it. I wonder if the ck needs some form of limiting or stabilization.
Thanks, I'll investigate further.
Hi Michael, I was looking
I was looking at the code for calculating ck in dynOneEqEddy.C (i have also pasted it belowhttp://www.cfd-online.com/OpenFOAM_D...part/happy.gif
///////////////////////////////// Begin Code///////////////////////////////////////////////////////////
dimensionedScalar dynOneEqEddy::ck(const volSymmTensorField& D) const
volScalarField KK = 0.5*(filter_(magSqr(U())) - magSqr(filter_(U())));
volSymmTensorField LL = dev(filter_(sqr(U())) - sqr(filter_(U())));
volSymmTensorField MM =
delta()*(filter_(sqrt(k_)*D) - 2*sqrt(KK + filter_(k_))*filter_(D));
dimensionedScalar MMMM = average(magSqr(MM));
if (MMMM.value() > VSMALL)
return average(LL && MM)/MMMM;
//////////////////////////////// End Code ///////////////////////////////////////////////////////////////
ck is average(LL && MM)/MMMM
and MMMM = average(magSqr(MM)); // Is this not a single number for the whole domain ?
average(LL && MM) // This also appears to be a single number for the whole domain ?
Thus ck is just one number for the whole domain. or am i wrong here ??
Any ideas as to how locDynOneEqEddy is different from dynOneEqEddy. I thought the dynOneEqn gives a globalized ck and locDynOneEqEddy gives a local ck. any comments ?
Hi Michael, Personally I am
Personally I am not convinced by the argument that negative nuSgs represents back-scatter; it violates the entropy inequality. This is a big problem with localized dynamic models and the reason why I don't use them. Putting a clip in to stop nuSgs becoming negative is one "solution" but it's not very physical.
Hi Henry, What is the diffe
What is the difference between the locDynOneEqEddy and dynOneEqEddy ?
Thanks a lot
locDynOneEqEddy uses locally e
locDynOneEqEddy uses locally evaluated coefficients.
dynOneEqEddy uses globally averaged coefficients and is hence only formally applicable to homogeneous turbulence e.g. in a box with cyclic boundaries.
Hi Henry Thanks a lot for y
Thanks a lot for your reply.
do you know why we have these negative nuSGS in dynamic models? Thanks.
|All times are GMT -4. The time now is 20:10.|