CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

Improved implementation of dynamic Smagorinsky

Register Blogs Community New Posts Updated Threads Search

Like Tree37Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   December 5, 2010, 18:59
Default Improved implementation of dynamic Smagorinsky
  #1
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
Hello,

if you need a dynamic Smagorinsky code with a truly dynamic coefficient (not domain-averaged as in the current implementation), you might find this useful.

You can find an implementation the dynamic model with local average of the coefficient here:

http://www.openfoam.com/mantisbt/view.php?id=99

I proposed it for inclusion in OpenFOAM. If this is not going to happen (very probable, read the answer), the code is available from my GitHub repository

git://github.com/AlbertoPa/dynLocalAverageSmagorinsky.git

Best,
caduqued, atmcfd, solefire and 9 others like this.
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   December 6, 2010, 13:37
Smile LES - VOF Method
  #2
Member
 
Javier Basurco
Join Date: Jan 2010
Location: Rio de Janeiro, Brazil
Posts: 32
Rep Power: 16
Ingenierias2003 is on a distinguished road
Dear Alberto,

I would like to know if this new dynamic smagorinsky model is useful too two-phase flow models. I don't know is could be possible to you explain me better how con set my /constant/LESmodel to use this new approach.

Thanks in advance

My deep regards

Respectfully
Javier Basurco
Ingenierias2003 is offline   Reply With Quote

Old   December 6, 2010, 13:58
Default
  #3
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
Quote:
Originally Posted by Ingenierias2003 View Post
Dear Alberto,

I would like to know if this new dynamic smagorinsky model is useful too two-phase flow models. I don't know is could be possible to you explain me better how con set my /constant/LESmodel to use this new approach.
Strictly speaking, no. None if the implemented LES models has been derived with multiphase flows in mind.

The additional model I posted can be simply compiled with "wmake libso", and then include

Code:
libs ( "libOpenFOAM.so" "libdynLocalAverageSmagorinskyModel.so" ) ;
in controlDict, and:

Code:
LESModel        dynLocalAverageSmagorinsky;
delta              cubeRootVol;
Code:
dynLocalAverageSmagorinskyCoeffs
{
  filter    simple;
  ce            1.048;
}
Best,
solefire and songwukong like this.
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   December 7, 2010, 11:14
Default
  #4
Member
 
Flavio Galeazzo
Join Date: Mar 2009
Location: Karlsruhe, Germany
Posts: 34
Rep Power: 18
flavio_galeazzo is on a distinguished road
Thanky you for the generous contribution, Alberto. I will give it a try as soon as I get some resources free.
flavio_galeazzo is offline   Reply With Quote

Old   December 7, 2010, 13:46
Default
  #5
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
Hi Flavio, there is nothing new in the model. It is basically the dynamic model proposed by Lilly, with face averaging to limit the risk of numerical instabilities.

Best,
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   December 7, 2010, 20:33
Default
  #6
Member
 
Join Date: Oct 2010
Location: Stuttgart
Posts: 35
Rep Power: 16
grandgo is on a distinguished road
Quote:
Originally Posted by alberto View Post
Strictly speaking, no. None if the implemented LES models has been derived with multiphase flows in mind.

The additional model I posted can be simply compiled with "wmake libso", and then include

Code:
libs ( "libOpenFOAM.so" "libdynLocalAverageSmagorinskyModel.so" ) ;
in controlDict, and:

Code:
LESModel        dynLocalAverageSmagorinsky;
delta              cubeRootVol;
Code:
dynLocalAverageSmagorinskyCoeffs
{
  filter    simple;
  ce            1.048;
}
Best,
hi alberto!

i don't understand, why to include a library in controlDict....

best regards
grandgo
grandgo is offline   Reply With Quote

Old   December 7, 2010, 20:58
Default
  #7
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
Quote:
Originally Posted by grandgo View Post
hi alberto!

i don't understand, why to include a library in controlDict....

best regards
grandgo
When you execute wmake libso, you generate a dynamic library, not linked to the executable. Adding that line to controlDict tells the solver to load the library.

Best,
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   December 8, 2010, 13:28
Default
  #8
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
Since the proper name of the model is "dynamic Smagorinsky", I updated code, description (added reference) and repository.

The new URL is here:

git clone git://github.com/AlbertoPa/dynamicSmagorinsky.git

The README also contains the instructions to use the it.

Notice that the limitation observed by the current implementation of dynamic Smagorinsky in OpenFOAM affects all the dynamic models, not only the dynSmagorinsky. All the SGS models relying on the dynamic procedure in OpenFOAM average the dynamic coefficient over the whole domain.

Best,
caduqued, solefire, deji and 2 others like this.
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   December 14, 2010, 10:18
Default
  #9
Senior Member
 
Jiang
Join Date: Oct 2009
Location: Japan
Posts: 186
Rep Power: 17
panda60 is on a distinguished road
Dear alberto ,
What's the meaning of "face averaging "? It is not "not domain averaging"?
If not average at all, but give a cutoff for nuSGS (for example, nu+nuSGS>0), it is better or not ?

Could you make your model easier to be modified by others who wants to use this.
Thank you very much.
panda60 is offline   Reply With Quote

Old   December 14, 2010, 12:32
Default
  #10
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
Quote:
Originally Posted by panda60 View Post
Dear alberto ,
What's the meaning of "face averaging "? It is not "not domain averaging"?
Let's start from the beginning

Lilly's formulation of the dynamic model, which is the one implemented, relies on a formulation of L and M, so that both the numerator and the denominator should vanish if one tends to zero. Based on this consideration, formally, the model should not present problems. However, the coefficient can change significantly, and some averaging might be required.

The less intrusive form of averaging I could think to is the "face-averaging". Face averaging means that the numerator and the denominator in the definition of the dynamic coefficient are the face-average value for that cell. This helps in limiting steep variations of the coefficient which would cause numerical problems.

It is very different from the "domain average" used in the standard implementation in OpenFOAM 1.7.x. In the domain average you end up having one single value of the coefficient over the whole domain, which removes the advantages of the dynamic procedure.

Quote:
If not average at all, but give a cutoff for nuSGS (for example, nu+nuSGS>0), it is better or not ?
That is done too in the code, and represents a physical constraint. The effective viscosity is bounded to zero in the code. Averaging addresses the problem of strong variability of the coefficient (check Lilly (1992) paper).

Quote:
Could you make your model easier to be modified by others who wants to use this.
What do you mean with "make it easier"? The code can be freely downloaded and it follows the structure of OpenFOAM LES models.

Best,
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   December 14, 2010, 13:46
Default
  #11
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
I added a modified version of channel395 to the git repository, where the model is enabled. I hope this makes things a bit more clear.

Best,
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   December 22, 2010, 23:11
Default
  #12
Senior Member
 
Jiang
Join Date: Oct 2009
Location: Japan
Posts: 186
Rep Power: 17
panda60 is on a distinguished road
Dear alberto ,
Thank you very much. And I also have question. Originally in dynamic model, it seems that k is not needed. But in OpenFOAM's dynamic model, the SGS kinetic energy k is needed. Could you explain this for us ? and how we can give this boundary condition ? in one equation model, Eugene said at inflow boundary, the resolved kinetic energy is OK, and it will quickly decrease. In this dynamic model, also like this ? thanks.

And I am sorry, your git repository is not allowed to acess for me. I just download the "Attached files", but can't download the channel395 example.
panda60 is offline   Reply With Quote

Old   December 23, 2010, 01:57
Default
  #13
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
Quote:
Originally Posted by panda60 View Post
Dear alberto ,
Thank you very much. And I also have question. Originally in dynamic model, it seems that k is not needed. But in OpenFOAM's dynamic model, the SGS kinetic energy k is needed.
It is not explicitly needed by the Smagorinsky model itself. A field named "k" has to be present because of how the LES models have been implemented.

Quote:
Could you explain this for us ? and how we can give this boundary condition ? in one equation model, Eugene said at inflow boundary, the resolved kinetic energy is OK, and it will quickly decrease. In this dynamic model, also like this ? thanks.
These questions would find an answer by simply taking a quick look to the code, which is always the best reference anyway. However:
  • k is not the resolved kinetic energy, but the residual part (SGS) in the LES models. A quick check to the code will confirm this to you.
  • In OpenFOAM the SGS turbulent kinetic energy is included explicitly in the SGS stresses.
  • The dynamic modes has exactly the same requirements for its setup as the standard Smagorinsky (some differences in the dictionaries), so yes, you will need a file for k.
  • About the BC's, set k to zero at walls, and to an appropriate value at inlets (you can estimate it with some theoretical consideration).
Quote:
And I am sorry, your git repository is not allowed to acess for me. I just download the "Attached files", but can't download the channel395 example.
My git repository is on github, so you have both git and https access to the content. You should be able to easily access to it.
Either:
Code:
git clone https://github.com/AlbertoPa/dynamicSmagorinsky.git
or
Code:
git clone git://github.com/AlbertoPa/dynamicSmagorinsky.git
should work. Additionally, if you go to this page https://github.com/AlbertoPa/dynamicSmagorinsky , you can push the Downloads button and github will create a .tar.gz or a .zip file for you. The tutorial is inside the testCases/channel directory.

Best,
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.

Last edited by alberto; December 23, 2010 at 02:01. Reason: Added git commands and some explanation
alberto is offline   Reply With Quote

Old   December 26, 2010, 04:05
Default
  #14
Senior Member
 
Jiang
Join Date: Oct 2009
Location: Japan
Posts: 186
Rep Power: 17
panda60 is on a distinguished road
Dear alberto,

at the inlet position, I have the kinetic energy profile measured from experiment, and I just use this as SGS k. But my professor doesn't agree with me, and said that "turbulent kinetic energy is more large than SGS k, you shouldn't use like this". He let me to fine other papers, see how does other people give inlet condition for SGS k. But I think that inlet condition for SGS k is not important, do you agree with me ? the following is my simulation. at the inlet position, I use experiment profile ,and the SGS k is very large, but as flow proceeded downstream, the k quickly decrease.
Attached Images
File Type: jpg good.jpg (73.1 KB, 179 views)
panda60 is offline   Reply With Quote

Old   December 26, 2010, 09:50
Default
  #15
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
Hi,
Quote:
Originally Posted by panda60 View Post
Dear alberto,

at the inlet position, I have the kinetic energy profile measured from experiment, and I just use this as SGS k. But my professor doesn't agree with me, and said that "turbulent kinetic energy is more large than SGS k, you shouldn't use like this".
Your professor is correct.
The turbulent kinetic energy you measure from experiments is the trace of the Reynolds stress tensor, while the SGS turbulent kinetic energy is the kinetic energy of the residual (unresolved) scales. Clearly they can be very different.

Quote:
He let me to fine other papers, see how does other people give inlet condition for SGS k. But I think that inlet condition for SGS k is not important, do you agree with me ? the following is my simulation. at the inlet position, I use experiment profile ,and the SGS k is very large, but as flow proceeded downstream, the k quickly decrease.
You are using a Smagorinsky-like model, as a consequence k_sgs is only used in computing the stress tensor. In other words, the value specified at the inlet should not be used at all in the simulation.

Do a simple check: set k = 0 at the inlet. Run your case. Compare with what you obtain from the case with k=k_sgs. Does it show any difference?

Of course, if you use a model involving the transport equation for k, things are different, and you must specify an appropriate BC for k_sgs.

Best,
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   December 27, 2010, 02:36
Default
  #16
Senior Member
 
Jiang
Join Date: Oct 2009
Location: Japan
Posts: 186
Rep Power: 17
panda60 is on a distinguished road
Dear alberto .
Thank you very much. You means in dynamic Smagorinsky model, the k_Sgs is not used, so will not influence the result. If it is like this, now I will do simulation using this dynamic model, and compare with my experiement. I have two case , one is empty domain, another is flow around a cubic building. I think the first case can be finished in 10 days.
panda60 is offline   Reply With Quote

Old   December 27, 2010, 03:01
Default
  #17
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
Quote:
Originally Posted by panda60 View Post
Dear alberto .
Thank you very much. You means in dynamic Smagorinsky model, the k_Sgs is not used, so will not influence the result.
Exactly. k_SGS is an output of the model, and it is defined explicitly (check the code to see how).

Best,
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   January 12, 2011, 15:38
Default plannar averaging
  #18
StSchiff
Guest
 
Posts: n/a
Quote:
Originally Posted by alberto View Post

The less intrusive form of averaging I could think to is the "face-averaging". Face averaging means that the numerator and the denominator in the definition of the dynamic coefficient are the face-average value for that cell. This helps in limiting steep variations of the coefficient which would cause numerical problems.

It is very different from the "domain average" used in the standard implementation in OpenFOAM 1.7.x. In the domain average you end up having one single value of the coefficient over the whole domain, which removes the advantages of the dynamic procedure.
Hello Alberto,

thanks for sharing your corrected dynamicSmagorinsky with us! I tried it and it works fine. I wonder if the model can be changed in a way that it uses a planar averaging technique as was proposed by Germano (1990)? Of course that would only work for channel flow. That way the constant would only change with the height of the channel. Do you know of any plannar averaging methods in OpenFoam?

Are you getting fairly low results for C for the channel testcase as well? I'm getting values around 0.01, but I was expecting values at around 0.1 or 0.2. Also I'm getting negative values for C.

Best
Stefanie
  Reply With Quote

Old   January 12, 2011, 16:53
Default
  #19
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
Quote:
Originally Posted by StSchiff View Post
Hello Alberto,

thanks for sharing your corrected dynamicSmagorinsky with us! I tried it and it works fine. I wonder if the model can be changed in a way that it uses a planar averaging technique as was proposed by Germano (1990)? Of course that would only work for channel flow. That way the constant would only change with the height of the channel. Do you know of any plannar averaging methods in OpenFoam?
No, I do not know any pre-defined plane-averaging method.

Additionally, keep in mind that Germano's formulation for Cs is different from Lilly's formulation. Lilly's formulation in theory is always defined (numerically you still have issues due to large values). Check the corresponding references.

Quote:
Are you getting fairly low results for C for the channel testcase as well? I'm getting values around 0.01, but I was expecting values at around 0.1 or 0.2. Also I'm getting negative values for C.
The value will depend on the actual local conditions. Yes, you will obtain negative values of Cs and of SGS viscosity. The implementation only ensures that nuEff >= 0. Negative values of Cs are typically identified with back-scatter phenomena.

Best,
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   January 13, 2011, 08:14
Default
  #20
StSchiff
Guest
 
Posts: n/a
thanks, I think I'll keep working with Lilly's locally defined Cs then.
Is there a reason why the function cD is missing the factor 1/2 in the implementation? Or is that considered somewhere else?

Best
Stefanie
  Reply With Quote

Reply


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 Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Smagorinsky Dynamic Cosant in UDF Paolo Lampitella FLUENT 1 June 17, 2009 04:40
Dynamic Smagorinsky LES Lourival FLUENT 0 April 14, 2006 14:48
Dynamic Smagorinsky Model Andrew Main CFD Forum 1 November 30, 2004 01:52
Reply to Tim Re Dynamic Smagorinsky model Ajay S. Parihar Main CFD Forum 9 June 2, 2002 17:24
Dynamic Smagorinsky model Tim Main CFD Forum 7 May 29, 2002 08:37


All times are GMT -4. The time now is 18:12.