CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Post-Processing (
-   -   Reynolds Stress Tensor (

Sergio13 April 11, 2011 12:42

Reynolds Stress Tensor
Hello Foamers
I am quite new to CFD and OpenFoam, and I was wondering if someone can help me with this:

How can be calculated / displayed the Reynolds Stress Tensor, in order to, say, calculate the stresses at a given point of the domain.

Please also note that I am using a LES turbulence model

Thanks in advance for your help

longamon April 11, 2011 13:29

In the controlDict, the last part you can choose to add functions:

        type            fieldAverage;
        functionObjectLibs ( "" );
        enabled        true;
        outputControl  timeStep;
        outputInterval  100;
                mean        on;
                prime2Mean  on;
                base        time;

                mean        on;
                prime2Mean  off;
                base        time;

I'm pretty sure UPrime2Mean is the Reynolds stress tensor, (if its not, somebody please correct me)

This function will give a symmetric tensor field with 6 components for the times you choose.

Sergio13 April 12, 2011 10:42

Hi David, thanks for your answer. I will try it.

On the other hand, checking commands, I found stressComponents and typed it. The thing, is that it created at each time step a sigmaxx, sigma xy.... sigmazz files. However when I opened any of those files the units I found are [0 2 -2 0 0 0 0], while I was expecting [1 -1 -2 0 0 0 0].

Do you, or any other foamer have something to say about this?


longamon April 12, 2011 12:55

In its source code, stressComponents is defined as:*2*dev(symm(fvc::grad(U)))

so I guess its the deviatoric stress tensor divided by the density, hence the units [0 2 -2 ...]
These stress components are different than the Reynolds stresses:
Re Stresses: velocity fluctuation.
Dev. Stresses: deformation.

Sergio13 April 12, 2011 14:01

Gracias David

The tech support folks from OpenFoam, have said the following about this issue
stressComponents was written for incompressible laminar flow. For LES you need to accumulate the Reynolds stress by averaging during the run.

Take a look at stressComponents.C and you will see how the stress is calculated;
it is a kinematic rather than dynamic stress.
It looks as if it is time for this newbie to dig into the programming aspects of OpenFoam (auch!!!)

Sergio13 April 12, 2011 14:20

It finally makes some sense:

Tau= mu*dV/dy

stressComponents uses nu [m2 s-1] instead of mu [kg m-1 s-1], and that is the reason why the stress tensor yields [m2 s-2]

However I still need to know how to calculate the stress tensor components

longamon April 13, 2011 03:23

If you need to calculate the Re stress tensor use the info in my first post, at the end of control dict add the fieldaveraging function, UPrime2mean gives the Re stress tensor.

I'm also a newbie at foam and programing, but I have digged several times into the source codes.

Have fun :)

wzx1989221 April 18, 2014 07:30

Hi David,

I saw you post about the Reynolds stress tensor. I also found that UPrime2mean yielded six columns which should be stress tensor. I was just wondering how I can get the RMS value from the UPrime2mean file. Hope you can give me some hints.

Thank you very much.

Kind regards,

alekhine January 4, 2017 11:06

Hey David,

This is quite an old post but maybe I'm lucky and get a reply. I want to plot the Reynolds stress versus the normal wall direction at a specific point. To do so, I used the post process utilities of OpenFOAM (simpleFoam -postProcess -func R -latestTime) but I cannot sample this tensor along a line.
(see my post here

I thought I can use your option which is to write the UPrime2Mean using your proposed function above. However, comparing the Reynold stress that I got from the post process utility and UPrime2Mean, there is quite a difference. Any idea why?


All times are GMT -4. The time now is 16:34.