|
[Sponsors] |
RANS FX63-137: kKlOmega and kOmegaSST models |
![]() |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
![]() |
![]() |
#1 |
New Member
Pierluigi Rossi
Join Date: Jul 2014
Location: Milan
Posts: 15
Rep Power: 12 ![]() |
Dear Foamers,
I am trying to compute the polar data for the Wortmann FX63-137 at Reynolds number 500000, both in the fully turbulent regime (using kOmegaSST turbulence model) and with the lam-turb transition model (using kKlOmega turbulence model). I would like to obtain the polar data measured by Selig and McGranahan in [1], figs. 17-18. My questions concern the numerical schemes and the solvers that are recommended to use. Starting from the kOmegaSST run, I would like to ask to you which solvers do you use in your similar cases for the fields U, p, k, omega? This is my fvSolution file: Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.3.1 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSolution; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { p { solver PCG; preconditioner DIC; relTol 0.1; } U { solver BICCG; preconditioner DILU; relTol 0.1; } k { solver BICCG; preconditioner DILU; relTol 0.1; } omega { solver BICCG; preconditioner DILU; relTol 0.1; } } SIMPLE { nNonOrthogonalCorrectors 3; pRefCell 0; pRefValue 0; residualControl { p 1e-7; U 1e-7; k 1e-7; omega 1e-7; } } relaxationFactors { fields { p 0.3; } equations { U 0.7; k 0.7; omega 0.7; } } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.3.1 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object fvSchemes; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // ddtSchemes { default steadyState; } gradSchemes { default Gauss linear; grad(U) cellLimited Gauss linear 1; } divSchemes { default none; div(phi,U) bounded Gauss linearUpwindV grad(U); div(phi,k) bounded Gauss upwind; div(phi,omega) bounded Gauss upwind; div((nuEff*dev(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } fluxRequired { default no; p; } // ************************************************************************* // Despite the kKlOmega run, I would like to ask if someone has some hints about schemes and solvers for this model. Below my fvSchemes and fvSolution files: Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.3.1 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSchemes; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // ddtSchemes { default steadyState; } gradSchemes { default Gauss linear; } divSchemes { default none; div(phi,U) bounded Gauss upwind grad(U); div(phi,kt) bounded Gauss upwind; div(phi,kl) bounded Gauss upwind; div(phi,omega) bounded Gauss upwind; div((nuEff*dev(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } fluxRequired { default no; p ; } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.3.1 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSolution; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { p { solver PCG; preconditioner DIC; relTol 0.1; } U { solver BICCG; preconditioner DILU; relTol 0.1; } kt { solver BICCG; preconditioner DILU; relTol 0.1; } kl { solver BICCG; preconditioner DILU; relTol 0.1; } omega { solver BICCG; preconditioner DILU; relTol 0.1; } } SIMPLE { nNonOrthogonalCorrectors 3; pRefCell 0; pRefValue 0; residualControl { p 1e-7; U 1e-7; kt 1e-7; kl 1e-7; omega 1e-7; } } relaxationFactors { fields { p 0.3; } equations { U 0.7; kt 0.7; kl 0.7; omega 0.7; } } // ************************************************************************* // Here the checkMesh result: Code:
Create time Create polyMesh for time = 0 Time = 0 Mesh stats points: 483344 internal points: 0 faces: 961357 internal faces: 478013 cells: 239895 faces per cell: 6 boundary patches: 4 point zones: 0 face zones: 0 cell zones: 0 Overall number of cells of each type: hexahedra: 239895 prisms: 0 wedges: 0 pyramids: 0 tet wedges: 0 tetrahedra: 0 polyhedra: 0 Checking topology... Boundary definition OK. Cell to face addressing OK. Point usage OK. Upper triangular ordering OK. Face vertices OK. Number of regions: 1 (OK). Checking patch topology for multiply connected surfaces... Patch Faces Points Surface topology airfoil 1777 3554 ok (non-closed singly connected) frontAndBack 479790 483344 ok (non-closed singly connected) inflow 896 1794 ok (non-closed singly connected) outflow 881 1764 ok (non-closed singly connected) Checking geometry... Overall domain bounding box (-87.0591 0 -87.8402) (87.8918 1 87.2957) Mesh (non-empty, non-wedge) directions (1 0 1) Mesh (non-empty) directions (1 0 1) All edges aligned with or perpendicular to non-empty directions. Boundary openness (-4.70703e-18 3.51173e-15 4.37863e-19) OK. Max cell openness = 1.7516e-15 OK. Max aspect ratio = 105.345 OK. Minimum face area = 2.27894e-09. Maximum face area = 7.93032. Face area magnitudes OK. Min volume = 2.27894e-09. Max volume = 2.33894. Total volume = 24065.3. Cell volumes OK. Mesh non-orthogonality Max: 18.5434 average: 0.720871 Non-orthogonality check OK. Face pyramids OK. Max skewness = 1.45155 OK. Coupled point location match (average 0) OK. Mesh OK. End I have obtained an under predicte CL and over predicted CD, both with kOmegaSST and kKlOmega. Do you have some suggestions in order to improve my RANS simulations? Thank you so much for the help and I hope to be clear enough. Pier References: [1] Selig, M.S., and McGranahan, B.D., “Wind Tunnel Aerodynamic Tests of Six Airfoils for Use on Small Wind Turbines,” NREL/SR-500-34515, Oct. 2004. |
|
![]() |
![]() |
![]() |
![]() |
#2 | ||
New Member
Join Date: Jan 2013
Posts: 5
Rep Power: 13 ![]() |
Hi,
I did a revision of the kkl omega model 2 months ago because the implementation was faulty. The corrected model has been send to OpenFOAM but i don't know if it is already updated. You might want to contact Henry Weller and ask for the updated version. I canot recommend using the original implementation of the kklomega model in OF 3.2.0 due to its massive bugs. The updated version was tested for steady internal flows and yielded excellent results for all flow regimes. I can recommend the following schemes: Quote:
Quote:
|
|||
![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Klaus
Join Date: Mar 2009
Posts: 280
Rep Power: 22 ![]() |
Hello,
the mesh quality and fvSolution settings are critical for kklomega simulations... in particular relaxation factors especially for U. Residuals for p are also an issue. Please upload your mesh (polyMesh directory). I need to run it to provide propper advise. Klaus |
|
![]() |
![]() |
![]() |
![]() |
#4 |
New Member
Pierluigi Rossi
Join Date: Jul 2014
Location: Milan
Posts: 15
Rep Power: 12 ![]() |
Dear Niklatt,
thank you for your reply. Can you suggest me how to contact Henry Weller? Can you give me a test case that is working well with kKlOmega turb model? I am using now OF2.4 and the foam-extend-3.1. Is it the last updating? Thank you so much for your fvSchemes and fvSolutions. Pier |
|
![]() |
![]() |
![]() |
![]() |
#5 |
New Member
Join Date: Jan 2013
Posts: 5
Rep Power: 13 ![]() |
Hi Pier,
I uploaded a 2D channel testcase at Re_tau=395 into my dropbox ordner: https://www.dropbox.com/sh/rnrrjzne1...hgeHMBF1a?dl=0 You might have to change the turbulence model from "kklupdated" to the original name of the the kklomega model in the RASProperties file ... If everything is working fine and the model got fixed in OF 2.4 you should get a graph like the one I attached for the typical profiles. |
|
![]() |
![]() |
![]() |
![]() |
#6 |
New Member
Pierluigi Rossi
Join Date: Jul 2014
Location: Milan
Posts: 15
Rep Power: 12 ![]() |
Dear Niklatt,
thank you for your reply. I have tried to run your case and my OF version seems to be not updated. Are you speaking about the official 2.4 version? How can I get the last version? Thank you, Pier |
|
![]() |
![]() |
![]() |
![]() |
#7 |
New Member
Pierluigi Rossi
Join Date: Jul 2014
Location: Milan
Posts: 15
Rep Power: 12 ![]() |
The version installed on my pc is this one:
https://github.com/OpenFOAM/OpenFOAM...e/RAS/kkLOmega Can you suggest me where I can get the kklupdated turb model? Thank you again. |
|
![]() |
![]() |
![]() |
![]() |
#8 |
Senior Member
Philipp
Join Date: Jun 2011
Location: Germany
Posts: 1,297
Rep Power: 27 ![]() |
Pierluigi, to your first post about recommendations for the schemes: If you encounter problems during the run with bounding errors of k and omega, you should try to limit the laplacian scheme for k and omega. I.e. "laplacian(DomegaEff,omega) Gauss linear limited 0.5;" or something similar. Also, I usually don't use first order upwind, but second order upwind for them.
__________________
The skeleton ran out of shampoo in the shower. |
|
![]() |
![]() |
![]() |
![]() |
#9 |
New Member
Join Date: Jan 2013
Posts: 5
Rep Power: 13 ![]() |
Dear Pierluigi,
you can get the version I am using here: https://www.dropbox.com/sh/62pbu4us4...Wl8c2EDda?dl=0 So far I have tested this model for steady channel flows and a backward facing step. I also suggest to change the model constant "CR" to the value of 59 (In the RASProperties File, there is no need to recompile the code to change the coefficients). I did a recalibration for the model for internal flows and with the value of 59 the model predicts the Darcy friction factor in pipes very well and also the BFS simulations look quite nicely compared to experimental data. Cheers niklatt |
|
![]() |
![]() |
![]() |
![]() |
#10 |
Member
Aditya
Join Date: Nov 2014
Posts: 35
Rep Power: 11 ![]() |
Hi niklatt,
I have downloaded the model which you have updated and when I try to compile it, I get the following error. Code:
kkLOmegaupdated.C:89:21: error: prototype for ‘Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam::incompressible::RASModels::kkLOmega::fTaul(const volScalarField&, const volScalarField&, const volScalarField&) const’ does not match any in class ‘Foam::incompressible::RASModels::kkLOmega’ tmp<volScalarField> kkLOmega::fTaul ^ In file included from kkLOmegaupdated.C:31:0: /home/aditya/OpenFOAM/OpenFOAM-2.3.0/src/turbulenceModels/incompressible/RAS/lnInclude/kkLOmega.H:115:29: error: candidate is: Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam::incompressible::RASModels::kkLOmega::fTaul(const volScalarField&, const volScalarField&) const tmp<volScalarField> fTaul ^ kkLOmegaupdated.C:192:3: error: no ‘Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam::incompressible::RASModels::kkLOmega::gammaNat(const volScalarField&, const volScalarField&) const’ member function declared in class ‘Foam::incompressible::RASModels::kkLOmega’ ) const ^ kkLOmegaupdated.C: In member function ‘virtual void Foam::incompressible::RASModels::kkLOmega::correct()’: kkLOmegaupdated.C:696:58: error: no matching function for call to ‘Foam::incompressible::RASModels::kkLOmega::fTaul(const volScalarField&, const volScalarField&, const volScalarField&)’ * sqr(lambdaEff)/nu()*fTaul(lambdaEff,ktL,omega) ^ kkLOmegaupdated.C:696:58: note: candidate is: In file included from kkLOmegaupdated.C:31:0: /home/aditya/OpenFOAM/OpenFOAM-2.3.0/src/turbulenceModels/incompressible/RAS/lnInclude/kkLOmega.H:115:29: note: Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam::incompressible::RASModels::kkLOmega::fTaul(const volScalarField&, const volScalarField&) const tmp<volScalarField> fTaul ^ /home/aditya/OpenFOAM/OpenFOAM-2.3.0/src/turbulenceModels/incompressible/RAS/lnInclude/kkLOmega.H:115:29: note: candidate expects 2 arguments, 3 provided kkLOmegaupdated.C:721:42: error: ‘gammaNat’ was not declared in this scope 1.0-exp(- gammaNat(ReOmega,fNatCrit)/Anat_) ^ make: *** [Make/linux64GccDPOpt/kkLOmegaupdated.o] Error 1 Thanks |
|
![]() |
![]() |
![]() |
![]() |
#11 |
New Member
Join Date: Jan 2013
Posts: 5
Rep Power: 13 ![]() |
Hi dsn,
I am not an expert about questions how exactly OpenFoam works (I have mainly modified the physical modeling in the model) but you can try not to implement my model as an additional model but to modify the original one and recompile it. It could be that there are additional changes to other files necessary when implementing a complete new model. You can try to implement the changes from my model directly to the original model and then recompile it. This would be a little work but the necessary changes are in the functions: fINT lambdaT fTaul fw Dt Dl lastly the omega equation needs to be replaced by this (only sqr(fw) is added): tmp<fvScalarMatrix> omegaEqn ( fvm::ddt(omega_) + fvm::div(phi_, omega_) - fvm::laplacian ( DomegaEff(alphaTEff), omega_, "laplacian(alphaTEff,omega)" ) == Cw1_*Pkt*omega_/(kt_ + kMin_) + fvm::SuSp ( (CwR_/(fw + fwMin) - 1.0)*kl_*(Rbp + Rnat)/(kt_ + kMin_) , omega_ ) - fvm::Sp(Cw2_*sqr(fw)*omega_, omega_) + Cw3_*fOmega(lambdaEff, lambdaT)*alphaTEff*sqr(fw)*sqrt(kt_)/pow3(y_) ); I know this is not a very elegant approach but maybe with more insight into the OpenFoam structure can help with a better way to get it running. Cheers Niklatt |
|
![]() |
![]() |
![]() |
![]() |
#12 |
Senior Member
Klaus
Join Date: Mar 2009
Posts: 280
Rep Power: 22 ![]() |
Hi,
you mentioned above, that a model constant can be changed/set in the RASproperties file. What's the syntax/how is that done? I'd like to change CtsCrit 1000; to a differnt value. Klaus |
|
![]() |
![]() |
![]() |
![]() |
#13 |
New Member
Pierluigi Rossi
Join Date: Jul 2014
Location: Milan
Posts: 15
Rep Power: 12 ![]() |
kkLOmegaCoeffs
{ CtsCrit xxxx; } |
|
![]() |
![]() |
![]() |
![]() |
#14 |
New Member
hamide hayati
Join Date: Oct 2015
Posts: 28
Rep Power: 10 ![]() |
hi friends
i'm going to run a pisoFoam algorithm of a simple duct, but i face to a problem as follow: Starting time loop Time = 0.0005 Courant Number mean: 3.90625e+290 max: 3.125e+292 #0 Foam::error: ![]() #1 Foam::sigFpe::sigHandler(int) in "/opt/openfoam220/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #2 in "/lib/x86_64-linux-gnu/libc.so.6" #3 void Foam::fvc::surfaceIntegrate<Foam::Vector<double> >(Foam::Field<Foam::Vector<double> >&, Foam::GeometricField<Foam::Vector<double>, Foam::fvsPatchField, Foam::surfaceMesh> const&) in "/opt/openfoam220/platforms/linux64GccDPOpt/lib/libfiniteVolume.so" #4 Foam::tmp<Foam::GeometricField<Foam::Vector<double >, Foam::fvPatchField, Foam::volMesh> > Foam::fvc::surfaceIntegrate<Foam::Vector<double> >(Foam::GeometricField<Foam::Vector<double>, Foam::fvsPatchField, Foam::surfaceMesh> const&) in "/opt/openfoam220/platforms/linux64GccDPOpt/lib/libfiniteVolume.so" #5 at gaussDivSchemes.C:0 #6 Foam::fv::gaussDivScheme<Foam::Tensor<double> >::fvcDiv(Foam::GeometricField<Foam::Tensor<double >, Foam::fvPatchField, Foam::volMesh> const&) in "/opt/openfoam220/platforms/linux64GccDPOpt/lib/libfiniteVolume.so" #7 Foam::tmp<Foam::GeometricField<Foam::innerProduct< Foam::Vector<double>, Foam::Tensor<double> >::type, Foam::fvPatchField, Foam::volMesh> > Foam::fvc::div<Foam::Tensor<double> >(Foam::GeometricField<Foam::Tensor<double>, Foam::fvPatchField, Foam::volMesh> const&) in "/opt/openfoam220/platforms/linux64GccDPOpt/lib/libincompressibleTurbulenceModel.so" #8 Foam::incompressible::RASModels::kEpsilon::divDevR eff(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>&) const in "/opt/openfoam220/platforms/linux64GccDPOpt/lib/libincompressibleRASModels.so" #9 in "/opt/openfoam220/platforms/linux64GccDPOpt/bin/pisoFoam" #10 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6" #11 in "/opt/openfoam220/platforms/linux64GccDPOpt/bin/pisoFoam" Floating point exception (core dumped) i don't know how to fix it!!!!!!! the blockMeshdict is: convertToMeters 1; vertices ( (0 0 0) //0 (0.4 0 0) //1 (0 0.02 0) //2 (0.4 0.02 0) //3 (0 0 -0.01) //4 (0.4 0 -0.01) //5 (0 0.02 -0.01) //6 (0.4 0.02 -0.01) //7 ); blocks ( hex (0 1 3 2 4 5 7 6) (80 4 1) simpleGrading (1 1 1) ); edges ( ); boundary ( inlet { type patch; faces ( (4 0 2 6) ); } outlet { type patch; faces ( (5 1 3 7) ); } wall { type wall; faces ( (4 0 1 5) (6 2 3 7) ); } frontAndBack { type empty; faces ( (0 1 3 2) (4 5 7 6) ); } ); mergePatchPairs ( ); and the u file: dimensions [0 1 -1 0 0 0 0]; internalField uniform (0 0 0); boundaryField { inlet { type fixedValue; value uniform (5 0 0); } outlet { type zeroGradient; } wall { type fixedValue; value uniform (0 0 0); } frontAndBack { type empty; } } and p file: dimensions [0 2 -2 0 0 0 0]; internalField uniform 0; boundaryField { inlet { type zeroGradient; } outlet { type fixedValue; value uniform 0; } wall { type zeroGradient; } frontAndBack { type empty; } } and epsilon file: dimensions [0 2 -3 0 0 0 0]; internalField uniform 5.2; boundaryField { inlet { type fixedValue ; value uniform 5.2; } outlet { type zeroGradient; } wall { type epsilonWallFunction; value uniform 5.2; } frontAndBack { type empty; } } and k file: dimensions [0 2 -2 0 0 0 0]; internalField uniform 0.09375; boundaryField { inlet { type fixedValue; value 0.0009375; } outlet { type zeroGradient; } wall { type kqRWallFunction; value uniform 0.09375; } frontAndBack { type empty; } } and nut file: dimensions [0 2 -1 0 0 0 0]; internalField uniform 0; boundaryField { inlet { type calculated value uniform 0; } outlet { type calculated; value uniform 0; } wall { type nutkWallFunction; value uniform 0; } frontAndBack { type empty; } } and nuTilda file: dimensions [0 2 -1 0 0 0 0]; internalField uniform 0; boundaryField { inlet { type fixedValue; value uniform 0; } ouelet { type zeroGradient; } wall { type zeroGradient; } frontAndBack { type empty; } } i don't know what the problem is ![]() would you please help me? |
|
![]() |
![]() |
![]() |
![]() |
#15 |
Member
Alberto
Join Date: Sep 2013
Posts: 37
Rep Power: 12 ![]() |
After 8 years, there is a new version (or new model) of the k-kl-omega model.
There are a few problems with the k-kl-omega model in the farfield. One of them is the growth of Laminar Kinetic energy when separation occurs. Lopez and Walters have a paper (have not been published yet) correcting this issue: Maurin Lopez. D. K. Walters. “A recommended correction to the k-kl-omega transition sensitive eddy-viscosity model”. Journal of Fluid Engineering. This correction has to be made to the 2008 k-kl-omega model from now on. Now, Lopez and Walters also developed a new transitional model (k-omega-v2) as an alternative to the k-kl-omega one. This new model has more capabilities (it is more reliable) than the k-kl-omega model, especially in the farfield computations. Fortunately the paper for this new model is already publish. Maurin Lopez. D. K. Walters. “Prediction of transitional and fully turbulent free shear flows using an alternative to the laminar kinetic energy approach”. Journal of Turbulence, Vol 17, Iss. 3, 2016. If you see the papers, you will immediately see how the k-kl-omega model is not good for free shear flows, and how the new model corrects all those issues. From now on, k-kl-omega users have to start using the new k-omega-v2 model. |
|
![]() |
![]() |
![]() |
![]() |
#16 |
Senior Member
M. Montero
Join Date: Mar 2009
Location: Madrid
Posts: 153
Rep Power: 17 ![]() |
Is there any implementation of the new k-omega-v2 into openfoam?
Best regards |
|
![]() |
![]() |
![]() |
![]() |
#17 |
Senior Member
Herpes Free Engineer
Join Date: Sep 2019
Location: The Home Under The Ground with the Lost Boys
Posts: 931
Rep Power: 12 ![]() |
nope at least for the official repos.
__________________
The OpenFOAM community is the biggest contributor to OpenFOAM: User guide/Wiki-1/Wiki-2/Code guide/Code Wiki/Journal Nilsson/Guerrero/Holzinger/Holzmann/Nagy/Santos/Nozaki/Jasak/Primer Governance Bugs/Features: OpenFOAM (ESI-OpenCFD-Trademark) Bugs/Features: FOAM-Extend (Wikki-FSB) Bugs: OpenFOAM.org How to create a MWE New: Forkable OpenFOAM mirror |
|
![]() |
![]() |
![]() |
Tags |
fx63-137, kklomega, komegasst, rans |
|
|