How to implement compressibility correction factor in k-epsilon model
Hi all,
I made a copy of existing kepsilon model and renamed as mykEpsilon and compiled successfully into OpenFOAM 2.1.1. Now i want to add compressibility correction factor Ym=2*epsilon*(M^2) ,where M=sqrt(k/(airvel^2)) in to the k equation. For this i have to define a new dimensioned scalar constant "airvel" (velocity of sound= 350 m/s). can someone help me in doing this? how should i define "airvel"? where should i define its dimension? etc.. K-equation is edited as follows: // Turbulent kinetic energy equation tmp<fvScalarMatrix> kEqn ( fvm::ddt(k_) + fvm::div(phi_, k_) - fvm::Sp(fvc::div(phi_), k_) - fvm::laplacian(DkEff(), k_) == G - fvm::Sp(epsilon_/k_, k_) - fvm::Sp(2*epsilon_/airvel_, k_) //***added Ym compressibilty effect***// ); I tried by adding these lines to mykEpsilon.C // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // airvel_ ( dimensioned<scalar>::lookupOrAddToDict ( "airvel", coeffDict_, //added by me // 117649 ) ), // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // and by adding these line to mykEpsilon.H class protected data // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensionedScalar airvel_; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Also added the dimensions into transportproperties in the pitzDaily/Constant // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // transportModel Newtonian; nu nu [ 0 2 -1 0 0 0 0 ] 1e-05; airvel_ airvel_ [ 0 2 -2 0 0 0 0 ] 117649; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // But i am getting error as follows::: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Create mesh for time = 0 Reading field p Reading field U Reading/calculating face flux field phi Selecting incompressible transport model Newtonian Selecting RAS turbulence model mykEpsilon mykEpsilonCoeffs { Cmu 0.09; C1 1.44; C2 1.92; sigmaEps 1.3; airvel 117649; } Defining my own kEpsilon model No field sources present SIMPLE: convergence criteria field p tolerance 0.01 field U tolerance 0.001 field "(k|epsilon|omega)" tolerance 0.001 Starting time loop Time = 1 DILUPBiCG: Solving for Ux, Initial residual = 1, Final residual = 0.0606635, No Iterations 1 DILUPBiCG: Solving for Uy, Initial residual = 1, Final residual = 0.0316293, No Iterations 1 DICPCG: Solving for p, Initial residual = 1, Final residual = 0.00922589, No Iterations 161 time step continuity errors : sum local = 0.58783, global = -0.001983, cumulative = -0.001983 DILUPBiCG: Solving for epsilon, Initial residual = 0.225166, Final residual = 0.0179849, No Iterations 1 --> FOAM FATAL ERROR: incompatible dimensions for operation [k[0 2 -3 0 0 0 0] ] - [k[0 4 -5 0 0 0 0] ] From function checkMethod(const fvMatrix<Type>&, const fvMatrix<Type>&) in file /home/opencfd/OpenFOAM/OpenFOAM-2.1.1/src/finiteVolume/lnInclude/fvMatrix.C at line 1316. FOAM aborting #0 Foam::error: :printStack(Foam::Ostream&) in "/opt/openfoam211/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #1 Foam::error::abort() in "/opt/openfoam211/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #2 void Foam::checkMethod<double>(Foam::fvMatrix<double> const&, Foam::fvMatrix<double> const&, char const*) in "/opt/openfoam211/platforms/linux64GccDPOpt/lib/libincompressibleRASModels.so" #3 at mykEpsilon.C:0 #4 Foam::incompressible::RASModels::mykEpsilon::corre ct() in "/home/http/OpenFOAM/http-2.1.1/platforms/linux64GccDPOpt/lib/libmyTurbulenceModels.so" #5 in "/opt/openfoam211/platforms/linux64GccDPOpt/bin/simpleFoam" #6 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6" #7 in "/opt/openfoam211/platforms/linux64GccDPOpt/bin/simpleFoam" Aborted (core dumped) |
Hi,
the solution is very simple :) I fix that now and will upload the turbulence model. You forgot just one line :) Tobi |
1 Attachment(s)
Hi,
I made your turbulence model and called it ccfkEpsilon like your headline. ccfkEpsilon == compressibility correction factor k-Epsilon - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - How do implement it 1. Download the tar file 2. untar it into OpenFOAM-2.1.x/src/turbulenceModels/incompressible/RAS/ 3. Switch into that directory 4. edit the Make/file file and insert the line ccfkEpsilon/ccfkEpsilon.C 5. wmake libso 6. move into the tutorials/incompressible/simpleFoam/pitzDaily 7. change the constant/RASProperties and use the RASModel ccfkEpsilon 8. start simpleFoam 9. enjoy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code:
Selecting incompressible transport model Newtonian NOTICE I dont know if the equation is correct or the value of "airVel". I just used the equation and constants mentioned in the first thread. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Eqn of k Code:
tmp<fvScalarMatrix> kEqn ariVel is a constant of 117649 mē/sē. You can change that value in the RASProperties file (if necessary). Code:
RASModel ccfkEpsilon; Code:
Selecting incompressible transport model Newtonian Regards Tobi PS: Thanks for your email. |
Thank you very much Tobias...!
PS: Check your mail...! |
All times are GMT -4. The time now is 15:24. |