CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Bugs (https://www.cfd-online.com/Forums/openfoam-bugs/)
-   -   Compressible kOmegaSST (https://www.cfd-online.com/Forums/openfoam-bugs/62339-compressible-komegasst.html)

sandy March 18, 2010 07:22

Quote:

Originally Posted by henry (Post 239697)
Provides a wall function boundary condition/constraint on omega

Computed value is:

omega = sqrt(omega_vis^2 + omega_log^2)

where
omega_vis = omega in viscous region
omega_log = omega in logarithmic region

Model described by Eq.(15) of:
@verbatim
Menter, F., Esch, T.
"Elements of Industrial Heat Transfer Prediction"
16th Brazilian Congress of Mechanical Engineering (COBEM),
Nov. 2001
@endverbatim

H


Hi Henry, I still don't know how to give the boundary on omega, because I can not get the paper. Could you send me a copy about the paper or the detailed formulum about the boundary? Thanks.

Sandy
sandy.lee37@gmail.com

bastil March 26, 2010 12:09

I get segfaults when using nutSpalartAllmarasWallFunction in combination with k-omega SST (and also with kEpsilon):

Reading/calculating face flux field phi

Code:

Selecting incompressible transport model Newtonian
Selecting RAS turbulence model kEpsilon
#0  Foam::error::printStack(Foam::Ostream&) in "/opt/OpenFOAM/OpenFOAM-1.6.x/lib/linux64GccDPOpt/libOpenFOAM.so"
#1  Foam::sigFpe::sigFpeHandler(int) in "/opt/OpenFOAM/OpenFOAM-1.6.x/lib/linux64GccDPOpt/libOpenFOAM.so"
#2  ?? in "/lib64/libc.so.6"
#3  Foam::divide(Foam::Field<double>&, Foam::UList<double> const&, Foam::UList<double> const&) in "/opt/OpenFOAM/OpenFOAM-1.6.x/lib/linux64GccDPOpt/libOpenFOAM.so"
#4  Foam::operator/(Foam::tmp<Foam::Field<double> > const&, Foam::UList<double> const&) in "/opt/OpenFOAM/OpenFOAM-1.6.x/lib/linux64GccDPOpt/libOpenFOAM.so"
#5  Foam::incompressible::RASModels::nutSpalartAllmarasWallFunctionFvPatchScalarField::calcNut() const in "/opt/OpenFOAM/OpenFOAM-1.6.x/lib/linux64GccDPOpt/libincompressibleRASModels.so"
#6  Foam::incompressible::RASModels::nutWallFunctionFvPatchScalarField::updateCoeffs() in "/opt/OpenFOAM/OpenFOAM-1.6.x/lib/linux64GccDPOpt/libincompressibleRASModels.so"
#7  Foam::fvPatchField<double>::evaluate(Foam::Pstream::commsTypes) in "/opt/OpenFOAM/OpenFOAM-1.6.x/applications/bin/linux64GccDPOpt/simpleFoam"
#8  Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::GeometricBoundaryField::evaluate() in "/opt/OpenFOAM/OpenFOAM-1.6.x/applications/bin/linux64GccDPOpt/simpleFoam"
#9  Foam::incompressible::RASModels::kEpsilon::kEpsilon(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&) in "/opt/OpenFOAM/OpenFOAM-1.6.x/lib/linux64GccDPOpt/libincompressibleRASModels.so"
#10  Foam::incompressible::RASModel::adddictionaryConstructorToTable<Foam::incompressible::RASModels::kEpsilon>::New(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&) in "/opt/OpenFOAM/OpenFOAM-1.6.x/lib/linux64GccDPOpt/libincompressibleRASModels.so"
#11  Foam::incompressible::RASModel::New(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&) in "/opt/OpenFOAM/OpenFOAM-1.6.x/lib/linux64GccDPOpt/libincompressibleRASModels.so"
#12  main in "/opt/OpenFOAM/OpenFOAM-1.6.x/applications/bin/linux64GccDPOpt/simpleFoam"
#13  __libc_start_main in "/lib64/libc.so.6"
#14  __gxx_personality_v0 in "/opt/OpenFOAM/OpenFOAM-1.6.x/applications/bin/linux64GccDPOpt/simpleFoam"
Floating point exception

I have no idea what is going wrong there. Maybe my setup is wrong....

bastil March 29, 2010 04:25

I can reproduce this behaviour for the boundaryFoam Tutorial:
replace nutWallFunction with nutSpalartAllmarasWallFunction
in boundaryFoam/boundaryWallFunctions/0/nut and you will geht this crash...
I guess there is something wrong with my setup? Are there further changes needed?

Thanks Bastian

chelvistero April 21, 2010 04:32

I get the same failure when I use "nutSpalartAllmarasWallFunction"! How can I eliminate this crash?

vaina74 April 21, 2010 09:23

Please, I have some questions about implementation of \kappa-\omega SST turbulent model and wall functions. I hope Mr Weller can answer to me.

1. In most papers or threads of this forum I read that, when a wall function is used, y+ must be greater than 30, if possible closed to 30, so wall-adjacent first cells centroid is located within the log-law layer. But someone, with \kappa-\omega SST, sets y+ above 11. Is it correct? Why? I can't find theoretical support for that.

2. Must I set initial condition for nut, as in motorBike tutorial? Even if I do not, my case works and C_L or C_D values seem good. Anyway, after the code running I find a nut file in my time folders, so I think it's calculated.

3. I'm in trouble with inlet boundary conditions for \omega. In FLUENT manual and other papers I read
\omega=\frac{\kappa}{\nu_t}
but I find also
\omega=\frac{0.09\cdot\kappa}{\nu_t}
In other words, my question is:
\omega=\frac{\epsilon}{0.09\cdot\kappa}
or
\omega=\frac{\epsilon}{\kappa}?

4. I set

Code:

wall
{
    type    omegaWallFunction;
    value    uniform ***;
}

with *** as internalField value. Is it wrong? Is there a better way to evaluate initial wall value for \omega?

Thanks for your help.

ivan_cozza April 28, 2010 14:13

Quote:

Originally Posted by henry (Post 239149)
I am referring to nutSpalartAllmarasWallFunction for incompressible flow and mutSpalartAllmarasWallFunction for compressible flow. Even though these were created for use with the Spalart-Allmaras model they are not dependent on this particular model in any way being generic implementations of the Spalding continuous wall-function using U rather than k as the controlling variable and can be used with other turbulence models.

We tested the kOmegaSST model with the nutSpalartAllmarasWallFunction wall-function and obtained good results, as good as others have obtained with adaptive/continuous wall-functions.

H

A question on using mutSpalartAllmarasWallFunction:
When I use it in a adaptive fashon (let's say, my y+ is in between 1 and 15), I have to set k to fixedValue 1e-12, or I can set it to wallFunction as well?

Thanks,
Ivan

sandy April 28, 2010 19:45

Quote:

Originally Posted by vaina74 (Post 255637)
Please, I have some questions about implementation of \kappa-\omega SST turbulent model and wall functions. I hope Mr Weller can answer to me.

1. In most papers or threads of this forum I read that, when a wall function is used, y+ must be greater than 30, if possible closed to 30, so wall-adjacent first cells centroid is located within the log-law layer. But someone, with \kappa-\omega SST, sets y+ above 11. Is it correct? Why? I can't find theoretical support for that.

2. Must I set initial condition for nut, as in motorBike tutorial? Even if I do not, my case works and C_L or C_D values seem good. Anyway, after the code running I find a nut file in my time folders, so I think it's calculated.

3. I'm in trouble with inlet boundary conditions for \omega. In FLUENT manual and other papers I read
\omega=\frac{\kappa}{\nu_t}
but I find also
\omega=\frac{0.09\cdot\kappa}{\nu_t}
In other words, my question is:
\omega=\frac{\epsilon}{0.09\cdot\kappa}
or
\omega=\frac{\epsilon}{\kappa}?

4. I set

Code:

wall
{
    type    omegaWallFunction;
    value    uniform ***;
}

with *** as internalField value. Is it wrong? Is there a better way to evaluate initial wall value for \omega?

Thanks for your help.

Hi vaina74, I think you should use a smaller Beta = nu_t / nu (about 0.1 ~0.2). I guess, by analyzing the physics mechanics, you can explain why, right?

vaina74 April 29, 2010 06:13

I'm not sure but in FLUENT guidelines and other papers \beta is 1-10 for \kappa-\epsilon and \kappa-\omega turbulence models (external flow). Maybe it doesn't matter, if boundaries are far away. I think \kappa-\omega SST has a \kappa-\epsilon approach far from the wall, so the turbulent model is not so sensitive to the inlet turbulent quantities.

sandy April 29, 2010 07:17

But, in my case about an external flow, I could not get convergent solutions to Beta equal 1~10 ...

If Beta = 1~10, it means the turbulence nu_t > nu. Is it really reasonable to turbulence flows?

vaina74 April 29, 2010 11:24

Sorry, I'm a beginner and maybe I can't help you. What turbulence model do you apply? Which are your boundary condition? Is your mesh a bad or good one, what's your y+?
I got in troubles with \kappa-\epsilon model, perhaps problems as yours. But now I'm focusing on \kappa-\omega SST model and it seems to work fine (I need it for a later propeller simulation), so I gave up with other turbulence models.

bastil July 3, 2010 17:48

Quote:

Originally Posted by henry (Post 239786)
In the next release we will rename nutSpalartAllmarasWallFunction to nutUSpaldingWallFunction to make it clear that it is a general purpose continuous wall-function using U as the defining variable.

H

Henry,

I could not find a nutUSpaldingWallFunction in 1.7?
However, nutSpalartAllmarasWallFunction still exists(?) and the release notes tell me:
  • New nutWallFunction continuous wall function,
  • New nutLowReWallFunction continuous wall function,
So both are continuous where is the difference? Which to use for a mesh with y+>30 everywhere, y+<1 everywhere and a all y+ mesh? Thanks.

Regards Bastian

henry July 3, 2010 18:18

nutSpalartAllmarasWallFunction has not been renamed yet but it will be. For this release we decided to maintain backward-compatibility with 1.6.x on this and a few other issues.

> New nutWallFunction continuous wall function

Sorry this is a mistake in the release notes I will correct it. nutWallFunction is the high-Re wall-function based on k.

The nutLowReWallFunction is the missing wall-function implementation for the low-Re models, it is not "continuous", again I will correct the release notes. If having a "continuous" wall-function for the low-Re models would be useful it could easily be created in the same manner as the nutLowReWallFunction

H

maddalena July 5, 2010 09:10

Thus:
Quote:

Originally Posted by henry (Post 265601)
  • nutWallFunction is the continuous ... high-Re wall-function based on k.
  • nutLowReWallFunction is the missing wall-function implementation for the low-Re models, it is not "continuous"

In that case, does the usual y+ rule apply? 30<y+<100 for nutWallFunction and y+<1 for nutLowReWallFunction I mean... Or:

Quote:

Originally Posted by bastil (Post 265600)
Which to use for a mesh with y+>30 everywhere, y+<1 everywhere and a all y+ mesh?

Thanks,

mad

henry July 5, 2010 09:12

If your near-wall y+<1 everywhere you can use a low-Re model; you don't need wall-functions at all.

H

maddalena July 5, 2010 09:19

Quote:

Originally Posted by henry (Post 265756)
If your near-wall y+<1 everywhere you can use a low-Re model; you don't need wall-functions at all.
H

That sounds good. So when am I going to use a nutLowReWallFunction?
  • High-Re: nutWallFunction + highRe turbulence model -> 30<y+<100
  • Low-Re: no wall function + low Re turbulence model -> y+<1
  • ???: nutLowReWallFunction + lowRe turbulence model --> ???
Sorry if I insist, but this new nutLowReWallFunction is a bit confusing for me...

mad

henry July 5, 2010 09:53

nutLowReWallFunction is to be used with low-Re models on walls for which y+>1.

H

maddalena July 5, 2010 10:01

Quote:

Originally Posted by henry (Post 265768)
nutLowReWallFunction is to be used with low-Re models on walls for which y+>1.

H

Perfect! Thank you!

mad

ivan_cozza July 6, 2010 03:52

Just to clear my mind,

is nutLowReWallFunction ok if I use the k-Omega SST model on a wall that somewhere has a resolution of y+ O(1) and somewhere else O(10)?
That's something similar to what starccm+ do with its "all y+" wall treatment...

Thanks, Ivan

henry July 6, 2010 04:34

nutLowReWallFunction is for low-Re models, k-Omega SST isn't. You need the continuous wall-function currently called nutSpalartAllmarasWallFunction, see previous posts.

H

Peter85 September 19, 2010 08:24

Hey @ all!

This all is a little bit confusing to me:
I have to simulate a case(turbulent, compressible, rhosimple solver) using the k-omega-sst model. Now, If i have a mesh with y+>30, I need to use wall functions, thats clear. But, If I have a mehs y+<1(low-re), and I'd like to use the k-omega-sst modell, what boundary conditions for the walls do I have to take? Zerogradient for omega and k with very low values (10^-8), and calculated for alphat and mut (or other values?)? Or do I have to take a wall function (like mutlowrewallfunction) for one of those?


I tried several approaches (y+30 mesh with wall functions => not very good results, probably because of the coarse mesh; y+1 mesh with wall functions: almost good results, but not good enough, I guess because the mesh is for low-re models, so I get trouble in this region; y+1 mesh with omega and k set to zero gradient, value 10^-8, completely wrong results)

I'm a new user of OpenFoam, and I also never did CFD-Simulations before, so I only have little experience and not much knowledge about those equations, please excuse this. I hope somebody is able to help me.

Thank you very much!


All times are GMT -4. The time now is 14:32.