How To Keep the Courant Number Below 1
How To Keep the Courant Number Below 1?
The intention of this article is to define what a Courant number is and to give a best practice of how to set your mesh and time step in case you have problems with the Courant number. If you want to have more details you should read this article.
Definition
The Courant–Friedrichs–Lewy or CFL condition expresses that the distance that any information travels during the time step length within the mesh must be lower than the distance between mesh elements. In other words, information from a given cell or mesh element must propagate only to its immediate neighbors.
The derivation of the CFL condition leads to the formula for Courant number and is given by:
where
Basic Information
The Courant number is a dimensionless value representing the time a particle stays in one cell of the mesh. It must be below 1 and should ideally be below 0.7. If the Courant number exceeds 1, the time step is too large to see the particle in one cell, it “skips” the cell. If it is smaller than 0.7, the particle stays in the cell for at least two time steps. The picture below visualizes this situation.
When the Courant number exceeds the value of 1, instabilities are amplified throughout the domain and may cause divergence of the simulation. Accordingly, to decrease the Courant number we can either:
- Decrease the time step
Δt or - Coarsen the mesh i.e. increase
Δx
Best Practices
- Make sure the sizes of the
elements in the mesh do not differ too much. Measure the average cell
size of your mesh. Let’s consider a case where it is about 1.7
mm . - Now have a look at your flow velocity, let’s assume it is 30
m/s . Accordingly, the average time a particle stays in one cell is 1.7e-3 / 30 = 5.67e-5s . - This
is the basis for defining the time step: To make sure your time is not
too high set your initial time step to 10% this calculated value (in our
case this would be 5.6e-6
s ). - Multiply this time by the number of time steps you want to calculate to receive the value for the end time.
Simulation Setup
While defining the simulation control settings for your CFD simulation you can set a maximum limit to the Courant number as shown below:
When this maximum limit is set the solver will try to manipulate the time step size based on Maximal step defined to keep Courant number
Note
Often the reason for a failed simulation is not actually the Courant number, but something else. This issue might just result in a bad Courant number. If you followed this guideline and still get error messages, have a closer look at your boundary conditions and the quality of your mesh quality of your mesh.
Important Information
If none of the above suggestions solved your problem, then please post the issue on our forum or contact us.
Comments
Post a Comment