CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Convection discretization schemes for LES (https://www.cfd-online.com/Forums/openfoam-solving/59321-convection-discretization-schemes-les.html)

sek October 3, 2007 11:19

Can OpenFOAM LES gurus recomme
 
Can OpenFOAM LES gurus recommend the best convection schemes available in OF? It would be great if anybody can share his/her experience with various schemes in terms of stability and accuracy. I tried "Gauss linear", and it yielded unphysical oscillations in velocity/pressure, which is understandable given the mesh resolution.

eugene October 3, 2007 12:04

try filteredLinear
 
try filteredLinear

braennstroem October 3, 2007 13:30

I read an article from ETMM6 c
 
I read an article from ETMM6 conference about the use of polyhedral meshes for LES with starccm+. It seems to be a nice way to use unstructured grids for LES...

Does anyone know, which of OpenFOAM schemes are for LES 'low' dissipative for polyhedral and tetra meshes? Code Saturne has some adjusted schemes for unstructured grids too. Maybe, someone has experience in unstructured LES!? Would be nice to read some advices, if it is worth running LES without hexa meshes...

Fabian

eugene October 3, 2007 13:46

The best available low dissipa
 
The best available low dissipation second order schemes in OpenFOAM are filteredLinear and filteredLinear2. The filtering removes staggering caused by pressure-velocity decoupling by introducing small amounts of upwind. The type of mesh they are used on is not relevant, although the calculations will obviously be more accurate on hexes and less accurate on the same number of tets.

braennstroem October 3, 2007 14:34

Thanks for the info, is there
 
Thanks for the info, is there any reference to these schemes?

sek October 3, 2007 15:43

Where should I look to find th
 
Where should I look to find the details of the convectiobn schemes. I unsuccessfully tried to browse the code but it was not obvious where all the different schemes are implemented.

eugene October 4, 2007 05:19

Reference? No, Henry invented
 
Reference? No, Henry invented them from scratch to stop the staggering in LES a few months ago. We have performed a lot of tests since then and they are unconditionally better than any of our previous attempts to address the problem and do not adversely affect LES statistics.

The sources can be found in src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/

ville October 4, 2007 06:31

This sounds good indeed! Whic
 
This sounds good indeed!
Which sgs-models have you been testing these
schemes on? Have you tried DNS with these schemes?

It would be very interesting to hear about suggestions/experiences for minimum cell Reynolds numbers when implicit LES/DNS limit is being considered. Actually, I think I'll try this
approach on filteredLinear-schemes on my free jet case within some weeks or so.

Regards,
Ville

eugene October 4, 2007 08:25

We have run them with the oneE
 
We have run them with the oneEqEddyVisc and SpalartAllmaras and are now using them for all our LES/DES calculations. So far so good. I know Henry has run them without an SGS model as well, but unfortunately I can't remember what his comments were on the viability of this approach.

I am not 100% certain, but it looks like you can pretty much ignore the cell Reynolds number limit if you have these schemes in place.

A small note: these schemes will not remove staggering entirely, but will generally reduce staggering to levels smaller than "normal" flow oscilations.

gtg627e October 10, 2007 02:13

Hello Forum, I am running a
 
Hello Forum,

I am running a LES case of a flat plate using oodles. I was wondering if anybody could comment on the drastic oscillations of pressure, which are present even in the pitzDaily tutorial in oodles. I undesrand pitzDaily is just an illustration of the use of LES, and z-direction boundaries for a LES simulation should be simmetryPlane, but I get the same wild oscillations. Furthermore, could anyboby give an example of how to use the filteredLinear convection scheme? I tried div(phi,U) filteredLinear, and I got an error saying such scheme requires a word as an input; so I tried U.
Would you use it like this? to what field variables would you seggest applying filteredLinear?

Thank you in advance,

Alessandro Spadoni

gtg627e October 10, 2007 02:31

Dear Forum, I forgot to men
 
Dear Forum,

I forgot to mention that my flat plate is moving, and even though the pressure is oscillating throughout the domain, velocity, k, nuSGS, B ... are looking ok.

Thank you again,

Alessandro

eugene October 11, 2007 06:05

you use filteredLinear as foll
 
you use filteredLinear as follows:

div(pi,U) Gauss filteredLinear;

The oscillations are probably due to poor inlet or outlet boundary specifications.

gtg627e October 15, 2007 05:44

Dear Eugene, My case is as
 
Dear Eugene,

My case is as follows:

I am using oodles.
I have a flat plate 32 cm long. My solution domain is x: general patch (which I called front) from -21 cm to -10.5 cm. type wall from -10.5 cm to 21 cm. The top part of the domain is at 40 cm. The domain extends along z from 0 to 5 cm.

I would like to get a good steady-state solution to then analyze what happens if such flat plate starts vibrating.

Boundary conditions:

top --> type patch;
physicalType slip;
U (file 0/U) slip;
p (file 0/p) slip;
k (file 0/k) slip;
B (file 0/B) slip;
nuSgs (file 0/nuSgs) zeroGradient;
nuTilda (file 0/nuTilda) slip;

front --> type patch;
physicalType slip;
U (file 0/U) slip;
p (file 0/p) slip;
k (file 0/k) slip;
B (file 0/B) slip;
nuSgs (file 0/nuSgs) zeroGradient;
nuTilda (file 0/nuTilda) slip;

flatplate --> type wall;
physicalType wallFunctions;
U (file 0/U) uniform (0 0 0);
p (file 0/p) zeroGradient;
k (file 0/k) uniform 0;
B (file 0/B) zeroGradient;
nuSgs (file 0/nuSgs) zeroGradient;
nuTilda (file 0/nuTilda) uniform 0;

Inlet --> type patch;
physicalType turbulentInlet;
U (file 0/U) fluctuationScale (0.02 0.01 0.01);
referenceField uniform (10 0 0);
value uniform (10 0 0);
p (file 0/p) zeroGradient;
k (file 0/k) uniform 2e-05;
B (file 0/B) uniform (0 0 0 0 0 0 0 0 0);
nuSgs (file 0/nuSgs) zeroGradient;
nuTilda (file 0/nuTilda) uniform 0;

outlet type patch;
physicalType inletOutlet;
U (0/U)
inletValue uniform (0 0 0);
value uniform (0 0 0);
p (0/p) uniform 0;
k (file 0/k)
inletValue uniform 0;
value uniform 0;
B (file 0/B) inletValue uniform (0 0 0 0 0 0 0 0 0);
value uniform (0 0 0 0 0 0 0 0 0);;
nuSgs (file 0/nuSgs) zeroGradient;
nuTilda (file 0/nuTilda)
inletValue uniform 0;
value uniform 0;

Initial Conditions Internal filed:
U uniform (0 0 0);
p internalField uniform 0;
k uniform 0;
B uniform (0 0 0 0 0 0 0 0 0);
nuSgs uniform 0;
nuTilda uniform 0;

frontandBack type symmetryPlane;

LESmodel oneEqEddy;
delta cubeRootVol;

I make sure the Courant number is at or below 0.2.

I understand that the above boundary conditions are not ideal for near-wall-modeling (wall functions) simulations, as usually, the velocity at the wall is expressed in terms of shear stress and mean velocity. However, after I tune the current case, I am looking to simulate a vibrating wing of chord 0.7 m with free-stream |V| ~~ 50-100 m/s at seal level. Given my cluster of 6 computers, near wall resolution may be too expensive.

The above case was adapted from the oodles/pitzDaily case. Would you recommed specifying the total pressure or a reference value for it?

This is the first time I work with LES, so forgive me if some of the above settings are blatantly wrong. I was wondering if you had any suggestions or comments.


Thank you in advance,

Alessandro Spadoni

eugene October 15, 2007 06:24

1. Slip boundaries should be w
 
1. Slip boundaries should be walls, not patches.
i.e.
top --> type wall;
irrelevant: physicalType slip;
U (file 0/U) slip;
p (file 0/p) zeroGradient;
k (file 0/k) zeroGradient;
irrelevant: B (file 0/B) slip;
nuSgs (file 0/nuSgs) nuSgsWallFunctions;
not used for this model: nuTilda (file 0/nuTilda) slip;

For a real wall, all you change is
U (file 0/U) fixedValue; value unfirm (0 0 0);

Basically, your boundary conditions are all wrong. The tutorial isn't much use unfortunately, because it was created with low Re mesh in mind.

2. Initial conditions: k should have a small positive value (1e-10)

3. delta: vanDriest - needed for poorly resolved near-wall meshes to provide the correct length scales.

Anyway, good luck.

maka October 17, 2007 11:53

Hi Eugene, Can you please e
 
Hi Eugene,

Can you please expain why slip should be used with wall and not patches. I use slip on patches for LES and it works fine. Also I got that information from the following thread (read "January 08, 2007" two messages).

The reason the I do not use wall instead of patch with slip b.c is that I use wall functions on some other wall that I have in the domain and there is interaction between specifying a surface as wall and the wall function (for example, distance from the wall is needed if wall function is used and is calculated when you specify the surface as wall. Please correct me if wrong). In brief, I use wall only if simple b.c. is used on a surface or a wall function is applied to it to avoid the interaction that I do not clearly understand.

http://www.cfd-online.com/OpenFOAM_D...es/1/3194.html

Please if this wrong, correct my information since I use such b.c. a lot. Thanks in advance.

Best regards,
Maka.

eugene October 18, 2007 05:10

You hit the nail on the head.
 
You hit the nail on the head.

If you do not specify a slip boundary to be a wall, no wall distance calculation is done. There are many turbulence models and other utilities which use distance from the wall as a length scale. What you are saying by making the slip boundary a patch is that the scale of the turbulence in the vicinity of the boundary has no relation to the proximity of that wall. This is clearly erroneous, as even a slip wall will restrict turbulent scales normal to the surface.

In general using a slip patch will not cause stability problems, but it will produce incorrect behavior for several RAS and LES turbulence models.

gtg627e October 18, 2007 11:19

Hi Eugene and Make, Just to
 
Hi Eugene and Make,

Just to summarize, my case is a flat plate and I have a region 1/2 the length of the plate in front of it. I use such region to avoid problems related to having a boundary layer at the inlet. What I would really like to do is to say that all variables in front of the flat plate are computed from the rest of the domain. Same thing for the top part of my domain. Can this be done, i.e can I use "calculated" boundary conditions in LES?

Furthermore, I have a couple of questions about inlet and outlet specifications:

I specify my inlet to be"turbulentInlet" with field variables:
k fixed value
value uniform 2e-5
nuSgs zeroGradient
B fixed value
uniform (0 0 0 0 0 0)
p zeroGradient
U turbulentInlet
fluctuationScale (0.02 0.01 0.01)
referenceField uniform(10 0 0)
value uniform (10 0 0)

I specify my outlet to be"inletOutlet" with field variables:
k inletOutlet
inletValue uniform 2e-5
value unifrom 0
nuSgs zeroGradient
B inletOutlet
inletValue uniform (0 0 0 0 0 0)
value uniform (0 0 0 0 0 0)
p fixedValue
value uniform 0
U inletOtlet
inletValue (10 0 0)
value (0 0 0)

Can I use extrapolated outlet in LES?
Could you comment on the above boundary conditions? Again, my goal is to simulate a flat plate in an unbounded domain.


Thank you for your help,

Alessandro

gtg627e October 19, 2007 16:02

Sorry Maka, I mespelled you na
 
Sorry Maka, I mespelled you name.....my apologies

gtg627e October 19, 2007 16:03

Sorry Maka, I mispelled your n
 
Sorry Maka, I mispelled your name.....my apologies.
I seem to have serious typing problems...

maka October 19, 2007 16:20

No problem Alessandro. I just
 
No problem Alessandro. I just do not have enough experience to answer you questions, espeially about inlet b.c. Thanks Eugene de Villiers for the explanation.

Best regards,
Maka.

gtg627e November 19, 2007 17:00

Dear Forum, just as an obse
 
Dear Forum,

just as an observation that I forgot to attach to the previous message, Uz velocity is indeed symmetric about the x-y plane. This gives me confidence that cyclic boundary conditions are being enforced correctly.


Thank you again,

Alessandro

gtg627e November 19, 2007 18:04

Sorry, I meant to say: "Uz
 
Sorry, I meant to say:

"Uz velocity is indeed cyclic about the x-y plane"

Alessandro

ehsan July 11, 2012 03:18

Hello

Could I kindly ask you whether applying "LES Model: laminar" in Les Property folder will create implicit LES in OPENFOAM? If no, how we should apply implicit LES in OPENFOAM?

Thanks in advance

Andy_bm April 6, 2015 09:04

Quote:

Originally Posted by eugene (Post 194194)
2. Initial conditions: k should have a small positive value (1e-10)

Can you explain why initial conditions for k should have small value? And how to calculate initial conditions for k?

msuaeronautics April 9, 2015 11:27

Quote:

Originally Posted by Andy_bm (Post 540140)
Can you explain why initial conditions for k should have small value? And how to calculate initial conditions for k?

K should always tend to zero at the wall, as it represents your modeled portion of turbulence kinetic energy. In the case of LES, K is the (modeled) turbulence energy of the subgrid scales. Since velocity -> 0 as we get down to the wall, so should the energy.

Andy_bm April 9, 2015 13:38

Thanks,

What about nusgs near wall? Maybe there is a ratio between nusgs and nu? In oneeqeddy nusgs = c*delta*sqrt(k). If k -> 0, delta -> 0 as y+ ~ 1 => nusgs -> 0.But nusgs may varried depending on k and y+.And I don't understand what value of nusgs should be near wall.

msuaeronautics April 9, 2015 14:09

Quote:

Originally Posted by Andy_bm (Post 540862)
Thanks,

What about nusgs near wall? Maybe there is a ratio between nusgs and nu? In oneeqeddy nusgs = c*delta*sqrt(k). If k -> 0, delta -> 0 as y+ ~ 1 => nusgs -> 0.But nusgs may varried depending on k and y+.And I don't understand what value of nusgs should be near wall.

nuSgs -> 0

is the correct BC for the wall (if, for nothing else, the equation you wrote there) and really is the only reasonable one.

How nuSgs varies as we start to move away from the wall (as y+ increases) depends on your method. You could either be using a wall function for nuSgs or you could have a sufficiently fine grid (suspect this would be the case for most people using LES) to properly represent it.

Please let me know if I'm not being clear.

Andy_bm April 9, 2015 15:19

Now I have BC on wall for nusgs - zeroGradient, so I must set fixedValue = 0 if y+ ~ 1?
Sorry,I don't understand initial condition for k on WALL must be near 0 or initial condition on INLET must ~ 0?

msuaeronautics April 9, 2015 15:34

Quote:

Originally Posted by Andy_bm (Post 540874)
Now I have BC on wall for nusgs - zeroGradient, so I must set fixedValue = 0 if y+ ~ 1?
Sorry,I don't understand initial condition for k on WALL must be near 0 or initial condition on INLET must ~ 0?

No need to apologize.
Yes, for nuSgs and y+ ~1, you may use nuSgs_WALL ~ 0.
Your condition for K_WALL should also be near 0.

I am assuming you are using 1-equation eddy. The condition for inlet can be K_INLET ~ 1e-5 or 1e-6. In other words, some small value but not zero. It really depends on your case. The only time I've used 1-equation eddy I used that condition and got good results.

Andy_bm April 9, 2015 15:58

Thanks for your answers!

My case is flow past cylinder.I have mesh with y+ 0.1-1. And I have following problem if I use k_inlet~0.96 (1.5(UI)^2) -> Cd ~0.8. if k_inlet~0.01-0.0001 -> Cd~0.3 but in experiment Cd~0.55+-.

msuaeronautics April 9, 2015 16:01

Quote:

Originally Posted by Andy_bm (Post 540879)
Thanks for your answers!

My case is flow past cylinder.I have mesh with y+ 0.1-1. And I have following problem if I use k_inlet~0.96 (1.5(UI)^2) -> Cd ~0.8. if k_inlet~0.01-0.0001 -> Cd~0.3 but in experiment Cd~0.55+-.

How are you calculating Cd? Are you using an ensemble average of a list of outputs?

Andy_bm April 9, 2015 16:23

I use libforces.lib and then plot result in labplot.For k~0.96 pulsation of coeffs occur near 0.8, for small k near 0.3.End time is sufficiently large.

msuaeronautics April 9, 2015 16:34

Quote:

Originally Posted by Andy_bm (Post 540888)
I use libforces.lib and then plot result in labplot.For k~0.96 pulsation of coeffs occur near 0.8, for small k near 0.3.End time is sufficiently large.

That makes sense.

I have done study on sphere using DDES. I take the time average of the flow and compute the drag from the sum of pressure and viscous forces acting on the body from the mean solution. Maybe you could try that also for comparison. Drag gets a little tricky when using libforces, especially for an unsteady simulation.

Andy_bm April 11, 2015 00:12

And what scheme for grad and div(phi,U) did you use?

msuaeronautics April 11, 2015 21:07

Quote:

Originally Posted by Andy_bm (Post 541105)
And what scheme for grad and div(phi,U) did you use?

Based on my studies, limitedLinear works pretty well for DES. Avoid the upwind/2nd order upwind schemes like the plague. I use a k value of 0.1-0.3 based on trial and error using a simple case; i.e.

Gauss limitedLinear 0.3;

Andy_bm May 18, 2015 11:53

What about internalField for k? Did you set this = k_inlet value or 0?

msuaeronautics May 18, 2015 11:55

Quote:

Originally Posted by Andy_bm (Post 546738)
What about internalField for k? Did you set this = k_inlet value or 0?

I usually set this equal to k_inlet.

openfoammaofnepo November 28, 2015 13:41

Dear Eugene,

Thank you for this suggestions. Do you know any papers or threads in which the LES results from linear and this filteredLinear2V for convection scheme are compared or validated? In the latter, we have two parameters that can be adjusted: "filteredLinear2V 0.2 0". If the first one (0.2 here) is small, this scheme seems equilevant to the linear. The comments from the source file are:
Code:

  // Scaling corefficient for the gradient ratio,
        // 0 = linear
        // 1 = fully limited

For the second parameter, in the source files, we have the following comments:
Code:

  // Maximum allowed overshoot/undershoot relative to the difference
        // across the face.
        // On input:
        //    0 = no overshoot/undershoot
        //    1 = overshoot/undershoot equal to the difference across the face
        // Note: After input 1 is added to l_

I am not sure I completely understand this usage of the second parameter. Could you please give an example? Thanks.

The link for the source file is here:
Code:

https://github.com/OpenFOAM/OpenFOAM-2.1.x/blob/master/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear2/filteredLinear2V.H
Thanks.

tiam July 31, 2017 14:30

Quote:

Originally Posted by openfoammaofnepo (Post 575373)
Dear Eugene,

Thank you for this suggestions. Do you know any papers or threads in which the LES results from linear and this filteredLinear2V for convection scheme are compared or validated? In the latter, we have two parameters that can be adjusted: "filteredLinear2V 0.2 0". If the first one (0.2 here) is small, this scheme seems equilevant to the linear. The comments from the source file are:
Code:

  // Scaling corefficient for the gradient ratio,
        // 0 = linear
        // 1 = fully limited

For the second parameter, in the source files, we have the following comments:
Code:

  // Maximum allowed overshoot/undershoot relative to the difference
        // across the face.
        // On input:
        //    0 = no overshoot/undershoot
        //    1 = overshoot/undershoot equal to the difference across the face
        // Note: After input 1 is added to l_

I am not sure I completely understand this usage of the second parameter. Could you please give an example? Thanks.

The link for the source file is here:
Code:

https://github.com/OpenFOAM/OpenFOAM-2.1.x/blob/master/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear2/filteredLinear2V.H
Thanks.


This is an old thread but I would like to revive it. I assume much more people have done LES on OF by now. Any developments on convective schemes? As for filteredLinear, we have 5 to choose from (including the V variants) and also a bunch of parameters. Any guidelines/suggestions?


All times are GMT -4. The time now is 02:06.