makaveli_lcf 
April 21, 2009 06:27 
Hi all!
I'm doing a compare tests of turbulence models in FLUENT and OpenFOAM. I've got convergence problems with standard kepsilon in OpenFOAM for testing geometries.
Mesh is 3D with following parameters:
Quote:
Number of cells of each type:
hexahedra: 29855
prisms: 0
wedges: 0
pyramids: 441
tet wedges: 0
tetrahedra: 37147
polyhedra: 0
Checking geometry...
Overall domain bounding box (0.625 0.0675 2.072) (0.625 0.0675 0)
Mesh (nonempty) directions (1 1 1)
Mesh (nonempty, nonwedge) dimensions 3
Boundary openness (7.8904e19 8.57159e20 1.67732e19) OK.
Max cell openness = 2.06529e16 OK.
Max aspect ratio = 7.21027 OK.
Minumum face area = 1.73278e05. Maximum face area = 0.000537385. Face area magnitudes OK.
Min volume = 4.0345e08. Max volume = 7.71429e06. Total volume = 0.253842. Cell volumes OK.
Mesh nonorthogonality Max: 60.6516 average: 13.6401
Nonorthogonality check OK.
Face pyramids OK.
Max skewness = 0.796547 OK.

checkMesh with allTopology allGeometry produces following results:
Quote:
Checking geometry...
Overall domain bounding box (0.625 0.0675 2.072) (0.625 0.0675 0)
Mesh (nonempty) directions (1 1 1)
Mesh (nonempty, nonwedge) dimensions 3
Boundary openness (7.8904e19 8.57159e20 1.67732e19) OK.
Max cell openness = 2.06529e16 OK.
Max aspect ratio = 7.21027 OK.
Minumum face area = 1.73278e05. Maximum face area = 0.000537385. Face area magnitudes OK.
Min volume = 4.0345e08. Max volume = 7.71429e06. Total volume = 0.253842. Cell volumes OK.
Mesh nonorthogonality Max: 60.6516 average: 13.6401
Nonorthogonality check OK.
Face pyramids OK.
Max skewness = 0.796547 OK.
Min/max edge length = 0.0032882 0.0420821 OK.
All angles in faces OK.
Face flatness (1 = flat, 0 = butterfly) : average = 1 min = 1
All face flatness OK.
Cell determinant (wellposedness) : minimum: 6.47133e19 average: 3.63504
***Cells with small determinant found, number of cells: 128
<<Writing 128 underdetermined cells to set underdeterminedCells
Failed 1 mesh checks.

In FLUENT there is no problem to simulate flow on this mesh. In OpenFoam it runs only few steps and then k and epsilon grows with Courant number and simulation produces floatpoint operation error:
Quote:
Starting time loop
Time = 0.001
Courant Number mean: 0.00129507 max: 0.33108
DILUPBiCG: Solving for Ux, Initial residual = 1, Final residual = 6.52442e10, No Iterations 2
DILUPBiCG: Solving for Uy, Initial residual = 1, Final residual = 9.95905e10, No Iterations 2
DILUPBiCG: Solving for Uz, Initial residual = 1, Final residual = 1.07944e09, No Iterations 2
DICPCG: Solving for p, Initial residual = 1, Final residual = 9.69663e07, No Iterations 285
time step continuity errors : sum local = 3.98155e11, global = 1.79587e13, cumulative = 1.79587e13
DICPCG: Solving for p, Initial residual = 0.27422, Final residual = 9.52287e07, No Iterations 238
time step continuity errors : sum local = 3.33038e09, global = 5.09634e13, cumulative = 6.89221e13
DILUPBiCG: Solving for epsilon, Initial residual = 0.999993, Final residual = 6.02371e08, No Iterations 3
bounding epsilon, min: 2.86839e09 max: 8.836e05 average: 1.96149e08
DILUPBiCG: Solving for k, Initial residual = 1, Final residual = 1.23927e06, No Iterations 2
bounding k, min: 7.82791e14 max: 0.001176 average: 1.06553e07
ExecutionTime = 4.47 s ClockTime = 4 s
Time = 0.002
Courant Number mean: 0.00373363 max: 0.33108
DILUPBiCG: Solving for Ux, Initial residual = 0.874019, Final residual = 5.40783e07, No Iterations 27
DILUPBiCG: Solving for Uy, Initial residual = 0.885672, Final residual = 5.61245e07, No Iterations 27
DILUPBiCG: Solving for Uz, Initial residual = 0.445827, Final residual = 1.98736e06, No Iterations 27
DICPCG: Solving for p, Initial residual = 0.0962279, Final residual = 8.82523e07, No Iterations 245
time step continuity errors : sum local = 3.29699e09, global = 3.20759e11, cumulative = 3.13867e11
DICPCG: Solving for p, Initial residual = 0.888897, Final residual = 9.66196e07, No Iterations 217
time step continuity errors : sum local = 2.91614e05, global = 4.4315e07, cumulative = 4.43182e07
DILUPBiCG: Solving for epsilon, Initial residual = 0.241531, Final residual = 8.49532e06, No Iterations 15
bounding epsilon, min: 1.12568 max: 1.83423 average: 9.78951e05
DILUPBiCG: Solving for k, Initial residual = 0.933947, Final residual = 9.05932e06, No Iterations 168
bounding k, min: 0.00254946 max: 0.00694748 average: 2.70098e06
ExecutionTime = 11.21 s ClockTime = 11 s
Time = 0.003
Courant Number mean: 27.8704 max: 797936
DILUPBiCG: Solving for Ux, Initial residual = 0.715265, Final residual = 8.6611e06, No Iterations 230
DILUPBiCG: Solving for Uy, Initial residual = 0.765986, Final residual = 9.36869e06, No Iterations 188
DILUPBiCG: Solving for Uz, Initial residual = 0.807524, Final residual = 8.14793e06, No Iterations 171
DICPCG: Solving for p, Initial residual = 0.937079, Final residual = 3.73413, No Iterations 1001
time step continuity errors : sum local = 1534.32, global = 3.78434, cumulative = 3.78434
DICPCG: Solving for p, Initial residual = 0.169545, Final residual = 0.00447933, No Iterations 1001
time step continuity errors : sum local = 113452, global = 313.066, cumulative = 309.282
DILUPBiCG: Solving for epsilon, Initial residual = 1, Final residual = 0.130458, No Iterations 1001
bounding epsilon, min: 3.5181e+15 max: 2.78475e+15 average: 1.20801e+11
DILUPBiCG: Solving for k, Initial residual = 0.806156, Final residual = 6.15771e06, No Iterations 260
bounding k, min: 5.29862e+15 max: 5.65668e+15 average: 4.54536e+09
ExecutionTime = 47.22 s ClockTime = 47 s
Time = 0.004
Courant Number mean: 2.27745e+06 max: 8.64822e+09
DILUPBiCG: Solving for Ux, Initial residual = 0.724622, Final residual = 0.00590453, No Iterations 1001
DILUPBiCG: Solving for Uy, Initial residual = 0.75323, Final residual = 0.000498385, No Iterations 1001
DILUPBiCG: Solving for Uz, Initial residual = 0.707788, Final residual = 0.0016267, No Iterations 1001
DICPCG: Solving for p, Initial residual = 1, Final residual = 45.8841, No Iterations 1001
time step continuity errors : sum local = 8.26264e+30, global = 3.77052e+28, cumulative = 3.77052e+28
DICPCG: Solving for p, Initial residual = 1.82929e06, Final residual = 5.69246e07, No Iterations 2
time step continuity errors : sum local = 1.78212e+38, global = 8.31007e+33, cumulative = 8.31003e+33
DILUPBiCG: Solving for epsilon, Initial residual = 1, Final residual = 8.85622e+13, No Iterations 1001
bounding epsilon, min: 3.66455e+74 max: 4.53599e+74 average: 7.3757e+69
DILUPBiCG: Solving for k, Initial residual = 3.92025e05, Final residual = 9.70635e08, No Iterations 3
bounding k, min: 4.37338e+61 max: 1.53932e+66 average: 2.28586e+61
ExecutionTime = 106.52 s ClockTime = 106 s
Time = 0.005
Courant Number mean: 3.0383e+39 max: 2.15417e+44
#0 Foam::error::printStack(Foam::Ostream&) in "/home/forsher/OpenFOAM/OpenFOAM1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#1 Foam::sigFpe::sigFpeHandler(int) in "/home/forsher/OpenFOAM/OpenFOAM1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#2 Uninterpreted: [0xb7f6c420]
#3 Foam::DILUPreconditioner::calcReciprocalD(Foam::Fi eld<double>&, Foam::lduMatrix const&) in "/home/forsher/OpenFOAM/OpenFOAM1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#4 Foam::DILUPreconditioner::DILUPreconditioner(Foam: :lduMatrix::solver const&, Foam::Istream&) in "/home/forsher/OpenFOAM/OpenFOAM1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#5 Foam::lduMatrix::preconditioner::addasymMatrixCons tructorToTable<Foam::DILUPreconditioner>::New(Foam ::lduMatrix::solver const&, Foam::Istream&) in "/home/forsher/OpenFOAM/OpenFOAM1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#6 Foam::lduMatrix::preconditioner::New(Foam::lduMatr ix::solver const&, Foam::Istream&) in "/home/forsher/OpenFOAM/OpenFOAM1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#7 Foam::PBiCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const in "/home/forsher/OpenFOAM/OpenFOAM1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#8 Foam::fvMatrix<Foam::Vector<double> >::solve(Foam::Istream&) in "/home/forsher/OpenFOAM/OpenFOAM1.5/applications/bin/linuxGccDPOpt/turbFoam"
#9 Foam::lduMatrix::solverPerformance Foam::solve<Foam::Vector<double> >(Foam::tmp<Foam::fvMatrix<Foam::Vector<double> > > const&) in "/home/forsher/OpenFOAM/OpenFOAM1.5/applications/bin/linuxGccDPOpt/turbFoam"
#10 main in "/home/forsher/OpenFOAM/OpenFOAM1.5/applications/bin/linuxGccDPOpt/turbFoam"
#11 __libc_start_main in "/lib/tls/i686/cmov/libc.so.6"
#12 Foam::regIOobject::readIfModified() in "/home/forsher/OpenFOAM/OpenFOAM1.5/applications/bin/linuxGccDPOpt/turbFoam"

I've tried a number of solutions to get convergence of results. Starting from default turbFoam tutorial parameters, changed solvers to GAMG for pressure and smooth for momentum and scalars. Increased nonOrtho corrections. Later switched to first oder discretization (from linear to upwind). Converted mesh to polyhedral with polyDualMesh. None of that steps helped!
The only solution is to use othe kepsilon model, for example realizableKE works perfectly with any settings and does not requires 1st oder or mesh improvement, changing solvers whatever!
So what could be the reason that standard kepsilon stucks with this task?
Thank you! Waiting for your comments!
