Implicit versus Explicit
Hi pals,
Yesterday i had a big discussion on implicit vs explicit with my Senior.but we r not able to conclude and distinguish it completely.My understanding in this is all that Anderson has explained in his book "CFDBasic with applications".. I want u people to Give me some basic ideas in this regard.Like whats special abt implicit and explicit schemes,which have what advantages,which can be used wher?.Numerical problems in each of the schemes...like that Any help will be well appreciated... Thanks in advance, Deepak Student.. 
Re: Implicit versus Explicit
Dear Deepak,
Consider the ODE given by dU/dt = R(U). This is actually a state update formula, wherein the solution U at different time levels are needed. Therefore, a suitable time stepping procedure is required. One of the simplest ideas that could come to your mind from basic numerical analysis would be an Euler backward differencing or RungeKutta methods routinely used for numerical solution to ODEs. These are explicit in nature. This can be better explained as below. The RHS of the ODE is a function of the solution U. If we know the solution at time level n and would like to get the solution at time level (n+1), then we could have dU/dt = R(U^n) ....(1) or dU/dt=R(U^{n+1}).....(2). It is not difficult to realise that with a suitable time discretisation on the LHS, (1) would lead us to a simple algeabraic equation or U^{n+1}. For instance, if an Euler backward differencing in time was used, (U^{n+1}  U^{n})/delt = R(U^n) and with the functional form of R known, U^{n+1} can easily be obtained. This is an explicit procedure. RK4 can also be shown to fall in the same category. It is evident that such schemes are quite simple, as they lead to simple algebraic relations that can be directly solved for. On the other hand, for the same Euler discretisation if (2) had been employed then we would have U^{n+1}delt*R(U^{n+1}) = U^{n}. Note that U^{n+1} is the sought after solution, and hence even when the functional relation for R is known the LHS remains unknown. It follows taht an iterative procedure would become necessary for solving for U^{n+1}. This is referred to as Implicit procedure. Compared to explicit schemes, more computational effort would be required here, since an iterative solution is necessary. A simple example of implicit procedures is a CrankNicholson procedure. To talk of advantages and applications, it must first be realised that under linear stability analysis, explicit schmes are bounded by the CFL criterion for stability. Though much easier to solve, the time step coming out of the CFL criterion could be quite small, which means the code has to run for long before a steady state solution is achieved. On the other hand, implicit procedures are unconditionally stable(*) and therfore the time steps that can be taken are quite larger and this accelerates the convergence to steady state. Thus for convergence acceleration to steadystate, implicit solvers play an important role, as do other techiniques such as multigird and enthalpy damping among others. However, for unsteady solvers, the implicit schemes cannot be used as such. Implicit schemes actuallt exploit the ideas of ``inconsistent linearisation" and does not bother about the temporal accuracy, as steady state problem is not timedependent. On other hand, unsteady problems are driven by the timedependent term, and if the same steady state solver is used for an untseady computation, only an explicit firstorder accurate scheme would work. However, there do exist techiniques wherein the unsteady problem is converted to a pseudosteady problem and the implicit solvers are used quite efficiently. Thus, in short the disadvantage of iterative solvers required to solve matrix equations for time update (**) in case of implicit solvers are greatly offset by its acceleration convergence capability, which makes it an attractive choice for a range of compressible flows in steady and unsteady regimes. * All implcit schemes are not unconditionally stable. The analysis depends on the kind of scheme employed. Also, in principle, NO scheme is unconditionally stable, since the analysis employed is linear stability analysis. Hence, at some point when the time step is increased in ana attempt to accelerate convergence, nonlinearity effects would become prominent and therfore cause a failure. The only truth that is acceptable is that implicit schemes, in general have a larger region of stability compared to explicit schemes, leading to larger time steps during time marching. However, on extremely fine meshes at very high mach numbers and complex geometries, it may be necessary to use time steps that are quite smaller than what we would have expected the implict scheme to permit. ** Since we update all points in the given mesh, implcit schemes lead to a matrix system of equations. Though direct solvers can be employed, iterative procedures are much faster and quite accurate for practical applications in higher dimensions. Also, please note that the discussions did not pertain to the actual form of R, called as the Residual and the concepts of linearisation for the implicit schemes which would lead to additonal practical implementation issues. Hope this helps Regards, Ganesh 
Re: Implicit versus Explicit
Thanks a lot rajesh for this nice enlighting article on this topic.Its really gave me a basic idea.
Can we clearly distinguish that explicit method is used for these kinda problems and implicit for some other category.Or all problems can be solved by both the methods... Then if iam not wrong,explicit methods r more suitable for transient simulations,right?.... 
Re: Implicit versus Explicit
"However, for unsteady solvers, the implicit schemes cannot be used as such. Implicit schemes actuallt exploit the ideas of ``inconsistent linearisation" and does not bother about the temporal accuracy, as steady state problem is not timedependent."
This is generally untrue  a correctly implemented implicit scheme such as CrankNicolson is time accurate (2nd Order). Basically you just need to ensure that your iterative scheme converges to a solution of the nonlinear difference equations at each timestep. You also need to account for the type of pde you are solving. For parabolic equations such as the the heat equation and unsteady NavierStokes equations implicit methods treat the single characteristic direction (time) consistently while explicit schemes do not (this is why explicit schemes have stability constraints when applied to diffusion problems). A simple problem that highlights a problem with explicit methods is to use a forward Euler step to solve the heat equation with a prescribed time dependent wall condition  in this case you can step the solution forward a single time step without knowing the wall value at the end of the step! That is to say the solution one grid point from the wall does not know the wall temperature has changed. This is inconsistent with the continuous form of the equations. 
Re: Implicit versus Explicit
>explicit methods r more suitable for transient simulations,right
You got the general idea, but that statement should not be regarded as generally true. To put it in simple terms: There are two considerations that determine the maximum allowable time step: a) stability, b) solution accuracy. Explicit methods are more efficient if b) dominates over a), i.e. if the solution accuracy requires such a small time step that stability will never be an issue and an implicit method is simply not necessary. Implicit methods are more efficient in cases when the time step can be increased beyond the explicit stability method because the important time scales of the flow are so large that even large time steps give you a good solution (steady state is the extreme). 
Re: Implicit versus Explicit
Just to put some other possibilities in this thread. You can have a tradeoff between the good properties of both worlds (implicit/explicit).
For further details, I suggest you take a look in the following articles: Souza DAF, Martins MAD, Coutinho ALGA, Edgebased adaptive implicit/explicit finite element procedures for threedimensional transport problems, Communications in Numerical Methods in Engineering, 2005 21(10): 545552 Hughes TJR, LIU WK, Implicitexplicit finite elements in transient analysis: stability theory. Journal of Applied Mechanics 1978 (45):371374 Hughes TJR, Liu WK, Implicitexplicit finite elements in transient analysis: implementation and numerical examples. Journal of Applied Mechanics 1978 (45):375378 Tezduyar TE, Liou J. Adaptive implicitexplicit finite element algorithms for fluid mechanics problems. Computer Methods in Applied Mechanics and Engineering 1992, 95(8):397440 
Re: Implicit versus Explicit
Dear Tom,
"However, for unsteady solvers, the implicit schemes cannot be used as such. Implicit schemes actuallt exploit the ideas of ``inconsistent linearisation" and does not bother about the temporal accuracy, as steady state problem is not timedependent." I would like to clarfiy a little more on this issue. As Antony Jameson points out beautifully in one of his presentations, there exists the following paradox: Steady state problems require implicit time stepping for convergence accelaeration, which in turn requires a steady state problem. Simply put, the ideas of "inconsistent linearisation" of the implicit scheme thrive on this paradox, where temporal accuracy is of no concern. For transient problems, as your rightly pointed out CN is second order time accurate. It is therefore necessary to make use of some suitable idea, such as Dual Time Stepping which constructs a pseudosteady problem in dual time, where the implicit time stepping procedure can be applied, without affecting the temporal accuracy, since the outer loop in physical time is not tampered with. I believe the confusion arose from an improper usage of the term "implicit schemes" from my side. All I wanted to convey was that implcit time stepping as an accelaeration convergence device requires a steadystate problem to operate upon, which is not quite available when a trnsient simulation is run. I am sorry if I had given a misleading picture and hope that this clarifies the situation. Regards, Ganesh 
Re: Implicit versus Explicit
"It is therefore necessary to make use of some suitable idea, such as Dual Time Stepping which constructs a pseudosteady problem in dual time,..."
Just a comment  Not all steady state/implicit solvers use psuedotime stepping. Two common iterative methods as taught in maths courses those of Newton and Picard. Neither of these are psuedotime stepping methods (you could try to reformulate them as such but that would be missing the point of the method). As an example when you solve a linear elliptic problem (which arises as the steady state of a parabolic equation) do you consider solution methods such as BiCG, GCR(k), etc as psuedotime marching schemes? I know I don't. 
Re: Implicit versus Explicit
Dear Tom,
Thanks for the comments. Steady state solvers do not require pseudo time stepping. Unsteady solvers may/may not need them. Rather than using a Dual Time Stepping method, you could actually use Newton iterative method in physical time as well. My comments in the earlier post are more specific to implicit time stepping schemes involving relaxation procedures such as Point Jacobi and GaussSiedel. In 2D/3D finite volume solvers, these are made use of in solving the matrix equation, leading to the state update, and here the inconsistent linearisation is invoked (The inviscid flux jacobian on the LHS is cheaply calculated from an YoonJameson splitting, while the RHS could have fluxes coming from a different flux scheme). Such a procedure directly employed for transient problems would adversely affect temporal accuracy,and therefore the use of pseudosteady problems. My idea was not to convey that implicit schemes are to be stepped in pseudotime, but just bring out clearly the fact that they need a steadystate problem to operate upon (under arguments outlined above). I am also of the opinion that BiCG and related methods are not pseudotime stepping, nor is that I want to call any implicit scheme as a pseudotime stepping scheme. As my arguments presented above show, inconsistent linearisation (this makes it quite cheap to work with !!) makes it mandatory to use implicit schemes in a pseudotime framework (as also other acceleration convergence devices, though not result of any linearisation). The comments I have made are based on my own experiences in unsteady solvers and implicit schemes, and there do exist alternate methods that could bypass the arguments listed above. I hope this clarifies the post. Regards, Ganesh 
Re: Implicit versus Explicit *NM*

Re: Implicit versus Explicit
Hi all,
They say even in implicit we can give time based load similar to explicit, then where exactly the difference lies? We usually think that explicit is time based n implicit is not, but what is the exact definitions for these two, can anyone pls help me out. I have carried out both Linear static as well as crash as of now.But I get confused about it when ever we have a discussion about it. regards, Sneha 
Re: Implicit versus Explicit
hi
The difference lies in the factors of time step we can give for quick convergence.U can give any time step in implicit,but it ll affect ur convergence after a certain extent. thats why its always better to be in a safer side and give it as a multiple of explicits time step.But in explicit the time step is limited.U cant go beyond that otherwise u have to compromise with the stability of the particular scheme.. The main difference is the post no 4 by mani..a nice explanation of the application of both the schemes. i thk this ll help u,otherwise let us no, with regards, Deepak 
Re: Implicit versus Explicit
Hi Deepak,
Thanks for the response. I do understand that there is an empherical formula for calculating the time step for explicit analysis. How do u go about it in implicit for an example. I also wanted to know about implicit and explicit applications. Like, to which domain does contact analysis belong to? Some guys speak about contact analysis in Nastran, where as its suppose to be implicit, right? I get confused with these sort of questions. Is it that in implicit, Mass matrices and K matrices are calulated for only 1 time and in explicit for every incriment of time step we have specified. Hope u got what my doubt is? I am very new to this forum. Will try to search the link u specified. (Post 4 by Mani). Regards, Sneha 
Re: Implicit versus Explicit
Dear Sneha,
I ll soon come with more descriptive answers to your questions.By that time i ll suggest you to go thro the previous posts one implicit and explicit method. Thanks and with regards, Deepak Thirumurthy 
Re: Implicit versus Explicit
Sure. Will be waiting for your reply. Thanks

implicite vs explicite
is alternate direction implicite approach (ADI) unconditionally stable or not?
VIJAY BHENDWADE (student) 
All times are GMT 4. The time now is 21:58. 