CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > Siemens > STAR-CCM+

Courant in implicit unsteady

Register Blogs Community New Posts Updated Threads Search

Like Tree15Likes
  • 1 Post By Alberto Damas
  • 2 Post By triple_r
  • 1 Post By Alberto Damas
  • 11 Post By triple_r

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   January 29, 2016, 18:12
Default Courant in implicit unsteady
  #1
Member
 
Alberto
Join Date: Aug 2015
Posts: 31
Rep Power: 11
Alberto Damas is on a distinguished road
I've read the Courant must be smalller than 1 in explicit simulations, but I have no idea what time step I should use in an implicit one. Do I have to consider the Courant? How should I consider it?

Thx.
aerosayan likes this.
Alberto Damas is offline   Reply With Quote

Old   February 2, 2016, 14:16
Default
  #2
Senior Member
 
Reza
Join Date: Mar 2009
Location: Appleton, WI
Posts: 116
Rep Power: 17
triple_r is on a distinguished road
Courant number condition in explicit solvers is necessary because if the time step is larger than what CFL conditions dictates, the solution will be unstable and the error will grow exponentially the longer you run the simulation.

Implicit solvers don't have this issue of instability, and the solver is always stable no matter how large the time step or the Courant number. However, this doesn't mean accurate. To have an "accurate" solution, you mostly need a timestep-dependency study to see what is the largest timestep that gives you accurate enough solution.

In general, you want your time step size to be smaller than any inherent unsteadiness in the problem.
tonnykz and aerosayan like this.
triple_r is offline   Reply With Quote

Old   February 2, 2016, 14:38
Default
  #3
Member
 
Alberto
Join Date: Aug 2015
Posts: 31
Rep Power: 11
Alberto Damas is on a distinguished road
Thx for answering. I have read that the explicit unsteady model only can be used with no turbulent flows, and my problem is turbulent so I need to use the implicit unsteady I guess.

However I would like to understand the difference between both, explicit and implicit unsteady. Could you explain?

Thx again.
aerosayan likes this.
Alberto Damas is offline   Reply With Quote

Old   February 2, 2016, 15:12
Default
  #4
Senior Member
 
Reza
Join Date: Mar 2009
Location: Appleton, WI
Posts: 116
Rep Power: 17
triple_r is on a distinguished road
The big picture difference is how these methods use the information available from the solution at the previous time steps. I hope I can explain the difference well enough without getting too technical :-)

An explicit method, only uses the information from the previous time step(s) to find what the solution is at the current time step. These methods are usually fast as the only unknown is the state of the system at the node that we are solving for, so there is no need to solve for a linear algebraic set of equations for example. Lets see if I can draw this in a picture :-)

Code:
t+dt        *
            |
t     *-----*-----*
     i-1    i    i+1
in this picture, if we like to know the pressure at node i at time t+dt, we can write the equation as p(i, t+dt) = a function of (p(i-1,t), p(i,t), p(i+1,t)) and because we know the solution for the previous time step, p(i-1,t), p(i,t), and p(i+1,t) all are known.

On the other hand, and implicit method, not only uses the information from the previous step(s), it also uses (currently unknown) information at the current time step as well. Because the result at any node, in implicit methods, depends on the unknown information at the neighboring nodes as well as the known information from the previous time step(s), these methods are usually slower and they require some sort of a solver for a set of algebraic equations.

Code:
t+dt *-----*-----*
           |
t          *
    i-1    i    i+1
in this picture, if we like to know the pressure at node i at time t+dt, we can write the equation as p(i, t+dt) = a function of (p(i-1,t+dt), p(i,t), p(i+1,t+dt)) and because we only know the solution for the previous time step, only p(i,t) is known. So, we have to solve the equations for p(i-1, t+dt), p(i, t+dt), and p(i+1, t+dt) at the same time.

Most problems can be stated in both explicit and implicit method. However, because explicit solver only uses information from the previous steps, it relies on the time step being small enough that the state of the system doesn't change much. This shows itself mathematically in form of the CFL condition (or Courant number being less than a number that depends on the method of discretizing time-dependent term in the equation. It can be 1 for one method, 1.2 for another, for example. But most of the time this number is a bit more than 1, so that's why most people refer to this condition as Courant number being less than 1). Implicit solvers don't have this issue, but they, in general, are more complex and take longer for a single time step.

So, for example, let's imagine you can solve a problem with an explicit solver, but you'll need to use at least 10,000 time steps (let's say this is when Courant number is 1). However, you can also solve the same problem with only 100 steps of an implicit solver (so Courant number will be 100). The choice is yours to decide which one to use: if the implicit solver will solve a step in less than 10 seconds, for example, but the explicit solver will take 0.2 seconds for each time step, then you'll be better off using the implicit solver (100 * 10 < 10000 * 0.2), but if the explicit solver will only take 0.005 seconds for each step, then the explicit solver will be faster (100 * 10 > 10000 * 0.005) and you should choose that solver.

Some problems are inherently such that an explicit solver won't be able to handle just because the state of each node is too dependent on the states of its neighbors at the current time that no matter how small you choose the time step, the solution will diverge with an explicit solver. The only example I can think of right now for this is when you try to couple a fluid flow with a structural problem (FSI). If the flow is incompressible, then an explicit solver will never work no matter how small the Courant number.

I hope this helps :-)
CTYH, karachun, treem22 and 8 others like this.
triple_r is offline   Reply With Quote

Old   February 2, 2016, 15:26
Default
  #5
Member
 
Alberto
Join Date: Aug 2015
Posts: 31
Rep Power: 11
Alberto Damas is on a distinguished road
Thx for answering so fast and clarifying.
Alberto Damas is offline   Reply With Quote

Reply

Tags
courant, implicit, time step


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
same geometry,structured and unstructured mesh,different behaviour. sharonyue OpenFOAM Running, Solving & CFD 13 January 2, 2013 23:40
ddt explicit or implicit with courant number!! mrshb4 OpenFOAM 0 December 13, 2010 12:13
Problem with implicit unsteady solver CCMuser STAR-CCM+ 2 March 3, 2010 12:20
Courant Number in unsteady problems... vandadt FLUENT 0 November 8, 2009 17:12
Could anybody help me see this error and give help liugx212 OpenFOAM Running, Solving & CFD 3 January 4, 2006 19:07


All times are GMT -4. The time now is 14:37.