RANS FX63-137: kKlOmega and kOmegaSST models
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++ -*----------------------------------*\ Code:
/*--------------------------------*- C++ -*----------------------------------*\ 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++ -*----------------------------------*\ Code:
/*--------------------------------*- C++ -*----------------------------------*\ Here the checkMesh result: Code:
Create time 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. |
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:
|
send me your mesh
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 |
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 |
1 Attachment(s)
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. |
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 |
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. |
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.
|
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 |
kklOmega Model
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’ Thanks |
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 |
How can I set a model constant in the RASproperties file?
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 |
kkLOmegaCoeffs
{ CtsCrit xxxx; } |
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::printStack(Foam::Ostream&) in "/opt/openfoam220/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #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? |
new model
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. |
Is there any implementation of the new k-omega-v2 into openfoam?
Best regards |
nope at least for the official repos.
|
All times are GMT -4. The time now is 07:37. |