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/)
-   -   LES (https://www.cfd-online.com/Forums/openfoam-solving/58043-les.html)

achinta June 20, 2012 12:49

Hello everyone,
Trying to improve my case I implemented the following changes in fvSchemes:
------
ddtSchemes
{
default backward;
}

gradSchemes
{
default Gauss linear;
grad(p) Gauss linear;
grad(U) Gauss linear;
}

divSchemes
{
default none;
div(phi,U) Gauss linearUpwindV grad(U);
div(phi,k) Gauss upwind;
div(phi,B) Gauss limitedLinear 1;
div(phi,nuTilda) Gauss limitedLinear 1;
div(B) Gauss linear;
div((nuEff*dev(T(grad(U))))) Gauss linear;
}

laplacianSchemes
{
default none;
laplacian(nuEff,U) Gauss linear limited 0.333;
laplacian((1|A(U)),p) Gauss linear limited 0.333;
laplacian(DkEff,k) Gauss linear limited 0.333;
laplacian(DBEff,B) Gauss linear limited 0.333;
laplacian(DnuTildaEff,nuTilda) Gauss linear limited 0.333;
}

interpolationSchemes
{
default linear;
interpolate(U) linear;
}

snGradSchemes
{
default limited 0.333;
}

fluxRequired
{
default no;
p ;
}
-----------------------
I tried all variants of OneEqEddy LES model (cubeRootVol, vanDriest, smooth) with the above corrections. The solution diverges after 100 time steps.

Then i made some change:
-----
gradSchemes
{
default cellLimited Gauss linear 1;
grad(p) cellLimited Gauss linear 1;
grad(U) cellLimited Gauss linear 1;
}

divSchemes
{
default none;
div(phi,U) Gauss filteredLinear2V 0.5 0;
div(phi,k) Gauss linearUpwind grad(k);
div(phi,B) Gauss limitedLinear 1;
div(phi,nuTilda) Gauss limitedLinear 1;
div(B) Gauss linear;
div((nuEff*dev(T(grad(U))))) Gauss linear;
}
------
Other schemes remain the same. The solution blows up even faster (arond 30 time steps).

Could anybody tell what the problem is?


Kind regards,
Achinta

achinta June 20, 2012 12:52

Hi Rob,
Please let me know what specific information you need (except for the mesh, which is confidential :) ).

Kind regards,
Achinta

curiosity October 5, 2012 08:16

Hi,

I´m also interested on this topic?

Did anyone got the answer to Roland´s question?

Bernhard October 5, 2012 08:35

The logfile can give some information. Can you show part of the logfile, where the divergence occurs?

curiosity October 5, 2012 10:46

Quote:

Originally Posted by Bernhard (Post 385092)
The logfile can give some information. Can you show part of the logfile, where the divergence occurs?

Sorry Bernhard, I wrote at the wrong thread :S

kentriarch October 21, 2012 05:12

Hi all,

Am new here. I am looking to implement a 2-part eddy viscosity model as outlined by Sullivan et al (1994) www.mmm.ucar.edu/people/sullivan/talks/papers/sgs.pdf

Currently, I am thinking of using pimpleFoam solver and have been looking at modifying the oneEqEddy LES model, changing the divDevbeff in GenEddyVisc.C to the appropriate formulation of tau_ij. However, I am running into several issues:

1. How to get the homogeneous averages for <S_ij>, <u>, <v> during runTime as I need these values for each time-step

2. I am still unsure if using pimpleFoam is ideal, even if I want to neglect the effects of temperature and hence the buoyancy effect

Anyway, I would appreciate any pointers from you guys if any of you have attempted to do this implementation. Thanks a lot.

vonboett October 23, 2012 05:17

Quote:

Originally Posted by kentriarch (Post 387735)
Hi all,

Am new here. I am looking to implement a 2-part eddy viscosity model as outlined by Sullivan et al (1994) www.mmm.ucar.edu/people/sullivan/talks/papers/sgs.pdf

Currently, I am thinking of using pimpleFoam solver and have been looking at modifying the oneEqEddy LES model, changing the divDevbeff in GenEddyVisc.C to the appropriate formulation of tau_ij. However, I am running into several issues:

1. How to get the homogeneous averages for <S_ij>, <u>, <v> during runTime as I need these values for each time-step

2. I am still unsure if using pimpleFoam is ideal, even if I want to neglect the effects of temperature and hence the buoyancy effect

Anyway, I would appreciate any pointers from you guys if any of you have attempted to do this implementation. Thanks a lot.

Have you taken a look at the LTT-Rostock OpenFOAM extensions? Matthias Walter has developed several dynamic subgridscale models for OpenFOAM and you can find the source code on their repository, there it should be possible to find code snippets you could use. (By the way, I strongly recommend the DMM SGS model)

kentriarch October 23, 2012 06:15

Quote:

Originally Posted by vonboett (Post 388076)
Have you taken a look at the LTT-Rostock OpenFOAM extensions? Matthias Walter has developed several dynamic subgridscale models for OpenFOAM and you can find the source code on their repository, there it should be possible to find code snippets you could use. (By the way, I strongly recommend the DMM SGS model)

Nope, I have not, but thanks for the recommendations and I will look in them!

nichkoohi January 13, 2013 19:13

Quote:

Originally Posted by grandgo (Post 314886)
hi gregor,

yes, it was my worry, that it has something do to with my domain not being cube-shaped. thanks anyway.

best regards
grandgo

HI GREGOR and grando
i copied and do wmake your code above. my case is rectangular(3d). i want to :
1: write the E-K in one dimentional in space
2: write the E-K in one dimentional in time
3: write the E-K in 3 dimentional in space
4: write the E-K in 3 dimentional in time
how can i do it?
thank u in advance sir
lohrasbi2013@gmail.com

gregor January 17, 2013 07:11

Hi Lohrasbi,

for the E-K in space you can have a look at how it is done in the dnsFoam solver. In principle you could use:

Code:

#include "Kmesh.H"
#include "calcEk.H"

Kmesh K(mesh);
calcEk(U, K).write(runTime.timePath()/"UEk", runTime.graphFormat());

this will give you the E-K of the whole domain (for the three components of U). If you want E-K of a single velocity component you could just create a vector with three identical components (e.g Ux[0]=U[0], Ux[1]=U[0],Ux[2]=U[0]) and then use calcEk(Ux,K) and divide the result by three (hope thats correct). For E-K over time you mean E-K at a specific point of the domain, right ?

Alhasan December 19, 2013 15:46

Hi all,

I am using this mapped value of fields from a setup to simulate flow around an airfoil,

now for this particular case, when i use RANS i map the Nut field because it is non-uniform on the top and bottom of the airfoil, so to get accurate results i have to map it.

now when i want to perform LES ? what do i do, do i map the nuSgs field ? if so how because I am mapping from a RANS simulation and it does not have nuSgs field

or do i just map the Nut and change its name to nuSgs and the dimensions !!! ? does it work like that ? do they have any similar relation

Thanks for your time,
Regards,
Hasan K.J

wyldckat December 26, 2013 15:23

Greetings to all!

@Hasan: AFAIK, when LES is involved, what usually is done is to first run the simulation with a steady-state solver with LES; then run a transient solver with LES as well. One such tutorial in OpenFOAM that demonstrates this, is this one: "incompressible/pisoFoam/les/motorBike"

If you need to pass RAS fields to LES ... either you'll need an utility that calculates an estimate from the RAS fields to LES fields, or you'll have to create one yourself.
Have a look into this utility "applications/utilities/postProcessing/turbulence/createTurbulenceFields" - it's meant for creating RAS turbulence fields, but perhaps you can create a similar utility for LES... because I'm not aware of any existing already...
Wait, apparently someone already created the utility "createTurbulenceFieldsLES": http://www.cfd-online.com/Forums/ope...ields-les.html


Beyond this, the turbulence fields are usually calculated from the pressure and velocity fields, using the initial turbulence fields only as a reference. Therefore, you don't need to specifically map the LES related turbulence fields... you just need to give non-ridiculous initial values for the turbulence fields and after some iterations it should be able to sort things out on its own.

Best regards,
Bruno


edit: conversation on the related topic to Hasan's case is here: http://www.cfd-online.com/Forums/ope...-openfoam.html

palmerlee February 26, 2014 20:35

Quote:

Originally Posted by eugene (Post 187631)
np.

p=0 and small k is fine.
nuSgs doesn't matter because it is calculated from k and delta.

Hi, Eugene!

The y+ is smaller than 2 in my case which is a LES simulation. I set k a small value (1e-5) at the inlet boundary. How should I set k at the wall boundary?

Best regards,
Peter

ArathoN May 22, 2014 07:13

Quote:

Originally Posted by palmerlee (Post 477006)
Hi, Eugene!

The y+ is smaller than 2 in my case which is a LES simulation. I set k a small value (1e-5) at the inlet boundary. How should I set k at the wall boundary?

Best regards,
Peter

The turbulent kinetic energy is null at the walls. And for the value at the inlet you can define it after considering a turbulence intensity of 5÷7% then knowing U it's easy to calculate it.

RodriguezFatz May 22, 2014 07:44

Quote:

Originally Posted by ArathoN (Post 493561)
The turbulent kinetic energy is null at the walls.

Right, but set it to some really low number (such as 1e-12) at the wall in OpenFoam. At some places OpenFoam divides by "k", so setting it to "0.0" will result in an error. Now, a really low value will give a correct division, but is pratically zero for all multiplications.

anishtain4 March 1, 2016 13:44

Hi everyone,

I know this thread has not been active for a while but I guess this is the most related topic so I'm going to post here.
I'm running the channel flow LES which is now under pimpleFoam. The tutorial case runs well but my trouble is that I need the structures which are being compromised in the current domain as mentioned in Eugene's thesis. When I extend the length of the domain (and consequently the grid numbers) the profiles are not valid any more. Even though the bulk velocity, CFL, and Retaw and everything else should be the same. I think is is coming from the initial conditions. Does anyone else has experience with this?

tiam March 1, 2016 13:53

Quote:

Originally Posted by anishtain4 (Post 587595)
Hi everyone,

I know this thread has not been active for a while but I guess this is the most related topic so I'm going to post here.
I'm running the channel flow LES which is now under pimpleFoam. The tutorial case runs well but my trouble is that I need the structures which are being compromised in the current domain as mentioned in Eugene's thesis. When I extend the length of the domain (and consequently the grid numbers) the profiles are not valid any more. Even though the bulk velocity, CFL, and Retaw and everything else should be the same. I think is is coming from the initial conditions. Does anyone else has experience with this?

Hello!
I am not sure I understood what the problem is, what do you mean by "the profiles are not valid any more"? Your results don't compare well with dns?

For the initial conditions, you can use the perturbU
https://github.com/wyldckat/perturbU

Some other tips based on my experience.
  • Ditch the SGS model. Specifically, Smagorinsky and oneEqEddy only make things worse, even though van Driest damping does imporve things significantly. Other models are tried were on par with not having a model at all.
  • A grid with delta x+=25 and delta z+ =10, and a good amount of points along y, with y+=1 should give very nice results.

clktp March 4, 2016 05:48

What do you mean extend the length of domain? If you extend it in streamwise direction, it should be fine, for other directions it fails if I remember the case correctly.

anishtain4 March 14, 2016 08:53

Quote:

Originally Posted by tiam (Post 587597)
Hello!
I am not sure I understood what the problem is, what do you mean by "the profiles are not valid any more"? Your results don't compare well with dns?

For the initial conditions, you can use the perturbU
https://github.com/wyldckat/perturbU

Some other tips based on my experience.
  • Ditch the SGS model. Specifically, Smagorinsky and oneEqEddy only make things worse, even though van Driest damping does imporve things significantly. Other models are tried were on par with not having a model at all.
  • A grid with delta x+=25 and delta z+ =10, and a good amount of points along y, with y+=1 should give very nice results.

I tried multiple tests. In all of which the grid was fine enough (y+=0.6, z+=20, z+=10) and CFL<0.5. But my results were still off (not in agreement with theory or dns). I came to realizes when I change the domain size and use the perturbUChannel the perturbations are being damped! I tried the perturbUChannel with the tutorial case and it does not work!!! I've tried OF 2.4 and 3.0.

Quote:

Originally Posted by clktp (Post 588018)
What do you mean extend the length of domain? If you extend it in streamwise direction, it should be fine, for other directions it fails if I remember the case correctly.

If the grid size, CFL, and Re are in the range it should work for any setting.


All times are GMT -4. The time now is 03:27.