CFD Online Logo CFD Online URL
Home > Forums > OpenFOAM Programming & Development

Viscous term expansion

Register Blogs Members List Search Today's Posts Mark Forums Read

LinkBack Thread Tools Display Modes
Old   March 23, 2011, 08:35
Default Viscous term expansion
Senior Member
santiagomarquezd's Avatar
Santiago Marquez Damian
Join Date: Aug 2009
Location: Santa Fe, Santa Fe, Argentina
Posts: 420
Rep Power: 15
santiagomarquezd will become famous soon enough
Hi all, I'm studying the implementation of the viscous term in NS equations in the general framework used for example in pisoFoam, nevertheless I can't understand some of the things that are done. Viscous term is:


due incompressibility and applying div to the product, it becomes

laplacian(nuEff, U)+ grad(nuEff)*[(grad(U)+grad(U)^T)] (1)

in laminar regime nuEff=nu and in turbulent regime nuEff=nu+nut. Reading the code we have from pisoFoam.C:

00065             fvVectorMatrix UEqn
00066             (
00067                 fvm::ddt(U)
00068               + fvm::div(phi, U)
00069               + turbulence->divDevReff(U)
00070             );
so that the viscous term is contained in turbulence->divDevReff(U) calling. Taking, for example, the kEpsilon.C implementation:

00181 tmp<fvVectorMatrix> kEpsilon::divDevReff(volVectorField& U) const
00182 {
00183     return
00184     (
00185       - fvm::laplacian(nuEff(), U)
00186       - fvc::div(nuEff()*dev(fvc::grad(U)().T()))
00187     );
00188 }
the laplacian term is present, but the second term is completely different to the second one in (1). I tried to derive the above formulation without success and my advisor showed me that both expressions [(1) and which is present in divDevRefff] give different results in deed, using a counterexample with a div(U)=0 field.

All ideas are welcome.

Post-doctoral Fellow
Research Center for Computational Mechanics (CIMEC) - CONICET/FICH-UNL
T.E.: 54-342-4511594 Ext. 1005
Güemes 3450 - (3000) Santa Fe
Santa Fe - Argentina
santiagomarquezd is offline   Reply With Quote

Old   December 13, 2011, 21:44
New Member
Join Date: Mar 2009
Location: Sao Jose dos Campos, Brazil
Posts: 28
Rep Power: 8
piccinini is on a distinguished road
Hello, Santiago.

Perhaps you have it already solved, but here goes my try:

The laminar part of viscous stress tensor is:
\nabla\cdot\tau = \nabla \cdot \nu [ \nabla U + ( \nabla U )^T ]

The turbulent part of viscous stress tensor is
\nabla\cdot\tau_T = \nabla \cdot \nu_T [ \nabla U + ( \nabla U )^T ]

Now, summing both contributions:
\nabla\cdot(\tau+\tau_T) =  \nabla\cdot[(\nu+\nu_T) \nabla U] + \nabla \cdot [ (\nu+\nu_T) (\nabla U )^T]

The last term in OpenFOAM code is not the same, though:
- it is computed the deviatoric of (\nabla U )^T and not the gradient itself. This is discussed in another topic: Calculating divDevReff

The trace of last term is zero because of the explicit formulation using the velocity field from previous time step, that should be divergence free.
piccinini is offline   Reply With Quote


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
Viscous work term query siw CFX 1 December 6, 2010 07:41
Viscous term in Navier Stokes Equations dandalf Main CFD Forum 7 November 17, 2010 10:21
viscous term in energy equation seb62 OpenFOAM Running, Solving & CFD 0 March 19, 2009 04:41
Re: viscous source term mt Phoenics 10 February 11, 2005 11:46
Is the viscous dissipation term fully included? yann Phoenics 0 June 5, 2003 10:23

All times are GMT -4. The time now is 08:57.