CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Running, Solving & CFD (
-   -   How to fix slowly increasing Courant numbers (

ploceus December 12, 2005 19:30

Hi, I'm running icoFoam case
I'm running icoFoam case that I made and it seems the color
pictures of p and U are fine. But the Courant numbers grow
from near 0 to about 2 or 3 at end of run. Time at end is 5 and time step is 0.005.
If I keep running longer, Courant numbers grow too. Sometimes
grow to several hundreds.

If I make time step larger, Courant numbers grow faster.

What else should I adjust?

Mean and max Courant Numbers = 0.430168 2.4975


mattijs December 13, 2005 05:53

Your boundary conditions are p
Your boundary conditions are probably incorrect. Try simplifying your case, use fixedValue on U, no cyclics etc.

edvardsenpriv December 14, 2005 09:56

Sorry to meddle in, but I'm ha
Sorry to meddle in, but I'm having some similar problems. How did you generate your model?

As a test case (for my self) I have cloned the "icoFoam/cavity" case in OpenFOAM User Guide, by switching the originally 2D blockmesh with a similar imported 3D model. The imported model consists in 3D tetmesh generated in netgen with a similar cell-distribution as the originally modell. The originally boundary condition, "empty", for 2D mesh is changed to "wall", and the thickness of the model (dimension in Z-direction) is doubled (since this now is a 3D case). All other parameters for the two cases should be identical, still the modified case diverges.

After having tried to eliminate various error-source, I have started to wonder if I may be a mixing up units somehow when importing/translating a model, in my case 3D tet mesh from netgen. When opening the both cases in parawiew, they both have a maximum length of 0,1 and have a similar cell-distribution.

Is there any issues when importing/translating models considering units or other which are easily missed?

ploceus December 14, 2005 13:12

Hi. I did not use any mesh ge
Hi. I did not use any mesh generator. Instead I specified vertex points in blockMeshDict since my geometry is simple.. just a rectangular pipe.

I finally got my case to work. The BC was giving me grief all this time.

edvardsen December 16, 2005 04:11

I got my case running as well,
I got my case running as well, but I had to use a small timestep as 0.00005s. If I have understood it right, this should give a Courant number of;
Co=(timestep 0.00005s * velocity 1m/s)/element_size 0.005 = 0.01
I have taken the element side of the tet-elements as element sisze, not sure if this is right though. When running the analysis the log gives mean and max courant nr to approximately 0.015 and 0.07.
I was supprised that a had to use that small timesteps to make the case work. Should I suspect something wrong with BC, units or other, or is this simply the price to pay for using first order tetrahedral elements?

wolle1982 November 18, 2008 09:11

Hi, I had several problems. I
I had several problems. I think, the very small timestep ist relevant in the beginning. if you start with a very little timestep. the Co-Number will decrease during the calculation. Try a adjustable timestep Control. Therefore you might have to change some files. I don't know if adjustable timestep Control works already in icoFoam. With turbFoam I had to change the turbFoam.C like this:

marico June 15, 2009 04:00

Time step control
Hi all,

I'm simulating the expanding process of a gas in a reciprocing engine. At the beginning in the intake port there is a pressure of ~ 25 bar which expands to the atmosphere pressure inside the cylinder.
Therefore I need to initialize two regions with the different pressures (probably with funkySetfields) which will cause a high pressure gradient at the "interface" of these regions. The needed timestep will be probably very small (as I experienced so far in CFX) to capture the pressure waves ...

My question now is: What is the most appropriate way to USE DIFFERENT TIMESTEPS (at about 10 different), since it has to be adjusted for the whole simulation?
(Adjusting the timestep automatically is not good because of the different moving meshes needed for the case)

Thanks for your help

All times are GMT -4. The time now is 21:25.