
[Sponsors] 
March 1, 2014, 12:09 
should Courant number always be kept below 1?

#1 
Member
Cong
Join Date: Nov 2012
Posts: 78
Rep Power: 5 
Hello everyone,
We all know courant n.o. blow one is a general rule for transient simulation. However, I am wondering if implicit temporal discretization scheme or some transient SIMPLE methods is used, courant number in principle doesn't need to be kept below one. Am I correct? in a simple buoyancy case of mine, it is just a box with all the walls fixed temperature, I use buoyantPimpleFoam. when I used a time step corresponding to Co=0.3, however, Co increased time step by time step and finally blew up. Therefore I used a very small time step dT=1e4 corresponding to Co < 0.005 then it worked. After a few time steps, I gradually increased time step to dT=1e3. However, when I continued to increase it to 2e3, it blew up again. So I got confused. 

March 1, 2014, 13:39 

#2 
Senior Member
Alexey Matveichev
Join Date: Aug 2011
Location: Nancy, France
Posts: 1,371
Rep Power: 23 
Hi,
if you say you're using pimpleBuoyantFoam, show your PIMPLE dictionary from fvSolution (if you'd like to hear something about simulation blowing up). Maybe your settings lead to diverging solution. Or if you'd like to hear obvious answer: in general, Courant number can be larger than 1 

March 3, 2014, 09:30 

#3  
Member
Cong
Join Date: Nov 2012
Posts: 78
Rep Power: 5 
Quote:
Below is my fvSolution. And concerning the fvScheme, expcept that div(phi,U) is linearUpwind, all others are upwind. Code:
solvers { p_rgh { solver GAMG; agglomerator faceAreaPair; mergeLevels 1; cacheAgglomeration true; nCellsInCoarsestLevel 200; tolerance 1e05; relTol 0.01; smoother GaussSeidel; nPreSweeps 0; nPostSweeps 2; nFinestSweeps 2; minIter 1; maxIter 15; } U { solver smoothSolver; smoother GaussSeidel; tolerance 1e05; relTol 0.1; minIter 1; maxIter 5; } "(heTkepsilonomega)" { solver smoothSolver; smoother GaussSeidel; tolerance 1e06; relTol 0.1; minIter 1; maxIter 5; } G { $p_rgh; tolerance 1e05; relTol 0.1; } p_rghFinal { $p_rgh; relTol 0; } UFinal { $U; relTol 0; } "(heTkepsilonomegaR)Final" { $k; relTol 0; } "rho.*" { solver PCG; preconditioner DIC; tolerance 0; relTol 0; } } PIMPLE { momentumPredictor yes; nOuterCorrectors 3; nCorrectors 2; nNonOrthogonalCorrectors 0; } relaxationFactors { fields { rho 1.0; "(pp_rgh)" 0.3; } equations { U 0.6; "(heT)" 0.7; "(kepsilonomegaR)" 0.4; G 0.7; } } 

March 3, 2014, 09:48 

#4 
Senior Member
Alexey Matveichev
Join Date: Aug 2011
Location: Nancy, France
Posts: 1,371
Rep Power: 23 
Hi,
as I don't know your initial conditions my suggestions will be more or less general: 1. You're limiting number of iterations for linear solvers. I guess you know what you're doing. 2. You're using fixed number of outer correctors, I'd suggest you to switch to residualControl for limiting number of outer correctors, i.e. Code:
PIMPLE { momentumPredictor yes; nOuterCorrectors 100; nCorrectors 2; nNonOrthogonalCorrectors 0; residualControl { "(p_rghUThekomegaepsilon)" { tolerance 1e4; relTol 0; } } } 3. Again initially in your simulation heat transfer can be limiting factor, i.e. you have to check not only Courant number but also Fourier number. 

March 3, 2014, 09:55 

#5  
Member
Cong
Join Date: Nov 2012
Posts: 78
Rep Power: 5 
Quote:
1. The reason why I limit the number of linear solvers is that for U and turbulence variables, maxIter = 5 is quite enough (usually one or two to satisfy relTol = 0.1 or even 0.01). However, for pressure p, the initial residual is of order 0.1, it is very hard to get absTol below 1e5 even if I increase the maxIter to a very big number. 2.Could you please explain a little bit Fourier number? It is my first time to hear of it. Regarding initial condition, I started from steady solution of buoyancySimpleFoam. 

March 3, 2014, 10:13 

#6  
Senior Member
Alexey Matveichev
Join Date: Aug 2011
Location: Nancy, France
Posts: 1,371
Rep Power: 23 
Quote:
Quote:
It is used in a stability criterion when solving heat conductivity equation. In OpenFOAM it is called Diffusion Number and you can find definition and usage in chtMultiRegionFoam (solid/solidRegionDiffNo.H). 

March 3, 2014, 10:25 

#7  
Member
Cong
Join Date: Nov 2012
Posts: 78
Rep Power: 5 
Quote:
The reason that I limit it is that I want to save the computational time. If the initial residual is of the order 0.1, then it is easier to fulfill relTol = 0.01 within 20 iterations but hard to get absTol < 1e5. In the beginning, I did use more inner iterations. Below I post the residual log. Code:
/**\  =========    \\ / F ield  OpenFOAM: The Open Source CFD Toolbox   \\ / O peration  Version: 2.2.2   \\ / A nd  Web: www.OpenFOAM.org   \\/ M anipulation   \**/ Build : 2.2.29240f8b967db Exec : buoyantPimpleFoam parallel Date : Feb 28 2014 Time : 23:17:28 Host : "congXXXX" PID : 2391 Case : /home/cong/OpenFOAM/closedRoom/hotRoom_no2_2nd nProcs : 4 Slaves : 3 ( "congXXXX.2392" "congXXXX.2393" "congXXXX.2394" ) Pstream initialized with: floatTransfer : 0 nProcsSimpleSum : 0 commsType : nonBlocking polling iterations : 0 sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE). fileModificationChecking : Monitoring runtime modified files using timeStampMaster allowSystemOperations : Disallowing usersupplied system call operations // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Create mesh for time = 1400.05 Reading g Reading thermophysical properties Selecting thermodynamics package { type heRhoThermo; mixture pureMixture; transport const; thermo hConst; equationOfState perfectGas; specie specie; energy sensibleEnthalpy; } Reading field U Reading/calculating face flux field phi Creating turbulence model Selecting turbulence model type RASModel Selecting RAS turbulence model kOmegaSST kOmegaSSTCoeffs { alphaK1 0.85034; alphaK2 1; alphaOmega1 0.5; alphaOmega2 0.85616; Prt 1; gamma1 0.5532; gamma2 0.4403; beta1 0.075; beta2 0.0828; betaStar 0.09; a1 0.31; b1 1; c1 10; F3 false; } Calculating field g.h Reading field p_rgh Creating field dpdt Creating field kinetic energy K No finite volume options present Selecting radiationModel none Courant Number mean: 0.00148837580644629 max: 0.0647853339161001 PIMPLE: no residual control data found. Calculations will employ 5 corrector loops Starting time loop Courant Number mean: 0.00148837580644629 max: 0.0647853339161001 Time = 1400.051 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 PIMPLE: iteration 1 smoothSolver: Solving for Ux, Initial residual = 0.000247647843867614, Final residual = 3.999270574318e07, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 0.000128107979661795, Final residual = 1.83112475255285e07, No Iterations 1 smoothSolver: Solving for Uz, Initial residual = 0.000160633659578868, Final residual = 2.5594269628695e07, No Iterations 1 smoothSolver: Solving for h, Initial residual = 0.000242875086126735, Final residual = 8.06141666995819e07, No Iterations 1 GAMG: Solving for p_rgh, Initial residual = 0.0861737029966527, Final residual = 0.000820116649469887, No Iterations 11 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 7.52141562698942e08, global = 4.91926028910357e09, cumulative = 4.91926028910357e09 GAMG: Solving for p_rgh, Initial residual = 0.0537872793715646, Final residual = 0.000486045277443569, No Iterations 12 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 5.97065178341836e08, global = 4.91556833568525e09, cumulative = 9.83482862478882e09 PIMPLE: iteration 2 smoothSolver: Solving for Ux, Initial residual = 0.000166011564280937, Final residual = 2.11871972688141e07, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 7.58215157742506e05, Final residual = 9.17281666372826e08, No Iterations 1 smoothSolver: Solving for Uz, Initial residual = 8.86027249173873e05, Final residual = 1.20533099842053e07, No Iterations 1 smoothSolver: Solving for h, Initial residual = 1.60874106858657e05, Final residual = 4.08319969850189e08, No Iterations 1 GAMG: Solving for p_rgh, Initial residual = 0.0572096993313344, Final residual = 0.000502857597070764, No Iterations 11 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 4.31876336329513e08, global = 2.52631031818182e09, cumulative = 1.23611389429706e08 GAMG: Solving for p_rgh, Initial residual = 0.0368248923460351, Final residual = 0.000339433400191968, No Iterations 11 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 3.47307813854051e08, global = 2.5250908689926e09, cumulative = 1.48862298119632e08 PIMPLE: iteration 3 smoothSolver: Solving for Ux, Initial residual = 0.000127060259818226, Final residual = 1.52156840121415e07, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 5.29445921737536e05, Final residual = 6.47499018761379e08, No Iterations 1 smoothSolver: Solving for Uz, Initial residual = 6.13777747041193e05, Final residual = 7.94535741646234e08, No Iterations 1 smoothSolver: Solving for h, Initial residual = 1.50228683475912e05, Final residual = 3.68357616927878e08, No Iterations 1 GAMG: Solving for p_rgh, Initial residual = 0.0387085517464596, Final residual = 0.000372039926636581, No Iterations 10 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 3.00267437329372e08, global = 1.60359089444357e09, cumulative = 1.64898207064068e08 GAMG: Solving for p_rgh, Initial residual = 0.0249814364256056, Final residual = 0.000225602225554279, No Iterations 11 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 2.27332812053539e08, global = 1.60485248005295e09, cumulative = 1.80946731864598e08 PIMPLE: iteration 4 smoothSolver: Solving for Ux, Initial residual = 9.60615477701421e05, Final residual = 1.17134347180524e07, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 3.81082635478471e05, Final residual = 4.86568514367135e08, No Iterations 1 smoothSolver: Solving for Uz, Initial residual = 4.49272447238318e05, Final residual = 5.86706411039353e08, No Iterations 1 smoothSolver: Solving for h, Initial residual = 1.46807751471808e05, Final residual = 3.4972415280223e08, No Iterations 1 GAMG: Solving for p_rgh, Initial residual = 0.0266292373137, Final residual = 0.000263811980331065, No Iterations 10 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 2.17169044295473e08, global = 1.12895991579024e09, cumulative = 1.922363310225e08 GAMG: Solving for p_rgh, Initial residual = 0.0172409016064815, Final residual = 0.000158769948607733, No Iterations 11 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 1.62404184000881e08, global = 1.12977978909374e09, cumulative = 2.03534128913438e08 PIMPLE: iteration 5 smoothSolver: Solving for Ux, Initial residual = 0.000121658069251048, Final residual = 2.58614338218384e07, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 4.71089146736597e05, Final residual = 1.04253715545996e07, No Iterations 1 smoothSolver: Solving for Uz, Initial residual = 5.65301129919658e05, Final residual = 1.26714166596492e07, No Iterations 1 smoothSolver: Solving for h, Initial residual = 2.08831375673703e05, Final residual = 7.12911275334731e08, No Iterations 1 GAMG: Solving for p_rgh, Initial residual = 0.0538928262424893, Final residual = 0.000505463810804564, No Iterations 10 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 3.18557717387552e08, global = 3.50284999781456e10, cumulative = 2.07036978911252e08 GAMG: Solving for p_rgh, Initial residual = 0.00981819390577786, Final residual = 3.97373360009254e05, No Iterations 20 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 2.43352807596734e09, global = 9.07244129651977e14, cumulative = 2.07037886155382e08 smoothSolver: Solving for omega, Initial residual = 7.77330670381549e06, Final residual = 7.77330670381549e06, No Iterations 0 smoothSolver: Solving for k, Initial residual = 0.000258689105128507, Final residual = 1.04875993446461e06, No Iterations 1 ExecutionTime = 46.12 s ClockTime = 47 s fieldMinMax volumeMinMax output: min(p_rgh) = 99822.7698641411 at position (3.06161558808532 3.09883989107467 2.46163835228888) on processor 0 max(p_rgh) = 99824.6394908518 at position (0.0141310859195548 3.11630672402005e19 2.48585301973776) on processor 2 min(p) = 99794.9901934314 at position (2.6125 3.063995781 2.5) on processor 0 max(p) = 99823.7800526305 at position (0.337499959210686 0.0119815945437022 1.59919139963239e18) on processor 2 min(mag(U)) = 0 at position (1.2125 1.4125 4.119968255e18) on processor 0 max(mag(U)) = 0.416412587990551 at position (1.2125 0.00221421732635518 2.4858609322995) on processor 2 min(T) = 288.044594020099 at position (1.93749041958236 0.00246888773684411 0.0377276627556582) on processor 1 max(T) = 307.487743237085 at position (3.06161558808532 3.09883989107467 2.46163835228888) on processor 0 min(CourantNo) = 0 at position (1.21250123476994 1.41249998568824 0.0355901324009811) on processor 0 max(CourantNo) = 0 at position (1.21250123476994 1.41249998568824 0.0355901324009811) on processor 0 min(k) = 7.62163093808797e10 at position (1.7125 2.66249999574979 0.00049999997664166) on processor 0 max(k) = 0.0114244577497563 at position (0.712498589379656 0.0936305427194292 2.40577599472035) on processor 2 min(omega) = 0.203468468793083 at position (1.74994867345548 2.64178641415844 1.15026142133692) on processor 0 max(omega) = 13536.6610183235 at position (3.08539796524394 3.09969118274481 2.48540329051224) on processor 0 Courant Number mean: 0.00148804420017873 max: 0.0647436726007384 Time = 1400.052 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 PIMPLE: iteration 1 smoothSolver: Solving for Ux, Initial residual = 0.000567342333754088, Final residual = 8.69305596971399e07, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 0.000245458850194731, Final residual = 3.68077009226284e07, No Iterations 1 smoothSolver: Solving for Uz, Initial residual = 0.000289979601241606, Final residual = 4.48543840988609e07, No Iterations 1 smoothSolver: Solving for h, Initial residual = 0.000296698844680786, Final residual = 6.63764884766414e07, No Iterations 1 GAMG: Solving for p_rgh, Initial residual = 0.0740550343777385, Final residual = 0.000725044945148411, No Iterations 13 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 1.08536056806946e07, global = 3.64075710261366e09, cumulative = 2.43445457181518e08 GAMG: Solving for p_rgh, Initial residual = 0.0440861554067758, Final residual = 0.000393569738811597, No Iterations 14 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 9.04665810010334e08, global = 3.6443093999305e09, cumulative = 2.79888551180823e08 PIMPLE: iteration 2 smoothSolver: Solving for Ux, Initial residual = 0.000169605500762894, Final residual = 2.22207399157954e07, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 7.50330166453704e05, Final residual = 9.4961785984081e08, No Iterations 1 smoothSolver: Solving for Uz, Initial residual = 9.11322901598886e05, Final residual = 1.22360390214789e07, No Iterations 1 smoothSolver: Solving for h, Initial residual = 2.28734541067651e05, Final residual = 4.83134584065602e08, No Iterations 1 GAMG: Solving for p_rgh, Initial residual = 0.0466962325250491, Final residual = 0.000428205297265179, No Iterations 12 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 3.94241628736469e08, global = 4.31108721873244e09, cumulative = 3.22999423368148e08 GAMG: Solving for p_rgh, Initial residual = 0.0296053687505284, Final residual = 0.000273806614049499, No Iterations 12 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 3.06278115018435e08, global = 4.30888049571482e09, cumulative = 3.66088228325296e08 PIMPLE: iteration 3 smoothSolver: Solving for Ux, Initial residual = 9.36392744378687e05, Final residual = 1.06721902570643e07, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 4.05381191346271e05, Final residual = 4.81158602848071e08, No Iterations 1 smoothSolver: Solving for Uz, Initial residual = 4.71266158880704e05, Final residual = 5.75414949027222e08, No Iterations 1 smoothSolver: Solving for h, Initial residual = 1.8707283656409e05, Final residual = 4.14839197574438e08, No Iterations 1 GAMG: Solving for p_rgh, Initial residual = 0.0303789257000367, Final residual = 0.00028952817806014, No Iterations 10 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 2.97905019564598e08, global = 3.77192915447232e09, cumulative = 4.03807519870019e08 GAMG: Solving for p_rgh, Initial residual = 0.0196994622428568, Final residual = 0.000180796878584002, No Iterations 11 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 2.49826706395044e08, global = 3.77031775813945e09, cumulative = 4.41510697451414e08 PIMPLE: iteration 4 smoothSolver: Solving for Ux, Initial residual = 6.57658865567465e05, Final residual = 7.44857582239132e08, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 2.79973513496785e05, Final residual = 3.38144522082809e08, No Iterations 1 smoothSolver: Solving for Uz, Initial residual = 3.11005630639183e05, Final residual = 3.77439739040657e08, No Iterations 1 smoothSolver: Solving for h, Initial residual = 1.72392202540561e05, Final residual = 3.82872230698463e08, No Iterations 1 GAMG: Solving for p_rgh, Initial residual = 0.0207323494005721, Final residual = 0.000192916158545086, No Iterations 11 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 2.70441030958769e08, global = 3.04867138122196e09, cumulative = 4.71997411263633e08 GAMG: Solving for p_rgh, Initial residual = 0.0136122301209514, Final residual = 0.000131685494725376, No Iterations 11 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 2.37448318224414e08, global = 3.04971502997717e09, cumulative = 5.02494561563405e08 PIMPLE: iteration 5 smoothSolver: Solving for Ux, Initial residual = 7.68948138911585e05, Final residual = 1.33500514434639e07, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 3.40276188770903e05, Final residual = 6.42473722745575e08, No Iterations 1 smoothSolver: Solving for Uz, Initial residual = 3.51279835293852e05, Final residual = 6.60143270214444e08, No Iterations 1 smoothSolver: Solving for h, Initial residual = 2.37990891762838e05, Final residual = 7.68148021791493e08, No Iterations 1 GAMG: Solving for p_rgh, Initial residual = 0.055789102927055, Final residual = 0.000504421961352279, No Iterations 10 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 3.12535425574358e08, global = 2.38263857305886e10, cumulative = 5.00111922990346e08 GAMG: Solving for p_rgh, Initial residual = 0.00952195362129172, Final residual = 3.83661907765528e05, No Iterations 20 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 2.30631834598393e09, global = 1.59539024230693e13, cumulative = 5.00113518380589e08 smoothSolver: Solving for omega, Initial residual = 3.85169919171067e06, Final residual = 3.85169919171067e06, No Iterations 0 smoothSolver: Solving for k, Initial residual = 0.000215175969522929, Final residual = 8.68436227091422e07, No Iterations 1 ExecutionTime = 85.53 s ClockTime = 86 s 

March 3, 2014, 10:43 

#8 
Senior Member
Alexey Matveichev
Join Date: Aug 2011
Location: Nancy, France
Posts: 1,371
Rep Power: 23 
Here's a fragment of SolverPerformance.C's checkConvergence:
Code:
if ( finalResidual_ < Tolerance  ( RelTolerance > small_*pTraits<Type>::one && finalResidual_ < cmptMultiply(RelTolerance, initialResidual_) ) ) { converged_ = true; } else { converged_ = false; } Concerning number of outer iterations  well, for example, during initial stage of melting I need up to 70 outer iterations depending on the problem. 

March 3, 2014, 11:04 

#9  
Member
Cong
Join Date: Nov 2012
Posts: 78
Rep Power: 5 
Quote:
70 outercorrector? that seems to me a lot. Do you think it is of real significance to set such a big number in the beginning? 

March 3, 2014, 11:17 

#10 
Senior Member
Alexey Matveichev
Join Date: Aug 2011
Location: Nancy, France
Posts: 1,371
Rep Power: 23 
It depends. Surely there is a possibility that starting from not fully converged solution in the beginning you will get to more or less correct steady state (or the simulation will blow up if you're not lucky enough ).
But if you're interested in transient state you must have converged solution on every time step. For example in case of melting problems the shape of a melting/solidification front during transience will be different if you go with solution which is not converged. 

March 3, 2014, 11:26 

#11 
Senior Member
Alexey Matveichev
Join Date: Aug 2011
Location: Nancy, France
Posts: 1,371
Rep Power: 23 
I've found a log of the simulation (rather slow melting, final time is 2500 sec). So number of outer iterations was ~60 during first 2 seconds, then it falls to 1012 during 320 sec, then it falls to 6 between 20 and 70 seconds, and then it settles at 2 outer iterations for the rest of simulation.


March 4, 2014, 09:20 

#12  
Member
Cong
Join Date: Nov 2012
Posts: 78
Rep Power: 5 
Quote:
I used to think that for a quasisteady case (or period case) it is not so necessary to get really converged at the first several time steps. Anyway, your comments are of much help. 

March 4, 2014, 16:20 

#13  
Member
Cong
Join Date: Nov 2012
Posts: 78
Rep Power: 5 
Quote:
Hello Alex, Do you have any ideas why in this buoyancy dominant case the residual of pressure is so high and it is very hard to decrease? I would think (probably I am wrong) that the pressure variation is very small (order of 10) compared with the pressure value (101325). What is your idea about this? 

March 4, 2014, 16:42 

#14 
Senior Member
Alexey Matveichev
Join Date: Aug 2011
Location: Nancy, France
Posts: 1,371
Rep Power: 23 
Hi,
can you describe a case in more details (ideally post case files)? As currently we've discussed PIMPLE dictionary but if your initial or boundary conditions are not so meaningful you won't get easily converging solution. The second thing is the mesh and fvSchemes. If your mesh is awful and you'd like to use third order schemes then it is also not so easy to get convergence. 

March 4, 2014, 17:08 

#15  
Member
Cong
Join Date: Nov 2012
Posts: 78
Rep Power: 5 
Quote:
I have tried various cases including the tutorial case (buoyantSimpleFoam  hotRoom) with the default settings. It seems it is very hard to get pressure residual below 1E6. You can also try the tutorial case yourself. And also the finer the mesh is, the higher the residual is 

March 4, 2014, 17:58 

#16 
Senior Member
Alexey Matveichev
Join Date: Aug 2011
Location: Nancy, France
Posts: 1,371
Rep Power: 23 
I've attached modified tutorial case 'hotRoom' ($FOAM_TUTORIALS/heatTransfer/buoyantPimpleFoam/hotRoom).
The only modifications I've made: 1. added residualControl to fvSolution 2. reduced initial deltaT from 2 to 1e3 (as, obviously, the higher initial time step the larger initial residuals, the harder it is to converge). Then it increases but still stays below 2. 3. Allrun script do not run buoyantPimpleFoam itself, you need to run it yourself with 'foamJob buoyantPimpleFoam'. Case is running OK I guess (I waited till 1500 s). It takes 2012 outer iterations for tolerance 1e4, and 34 outer iterations for tolerance 1e2. It is possible to run the simulation with Courant number higher than 1, though you need more outer corrector iterations and finally it leads to the problems with equation of state. 

March 9, 2014, 20:31 

#17 
Senior Member
Huang Xianbei
Join Date: Sep 2013
Location: CAU,China
Posts: 277
Rep Power: 5 
I think it depends on the case you are doing.A better way is firstly using a larger timestep, when the calculation becomes steady, turn to use a smaller timstep to reach a more accurate result.
The case I'm running now is of Courant number=0.5(mean),max=1.5, now the calculation is steady, so I switch to a smaller timestep 

Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Sudden jump in Courant number  NJG  OpenFOAM Running, Solving & CFD  7  May 15, 2014 13:52 
Stable boundaries  marcoymarc  CFX  33  March 13, 2013 07:39 
Courant number  fireman  FLUENT  4  October 4, 2010 12:54 
LES near wall model & courant number  kasim  CFX  5  March 16, 2008 19:23 
IcoFoam parallel woes  msrinath80  OpenFOAM Running, Solving & CFD  9  July 22, 2007 02:58 