Convergence problem with tetrahedral grids
Hii,
I am running the case of flow over a square cylinder using LES by ICEM generated grid. But only after a few time steps, the code diverges, with Courant number crossing 4 or 5. I tried to use Upwind Schemes as well as first order time stepping to tackle the problem, but still the issue wasn't solved. At last, I increased the number of PISO nonorthogonal correctors to 5 (since increasing to 3 didn't help), and now its converging, but its painstakingly slow. Can you please let me know of a way by which I can run OF with tethrahedral grids smoothly. Thanks, Tarak 
I am also facing difficulties on getting a 3D tetra mesh converging with OF 1.6.x.
The case is quite standard: some pipes with two fans that put the fluid in motion. The geometry is complex and I have no possibility to use a hexa mesh. The case is steady state and turbulent (simpleFoam); BC are as tested on similar (working) cases. fvSchemes are: Code:
gradSchemes: faceMDLimited Gauss linear 0.5; Code:
p Suggestions? mad 
Quote:
if you are using linearUpwind for all the divSchemes, try instead to set div(phi,U) to Gauss linearUpwindV faceMDLimited Gauss linear 1, and div(phi,k/epsilon) to Gauss upwind. By the way, why so strong underrelaxation factors? Have you tried to leave the URF for p at the 0.3 standard value, for U at 0.7 and to set the URF's for k and epsilon to 0.40.5? Best Regards Vesselin 
Quote:
two hints: 1) use hexameshes for LES calculations; 2) you cannot use first order schemes for LES, because they are too diffusive: you'll have to use at least a limited second order scheme, such as limitedLinear. Best regards Vesselin 
Quote:
, let me change the question: what are your URF's after the first nsteps in which you leave so low values? 
Quote:
Quote:
BTW... sounds a bit weird that, whenever I change my fvSchemes & fvSolution, I cannot get too far with my simulation. May there be something more subtle than this? May be due to the 2 fan BC I imposed? mad PS: seems like in the last day we are the only active people in the forum :rolleyes: 
Quote:
Quote:
Quote:
Vesselin 
Quote:
Quote:
Code:
Overall domain bounding box (12 1.804 7.19731e17) (14.905 1.804 10.0839) I will give a try to upwind on k and epsilon. Thank you in the meanwhile.. mad 
Quote:
Quote:
Quote:
V 
Hi Tarak, Did you try renumberMesh after importing the mesh to FOAM? I've found that meshes imported from Fluent are not very efficient in the numeration and this impacts strongly in iterative solvers.
Regards. 
Quote:
mad 
suggestions?
Hi everybody,
seems like all my problems are still there, on a case that is similar to what posted above. I wrote on a different thread: http://www.cfdonline.com/Forums/ope...tml#post293910 Maybe you can take a look to it and suggest something more on the subject... mad 
This is the thread I meant to post on. I started clicking your links and posted to the wrong one :). I'll repeat my post:
 Just curious, have you tried using leastSquares for the gradScheme? I did some 2D calculations for a NACA airfoil using both structured and unstructured grids. I too suffered convergence issues when running the calculation for the unstructured case. However, switching the gradScheme to a cellLimited leastSquares happened to solve the problem. Let me know if this works.  And to answer your question, there may not be an advantage to using leastSquares, it's just an observation made from several simulations I've run for unstructured grids. Most of the time I have issues obtaining convergence when using tet grids and the Gauss linear gradScheme. Just and observation, was curious to see if it had any effect on your calculation. 
Quote:
mad 
Hii,
I would recommend using Gamma Differencing Scheme with appropriate blending factor for obtaining good convergence/stability for tetrahedral grids. This is how I managed to get the code run. Thanks, Tarak 
Quote:
mad 
In 1.6ext, we've got special discretisation scheme for tet meshes: use it on convection in the momentum equation and on interpolate(U). The scheme is called reconCentral, and the settings for a tet mesh look like this:
gradSchemes { default cellLimited leastSquares 1.0; } divSchemes { div(phi,U) Gauss reconCentral cellLimited leastSquares 1.0; //... } laplacianSchemes { default Gauss linear limited 0.5; } interpolationSchemes { default linear; interpolate(HbyA) linear; interpolate(U) reconCentral phi cellLimited leastSquares 1.0; } Enjoy, Hrv 
Hi Foamers,
I am facing the same problem using multiphaseEulerFoam (OpenFoam 2.3.0) on Ubuntu 16. In fact, my geometry is discretized by a tetrahedral mesh and when I run checkMesh, I get the Mesh OK message. My problem is that the solver craches because the simulations become quickly unstable and the Courant number diverges. Using adaptable time steps didn't help. I have tried to modify my fvSchemes as described above but this didn't help. Here is my fvSchemes : // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // ddtSchemes { default Euler; } gradSchemes { default cellLimited leastSquares 1.0; } divSchemes { default none; "div\(phi,alpha.*\)" Gauss reconCentral cellLimited leastSquares 1.0; "div\(phir,alpha.*,alpha.*\)" Gauss vanLeer; "div\(phiAlpha.*,U.*\)" Gauss limitedLinearV 1; div(Rc) Gauss linear; "div\(phi.*,U.*\)" Gauss limitedLinearV 1; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; interpolate(HbyA) linear; interpolate(U) reconCentral phi cellLimited leastSquares 1.0; } snGradSchemes { default corrected; } fluxRequired { default no; p ; pcorr ; } // ************************************************** *********************** // I saw different threads exposing this problem (unstable OpenFoam solvers with tetrahedral meshes) but didn't find a solution. Your help will be appreciated. Thank you. Mhrz Quote:

Mehrez,
I run hybrid prism, pyramid, tet meshes using OpenFOAM pretty frequently and have come up with a standard fvSchemes dictionary that I start with every time. I also have a fvSolution dictionary that I've created that works equally well coupled with the changes I made to fvSchemes. Both are listed below for your reference. fvSchemes // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // ddtSchemes { default steadyState; } gradSchemes { default faceMDLimited Gauss linear 0.333; } divSchemes { default none; div(phi,U) bounded Gauss linearUpwindV grad(U); div(phi,U) bounded Gauss upwind; div(phi,nuTilda) bounded Gauss upwind; div((nuEff*dev(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear limited 0.333; } interpolationSchemes { default linear; } snGradSchemes { default limited 0.333; } fluxRequired { default no; pcorr ; p ; } // ************************************************** *********************** // fvSolution // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { p { solver GAMG; tolerance 1e6; relTol 0.01; smoother FDIC; nPreSweeps 1; nPostSweeps 2; nFinestSweeps 2; cacheAgglomeration on; agglomerator faceAreaPair; nCellsInCoarsestLevel 1000; mergeLevels 1; } U { type coupled; solver PBiCCCG; preconditioner DILU; tolerance (1e6 1e6 1e6); relTol (0.01 0.01 0.01); } "(komeganuTilda)" { solver PBiCG; preconditioner DILU; tolerance 1e6; relTol 0.01; } } SIMPLE { nNonOrthogonalCorrectors 3; } potentialFlow { nNonOrthogonalCorrectors 10; } relaxationFactors { fields { p 0.2; } equations { U 0.5; k 0.5; omega 0.5; nuTilda 0.5; } } cache { grad(U); } // ************************************************** *********************** // 
Dear tcarrigan,
Thank you for your answer and for sharing your files. I have edited my fvSchemes and fvSolution files as follows: fvSchemes // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // ddtSchemes { default steadyState;//Euler; } gradSchemes { default faceMDLimited Gauss linear 0.333;//Gauss linear; } divSchemes { default none; "div\(phi,alpha.*\)" bounded Gauss upwind;//Gauss vanLeer; "div\(phir,alpha.*,alpha.*\)" bounded Gauss upwind;//Gauss vanLeer; "div\(phiAlpha.*,U.*\)" bounded Gauss linearUpwindV grad(U);//Gauss limitedLinearV 1; "div\(phiAlpha.*,U.*\)" bounded Gauss upwind;//Gauss limitedLinearV 1; div(Rc) Gauss linear; "div\(phi.*,U.*\)" bounded Gauss linearUpwindV grad(U);//Gauss limitedLinearV 1; "div\(phi.*,U.*\)" bounded Gauss upwind;//Gauss limitedLinearV 1; } laplacianSchemes { default Gauss linear limited 0.333;//Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default limited 0.333;//corrected; } fluxRequired { default no; p ; pcorr ; } // ************************************************** *********************** // fvSolution // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { alpha { nAlphaSubCycles 2; } p { solver GAMG; tolerance 1e6; relTol 0.01; smoother FDIC; nPreSweeps 1; nPostSweeps 2; nFinestSweeps 2; cacheAgglomeration on; agglomerator faceAreaPair; nCellsInCoarsestLevel 1000; mergeLevels 1; } pFinal { $p; tolerance 1e14; relTol 0; } pcorr { $p; tolerance 1e14; relTol 0; } "U.*" { type coupled; solver PBiCCCG; preconditioner DILU; tolerance (1e6 1e6 1e6); relTol (0.01 0.01 0.01); } } PIMPLE { nOuterCorrectors 1; nCorrectors 2; nNonOrthogonalCorrectors 3; } relaxationFactors { fields { p 0.2; } equations { U 0.5; } } cache { grad(U); } // ************************************************** *********************** // I have tried to run a simulation using these files but it goes quickly unstable. Here is a copy of my log file where the deltaT is going down: Courant Number mean: 0.0021156010062783 max: 0.049408733271849 deltaT = 7.6566763768132e19 Time = 6.18252270356846e06 MULES: Solving for alpha.gas gas volume fraction, min, max = 0.30019748795334 0.23897356139625 0.41705604707805 MULES: Solving for alpha.liquid liquid volume fraction, min, max = 0.70087632594298 0.3 0.86565308392893 Phasesum volume fraction, min, max = 1.0010738138963 0.59999999999999 1.1699030447477 MULES: Solving for alpha.gas gas volume fraction, min, max = 0.30019798328777 0.2386702783917 0.41704447896555 MULES: Solving for alpha.liquid liquid volume fraction, min, max = 0.70087752844775 0.3 0.86618197518773 Phasesum volume fraction, min, max = 1.0010755117355 0.59999999999999 1.1703801282208 GAMG: Solving for p, Initial residual = 0.23419353824923, Final residual = 0.0023325036575349, No Iterations 2 GAMG: Solving for p, Initial residual = 0.052855980175197, Final residual = 0.0003817033201444, No Iterations 2 GAMG: Solving for p, Initial residual = 0.014025336427512, Final residual = 8.8046943721164e05, No Iterations 2 GAMG: Solving for p, Initial residual = 0.0048650690815121, Final residual = 4.0782603314908e05, No Iterations 2 time step continuity errors : sum local = 9.3649763390591e09, global = 7.9493516767848e10, cumulative = 8.2571867820764e08 GAMG: Solving for p, Initial residual = 0.20867553926075, Final residual = 0.00073649732328669, No Iterations 3 GAMG: Solving for p, Initial residual = 0.050332050313325, Final residual = 0.00029712401985861, No Iterations 2 GAMG: Solving for p, Initial residual = 0.013334743089887, Final residual = 8.741559351822e05, No Iterations 2 GAMG: Solving for p, Initial residual = 0.0048312307962256, Final residual = 7.7390130904333e15, No Iterations 26 time step continuity errors : sum local = 1.8252376105909e18, global = 3.8452675495394e20, cumulative = 8.2571867820725e08 ExecutionTime = 424.27 s Expression Re_l : average=2.7438854159252e+20 min=6.7983965132898e+18 max=4.2263684536994e+21 Expression Re_g : average=1.2645680808052e+20 min=3.1815443817709e+18 max=2.7037109361158e+21 Expression rho_avg : average=489.19817329068 min=447.12039199452 max=600.27512277584 Expression head : average=9022.1840703653 Expression alpha_g on outlet_gas: average=0.30283498588815 min=0.2386702783917 max=0.36663713347938 Expression alpha_g on outlet_liquid: average=0.3006588178025 min=0.2974219141048 max=0.30429082494955 Expression alpha_g on inlet: average=0.3 min=0.3 max=0.3 Expression Q_all on outlet_gas: sum=24210659648582 min=4793324780552.7 max=247183322085.2 Expression Q_all on outlet_liquid: sum=17816623940489 min=193138733172.99 max=521444731230.64 Expression Q_all on inlet: sum=6394035708093.2 min=1215092696559.3 max=597712717234.6 Expression Q_l on outlet_gas: sum=17262638871291 min=3156101143802.7 max=235004594945.67 Expression Q_l on outlet_liquid: sum=12558463445253 min=137931428364.81 max=379354434355.94 Expression Q_l on inlet: sum=1580810441283.7 min=596686394611.29 max=299229574724.19 Expression Q_g on outlet_gas: sum=6948020777290.6 min=1637223636750 max=794642130398.71 Expression Q_g on outlet_liquid: sum=5258160495235.8 min=51791175935.031 max=161116494634.18 Expression Q_g on inlet: sum=4813225266809.5 min=618406301947.99 max=305405324047.52 Expression p_avg on outlet_gas: average=0 min=0 max=0 Expression p_avg on outlet_liquid: average=7000 min=7000 max=7000 Expression p_avg on inlet: average=9003.4061139999 min=9003.4061139999 max=9003.4061139999 Expression recycle on outlet_liquid: sum=2.7864442355142 Expression p_inlet on inlet: average=9003.4061139999 Expression p_inlet_proporionalTerm on inlet: average=0 Thank you for your help, Mhrz 
All times are GMT 4. The time now is 23:29. 