divDevRhoReff and divDevReff
There is a post of Tobi's eq-code explanation on viscous stress.
In incompressible flow, beside normal stress (taken out as p*I), the viscous part is only a function of deviate part of grad(U) (or its transpose).
In "SymmTensorI.H"
there are tow functions for deviate part of a tensor as explained by Tobi : dev and dev2
320 //- Return the deviatoric part of a symmetric tensor
321 template<class Cmpt>
322 inline SymmTensor<Cmpt> dev(const SymmTensor<Cmpt>& st)
323 {
324 return st - SphericalTensor<Cmpt>:: oneThirdI*tr(st);
325 }
326
327
328 //- Return the deviatoric part of a symmetric tensor
329 template<class Cmpt>
330 inline SymmTensor<Cmpt> dev2(const SymmTensor<Cmpt>& st)
331 {
332 return st - SphericalTensor<Cmpt>::twoThirdsI*tr(st);
333 }
In incompressible flow, beside normal stress (taken out as p*I), the viscous part is only a function of deviate part of grad(U) (or its transpose).
In "SymmTensorI.H"
there are tow functions for deviate part of a tensor as explained by Tobi : dev and dev2
320 //- Return the deviatoric part of a symmetric tensor
321 template<class Cmpt>
322 inline SymmTensor<Cmpt> dev(const SymmTensor<Cmpt>& st)
323 {
324 return st - SphericalTensor<Cmpt>:: oneThirdI*tr(st);
325 }
326
327
328 //- Return the deviatoric part of a symmetric tensor
329 template<class Cmpt>
330 inline SymmTensor<Cmpt> dev2(const SymmTensor<Cmpt>& st)
331 {
332 return st - SphericalTensor<Cmpt>::twoThirdsI*tr(st);
333 }
Quote:
Hi All,
I'm using simpleFoam and turbFoam with k-epsilon and will be trying different turbulence models in the future. Before that though, I'm trying to understand the implementation exactly.
I've searched a lot and I don't understand why the calculation for turbulence->divDevReff(U) is:
divDevReff(U) =
- fvm::laplacian(nuEff(), U)
- fvc::div(nuEff()*dev(fvc::grad(U)().T()))
instead of:
divDevReff(U) =
- fvm::laplacian(nuEff(), U)
- fvc::div(nuEff()*fvc::grad(U)().T())
ie. why do we take the deviatoric?
I've read several papers including Hrvoje's "A tensorial approach to computational continuum mechanics using object-oriented techniques" and still haven't found an answer.
Is there another paper that explains the implementation?
Thanks very much
John
I'm using simpleFoam and turbFoam with k-epsilon and will be trying different turbulence models in the future. Before that though, I'm trying to understand the implementation exactly.
I've searched a lot and I don't understand why the calculation for turbulence->divDevReff(U) is:
divDevReff(U) =
- fvm::laplacian(nuEff(), U)
- fvc::div(nuEff()*dev(fvc::grad(U)().T()))
instead of:
divDevReff(U) =
- fvm::laplacian(nuEff(), U)
- fvc::div(nuEff()*fvc::grad(U)().T())
ie. why do we take the deviatoric?
I've read several papers including Hrvoje's "A tensorial approach to computational continuum mechanics using object-oriented techniques" and still haven't found an answer.
Is there another paper that explains the implementation?
Thanks very much
John
Total Comments 0