# LES-Content of a Detached Eddy Simulation for OpenFOAM

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

 July 3, 2012, 11:36 LES-Content of a Detached Eddy Simulation for OpenFOAM #1 Senior Member   Anne Gerdes Join Date: Aug 2010 Location: Hamburg Posts: 168 Rep Power: 8 Hey Foamers, I started with OpenFOAM®+DES, SpalartAllmarasIDDES. I would like to determine the LES-Content of my computation. Does someone know an indicator or a way to determine the content? It would be desirable to see the averaged LES content... Thanks Anne

July 4, 2012, 11:07
#2
Senior Member

Vesselin Krastev
Join Date: Jan 2010
Location: University of Tor Vergata, Rome
Posts: 364
Rep Power: 12
Quote:
 Originally Posted by Anne Lincke Hey Foamers, I started with OpenFOAM®+DES, SpalartAllmarasIDDES. I would like to determine the LES-Content of my computation. Does someone know an indicator or a way to determine the content? It would be desirable to see the averaged LES content... Thanks Anne
Hi,
you can obtain the averaged resolved Reynolds stresses by just activating the averaging function for the velocity field at the end of your controlDict:

functions
{
fieldAverage
{
type fieldAverage;
functionObjectLibs ("libfieldFunctionObjects.so");
enabled true;
outputControl outputTime;
fields
(
U
{
mean on;
prime2Mean on;
base time;
}
);
}
}

The above addition will produce and write both the time-averaged velocity field as well as the six time averaged components of the resolved Reynolds stresses tensor (this is the meaning of prime2Mean: fluctuating components squared and averaged against time). Of course, to obtain reliable results, you have to start averaging when the flow has developed its transient content and then average for a sufficiently long period, in order to get the mean (and thus the fluctuating) values stabilized.

Hope this helps

V.

 July 5, 2012, 03:11 #3 Senior Member   Anne Gerdes Join Date: Aug 2010 Location: Hamburg Posts: 168 Rep Power: 8 Hey Vesselin, thanks for your answer. I already activated fieldAverage and plottet those values. But this was not my question, maybe I expressed in a bad way. What I meant: I would like to plot a "sensor" which is for example "1" in regions where LES-mode is activated and "0" in regions where RANS-mode is activated. When outputting the averaged sensor, one could see the regions where mainly LES-, and regions where mainly RANS-mode was activated. It is desirable for a DES to switch on RANS-mode in near-wall regions and LES-mode inside the fluid volume. Dou you or someone else have an idea how to solve this in OpenFOAM? I heard that it is common for solvers to have such a sensor implemented.... Thanks Anne

July 5, 2012, 04:10
#4
Senior Member

Vesselin Krastev
Join Date: Jan 2010
Location: University of Tor Vergata, Rome
Posts: 364
Rep Power: 12
Quote:
 Originally Posted by Anne Lincke Hey Vesselin, thanks for your answer. I already activated fieldAverage and plottet those values. But this was not my question, maybe I expressed in a bad way. What I meant: I would like to plot a "sensor" which is for example "1" in regions where LES-mode is activated and "0" in regions where RANS-mode is activated. When outputting the averaged sensor, one could see the regions where mainly LES-, and regions where mainly RANS-mode was activated. It is desirable for a DES to switch on RANS-mode in near-wall regions and LES-mode inside the fluid volume. Dou you or someone else have an idea how to solve this in OpenFOAM? I heard that it is common for solvers to have such a sensor implemented.... Thanks Anne
Ok, so I haven't understood your question properly...Well, if you are interested in a post-processing of this RANS/LES parameter than the easiest way should be to write your own post-proc utility which calculates and writes the parameter using already calculated flow variables. For the DES and DDES models actually all you have to do is to calculate the ratio between the RANS and LES lenght scales which are used to discriminate where to apply the RANS or DES formulation (where the RANS scale is smaller then the LES one the model works in RANS mode, the opposite applies for the LES mode). I'm not sure if things are that easy with the IDDES model, which as far as I know has a much more complex formulation. Just as an example, I can send you an utility which calculates and writes the delaying function fd included in the DDES model.

V.
Attached Files
 Fd.tar.gz (1.9 KB, 177 views)

 July 17, 2012, 04:24 #5 Senior Member   Anne Gerdes Join Date: Aug 2010 Location: Hamburg Posts: 168 Rep Power: 8 Hey Vesselin, sorry for the late reply. Thanks a lot for this tool. I wrote a similar one for IDDES. Kind Regards Anne

 July 17, 2012, 04:35 #6 Senior Member   Vesselin Krastev Join Date: Jan 2010 Location: University of Tor Vergata, Rome Posts: 364 Rep Power: 12 Hi Anne, no problem, happy to see that you have solved your issue! Regards V.

 August 8, 2012, 05:35 #7 New Member   Lukas Join Date: Jul 2012 Posts: 12 Rep Power: 6 Hello everybody, hello Anne, I am currently trying to work my way into DES in OpenFOAM. Such a tool as you said would really be neat to have. Unfortunately, when it comes to coding in OpenFOAM, I am pretty much a novice, so I have a question: Did you implement the evaluation of the length scales as a post processing or routine did you modify the turbulence model to write a field? Any help is appreciated. Best regards, Lukas

 August 8, 2012, 05:52 #8 Senior Member   Anne Gerdes Join Date: Aug 2010 Location: Hamburg Posts: 168 Rep Power: 8 Hey Lukas, I implemented a postprocessing tool which writes \tilde{fd}*(1+fe) and 1-\tilde{fd} which are the coefficients of l_RANS and l_LES, respectively (according to the paper of Shur et. al). It would be desirable to insert such a tool inside a simulation such that these coefficients are computed at each time step and could be averaged. But I only succeeded in doing this inside a postprocessing routine, which computes these values for the written time steps. So one can see the LES content of each time step which was output. Kind Regards Anne potentialFoam likes this.

 August 9, 2012, 00:15 #9 Member   Jason Eason Join Date: Jan 2010 Location: Portage, Michigan Posts: 45 Rep Power: 9 Hi Anne, Could you please post your LESProperties file, with SpalartAllmarasIDDES implemented? __________________ Debian Squeeze - OpenFOAM-2.1.x, Paraview-3.12.0

 August 9, 2012, 02:55 #10 Member   Timo K. Join Date: Feb 2010 Location: University of Stuttgart Posts: 66 Rep Power: 9 Hi Anne, have a look in the extend project. You have to define an IOobject.

August 9, 2012, 03:09
#11
Senior Member

Anne Gerdes
Join Date: Aug 2010
Location: Hamburg
Posts: 168
Rep Power: 8
Hey,

Quote:
 Originally Posted by JulytoNovember Hi Anne, Could you please post your LESProperties file, with SpalartAllmarasIDDES implemented?
here it is:

HTML Code:
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  1.7.0                                 |
|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
version     2.0;
format      ascii;
class       dictionary;
location    "constant";
object      LESProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

LESModel       SpalartAllmarasIDDES;

printCoeffs     on;

delta IDDESDelta; // maxDeltaxyz;//

maxDeltaxyzCoeffs
{
deltaCoeff 2;
}

SpalartAllmarasIDDESCoeffs
{
fieldMaps
{
nuTilda         nuTilda;
nuSgs           nuSgs;
}
alphaNut        1.5;
Cb1             0.1355;
Cb2             0.622;
Cw2             0.3;
Cw3             2;
Cv1             7.1;
Cv2             5;
CDES            0.65;
ck              0.07;
fwStar          0.424;
cl              3.55;
ct              1.63;
}

IDDESDeltaCoeffs
{
cw 0.15;
deltaCoeff      2;//1; 2 for hexMesh

}

SpalartAllmarasCoeffs
{
alphaNut         1.5;
Cb1              0.1355;
Cb2              0.622;
Cw2              0.3;
Cw3              2;
Cv1              7.1;
Cv2              5.0;
CDES             0.65;
ck               0.07;
}

SpalartAllmarasDDESCoeffs
{
alphaNut         1.5;
Cb1              0.1355;
Cb2              0.622;
Cw2              0.3;
Cw3              2.0;
Cv1              7.1;
Cv2              5.0;
CDES             0.65;
ck               0.07;
}

SpalartAllmarasIDDESCoeffs
{
alphaNut         1.5;
kappa            0.4187;
Cb1              0.1355;
Cb2              0.622;
Cw2              0.3;
Cw3              2.0;
Cv1              7.1;
Cv2              5.0;
CDES             0.65;
ck               0.07;
}

PrandtlCoeffs
{
delta           cubeRootVol;
cubeRootVolCoeffs
{
deltaCoeff      1;
}

smoothCoeffs
{
delta           cubeRootVol;
cubeRootVolCoeffs
{
deltaCoeff      1;
}

maxDeltaRatio   1.1;
}

Cdelta          0.158;
}

vanDriestCoeffs
{
delta           cubeRootVol;
cubeRootVolCoeffs
{
deltaCoeff      1;
}

smoothCoeffs
{
delta           cubeRootVol;
cubeRootVolCoeffs
{
deltaCoeff      1;
}

maxDeltaRatio   1.1;
}

Aplus           26;
Cdelta          0.158;
}

smoothCoeffs
{
delta           cubeRootVol;
cubeRootVolCoeffs
{
deltaCoeff      1;
}

maxDeltaRatio   1.1;
}

// ************************************************************************* //
Kind Regards,
Anne

 August 14, 2012, 09:21 #12 New Member   Jane L Join Date: May 2012 Posts: 21 Rep Power: 6 Hi, just in case you're still interested. You can define the IOobject Timo_IHS mentioned in your own copy of the SpalartAllmaras.C (DES) model which could look like this: Code:  RANSregion_ ( IOobject ( "RANSregion", runTime_.timeName(), mesh_, IOobject::MUST_READ, IOobject::AUTO_WRITE ), mesh_ ), "RANSregion_" has to be initialized in the *.H file and you need a RANSregion_ file in the 0 folder with the correct dimensions depending on your equation to calculate "RANSregion_". The equation itself may be placed where nuSgs is calculated. Example for SpalartAllmaras: Code: void mySpalartAllmaras::updateSubGridScaleFields() { nuSgs_.internalField() = fv1()*nuTilda_.internalField(); nuSgs_.correctBoundaryConditions(); RANSregion_ = CDES_*delta() - y_; } This gives you a positive result in the area where RANS is used and a negative where LES is used. kind regards

 August 14, 2012, 12:56 #13 Senior Member   Awais Ali Join Date: Feb 2010 Location: Germany Posts: 128 Rep Power: 10 Hi Jane L, Can we do something similar for other Turbulence models as well. And what is "fv1()" in the above equation. It would be very helpful if you could explain shortly what this code snippet is actually doing. Regards, Awais

August 15, 2012, 02:22
#14
New Member

Jane L
Join Date: May 2012
Posts: 21
Rep Power: 6
Hi!
Quote:
 Originally Posted by owayz Can we do something similar for other Turbulence models as well.
The example above is a possible solution for the issue Anne described:

Quote:
 I would like to plot a "sensor" which is for example "1" in regions where LES-mode is activated and "0" in regions where RANS-mode is activated.
While this makes only sence in a DES method, you can of course apply something similar to any turbulence model if you wish to have some more outputdata. This data will be written in the folder of each timestep and can be used by paraview.

Quote:
 Originally Posted by owayz And what is "fv1()" in the above equation. It would be very helpful if you could explain shortly what this code snippet is actually doing.
This code snipped is a variation of the SpalartAllmaras turbulence model, which is located in your OpenFOAM installation folder under:
/src/turbulenceModels/incompressible/LES/SpalartAllmaras/SpalartAllmaras.C
So actually the function "fv1()" comes from this model. In order to alter existing turbulence models you should make your own copy of that turbulence model. Follow the instructions of Hakan Nilsson (you find the "implementTurbulenceModel.pdf" via google)

I hope this helps!
regards

 August 15, 2012, 10:17 #15 Senior Member   Anne Gerdes Join Date: Aug 2010 Location: Hamburg Posts: 168 Rep Power: 8 Hey Jane, thank you very much for this information. I am still interested in implementing such a sensor and will try to do it in this way. Starting with Spalart-Allmaras and DES seems to be a good way, as the model gets more and more complex for DDES and IDDES. Kind Regards Anne

 August 15, 2012, 11:11 #16 Senior Member   Awais Ali Join Date: Feb 2010 Location: Germany Posts: 128 Rep Power: 10 Hi Jane, Thanks for your reply. I will try to look into that pdf. Also I might try to do something similar for LES as well. Regards, Awais

 August 17, 2012, 00:29 #17 Senior Member   Tarak Join Date: Aug 2010 Location: State College, PA Posts: 110 Rep Power: 8 Hii, Have you tried plotting the energy spectrum to get an estimate of the LES content?

 March 1, 2013, 16:22 #18 Member   Join Date: Jul 2010 Posts: 39 Rep Power: 8 Hi; I have been trying to run a simulation in OFv2.1.0 with SpalartAllmarasIDDES using exactly the same LESProperties file that Anne L. posted in this forum. However, I am getting this error: Code: Selecting incompressible transport model Newtonian Selecting turbulence model type LESModel Selecting LES turbulence model SpalartAllmarasIDDES --> FOAM FATAL IO ERROR: keyword delta is undefined in dictionary "" file: From function dictionary::lookupEntry(const word&, bool, bool) const in file db/dictionary/dictionary.C at line 400. FOAM exiting The IDDESDelta is recognized, because if I spell it wrong it appears on the LESdelta types. Code: --> FOAM FATAL ERROR: Unknown LESdelta type XXIDDESDelta Valid LESdelta types are : 6 ( IDDESDelta Prandtl cubeRootVol maxDeltaxyz smooth vanDriest ) From function LESdelta::New(const fvMesh&, const dictionary&) in file LESdelta/LESdelta.C at line 78. FOAM exiting Any ideas or suggestions? Thanks!

 March 4, 2013, 04:27 #19 Senior Member   Anne Gerdes Join Date: Aug 2010 Location: Hamburg Posts: 168 Rep Power: 8 Hey, I installed OpenFOAM-2.1.1. and since then I get exactly the same error message. I would be really interested in how to solve this, too.

 March 6, 2013, 09:16 #20 New Member   Corrado Sotgiu Join Date: Jan 2013 Posts: 13 Rep Power: 6 This should be the correct LESProperties file for 2.1.x Code: /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 1.7.1 | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "constant"; object LESProperties; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // LESModel SpalartAllmarasIDDES; printCoeffs on; delta cubeRootVol; printCoeffs on; cubeRootVolCoeffs { deltaCoeff 1; } SpalartAllmarasIDDESCoeffs { delta IDDESDelta; IDDESDeltaCoeffs { deltaCoeff 1; cw 0.15; } } //*************************************************************************//

 Thread Tools Display Modes Linear Mode

 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 OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post rooholghodos OpenFOAM 0 March 7, 2012 11:35 LorenzN OpenFOAM Running, Solving & CFD 4 November 17, 2011 11:47 Marvin Main CFD Forum 6 December 4, 2009 12:08 PattiMichelle Phoenics 2 April 29, 2005 13:24 Fred Main CFD Forum 4 December 16, 2000 10:45

All times are GMT -4. The time now is 20:19.