An explicit solution results from a method that is independent of other values (for the same level), a single equation is used to evaluate new nodal variables for a single time step.
An implicit solution contains information obtained from solving simultaneous equations for the full grid for each time step. This is computationally more demanding but allows for larger time steps and better stability.
(without mentioning the boundary conditions to keep it simple)
Explicit Scheme: Is one in which the differential equation is discretized in such a way that there is only one unknown (at new time level n+1) on the left hand side (LHS) of the difference equation and it is computed in terms of all other terms on the RHS which are known (at previous time level n+1). Let us write an Explicit Scheme for eqn (1):
Discretizing time derivative using forward difference and the second order derivative using central difference we get:
This is an explicit scheme called FTCS (Forward differencing in Time and Central differencing in Space at time level n) for solving a 1-D heat equation. Explicit as we see one unknown on LHS (Tjn+1) being calculated in terms on all the term on RHS which are known as they are at previous time level n.
Explicit Schemes have to satisfy stability conditions in order for solution to converge. For example above Explicit Scheme in eqn (2) will be stable if r ≤ ½.
Implicit Scheme: Is one in which the differential equation is discretized in such a way that there are multiple unknowns at n+1 time level on the LHS of the equation and the terms on RHS are known ones at n time level. Let us write Implicit Scheme for eqn (1):
Here we discretized time derivative term in backward differencing (Backward in Time) and discretized 2nd order term in Central differencing in Space both at time level n+1. Therefore this implicit scheme is called BTCS scheme.
Implicit Schemes result in multiple simultaneous algebraic equations (here we’ll have 3 equations corresponding to 3 unknowns at time n+1 level) that need to be solved as a system of equations of the form [K]{T}n+1 = {F}n. In Our simple case here we have [K]3x3 {T}3n+1 = {F}3n.
Good thing about Implicit Schemes is that they don’t have to satisfy any stability conditions. They are unconditionally stable. But they are computationally expensive as you need more storage space for [K] matrix and need sophisticated algorithms to solve.
Explicit solution occurs when nodal points do not have any dependencies. If you have n-nodal points or grid points then each equation is solved explicitly. For example the unsteady heat equation can be solved explicitly. Implicit solution occurs when the nodal point has other nodal dependencies. For example when you solve a laplacian equation. In general both these descretisations form a system of equations Ax=b but in explicit solution A is transformed to an identity matrix I (as there are no node-node dependencies) and hence no matrix inversion is required. Implicit methods are known to be more stable hence they are more popular in industrial application problems in CFD. However, implicit methods are more time consuming (computationally expensive) than explicit methods in general.
Instead of answering this question, that has been already answered couple of times in this thread, I would strongly suggest you to start reading this book: "Fundamentals of Engineering Numerical Analysis", from Parviz Moin (CTR Director at Stanford).
Is a very easy to go through book, giving you a first taste of numerical methods often used in CFD.
The explicit function is a function in which the dependent variable has been given “explicitly” in terms of the independent variable. Or it is a function in which the dependent variable is expressed in terms of some independent variables.
It is denoted by:
y=f(x)
Examples of Explicit functions are:
y=axn+bx where a , n and b are constant.
y=5x3-3
The Implicit function is a function in which the dependent variable has not been given “explicitly” in terms of the independent variable. Or it is a function in which the dependent variable is not expressed in terms of some independent variables.
It is denoted by:
R(x,y) = 0
Some examples of Implicit Functions are:
x2 + y2 – 1 = 0
y4 + x3 +17 = 0
Although you can convert a Implicit function into Explicit function it is generally not done because after conversion the new explicit function becomes very complex and some times also gives two different function branch.
For example you can convert the first implicit function example above to a Explicit function but after conversion it gives the following function:
And in the new function there are two branches of “y” one the positive branch and another the negative branch.
The comments to date on implicit solutions relate only to the simplest systems of equations. In more mathematically challenging hyperbolic problems such as fluid dynamics, implicit solutions are no longer unconditionally stable.
Stability fundamentally relates to the propagation of waves of information through the solution. Dynamic waves result from a balance between gravity and inertia, while kinematic waves result from a balance between gravity and resistance.
1. Where kinematic waves travel faster than dynamic waves, the problems will be inherently unstable at microscopic level (hydrodynamic instability). Under these conditions both implicit and explicit solutions have been shown to be unstable.
2. Otherwise numerical stability depends on the relative scales of the control element chosen for analyis. In the most general case this is a 4-dimensional finite hypervolume or CELL, following the locus of a finite volume over a finite lifetime. The distance travelled by a wave during the control element lifetime then relates to a spatial dimension of the CELL by a ratio known as the Courant Number.
3. Boundary conditions can be viewed relativistically as a timewise extension of initial conditions. This means that the spacewise direction in which the equations are solved becomes important.
4. Explicit solutions for each CELL use information only from within that CELL. This means they are stable only for Courant Numbers 1. However they may be unstable at low Courant Numbers if they are solved in the wrong direction from the boundaries.
6. Stability is no guarantee of accuracy, which depends on a balance of influence between boundary and initial conditions, reached at Courant Number = 1. Here both explicit and implicit schemes are generally most accurate.
7. However there are as many Courant Numbers as there are wave types and spatial dimensions, so solution schemes which perform well over a range of Courant Numbers are needed. Here implicit solutions are much to be preferred, especially as they can also be coded to run far faster than explicit solutions.
@Hariprasad, I see many good answers here. They are very useful to a person with a good knowledge of mathematical/numerical analysis. I have given below a really simple, physical explanation of the explicit and implicit methods which my students have found to be very enlightening before embarking on deeper study. I have attached it as a word file.
I begin from the simple countercurrent and co-current (often termed parallel flow) heat exchangers. The known quantities are the two inlet temperatures, flow rates and heat transfer coefficients (from the Nusselt number correlation). The unknowns are outlet temperatures which are required to be determined by a numerical approach. The flow passage is discretized into a number of elements. The figure makes it clear.
(Please see attached file for figure)
In the above coflow example, we have three unknowns, Tout, tout and hear flow q. We have the following three equations:
(please see attachment for equations)
This is easily solvable explicitly and we can “march” from cell 1 to cell 2…. Till we reach the last cell.
The “out” temperatures from the first cell are the ‘known’ “in” temperatures in the next cell.
(please see the second figure in the attached file)
In the counterflow example, in cell 1 we have the same three equations but four unknowns. This is not solvable if we consider the first cell alone.
If we take that the heat exchanger is divided into two cells and take them together, we have six unknowns. We also have three equations for each cell, thus six in all.
So this is solvable, but not explicitly. That is why we call this as implicit method.
Let us say there are 10 cells in the heat exchanger. If we write the equations for all 10 cells, we have 30 equations and 30 unknowns and we get a solvable system. Here we cannot “march” from cell to cell but have to solve all cells simultaneously. To solve a large number of simultaneous equations, we can use matrix methods.
I hope that the above example gives a physical feel to explicit and implicit approaches and eases the understanding of the other answers given.
Rajeev KUMAR has explained your answer very nicely. I will suggest you to follow implicit scheme more often (if possible for the particular problem) because it is always consistent and most of the time implicit methods are stable.
The explicit formulation needs the values from other nodes at a previous instant of time to determine the node value of the present one, the computational calculation method is very simple. However, the time step has to be really small in order to maintain the stability of this approach, so it will require a huge number of iterations that could increase significantly the calculation time.
The implicit formulation is much less time-consuming once that it does not need to verify any stabilization criteria for the time step. Because the calculation of a node value at a present instant depends on the values of neighbouring nodes at the same time. All the nodes are calculated simultaneously.
@Joao_OLiveira I disagree. Explicit solvers are the simplest, and you can determine the stability region of your scheme (eigenvalues) --a priori-- to compute at each step the required time step once the CFL is fixed. The number of computations to achieve a solution at each time step is O(N) using a LU decomposition that can be computed, once for all, if use an explicit scheme (further advantage can be taken if the linear system of equations can be represented by a tridiagonal matrix, which reduces the total number of computations to Nt=45*N for a NxN matrix). http://goo.gl/VNO3Jw
If for some specific direction the physic of your problem imposes a time step that is going to be "very small", then you can switch to an implicit algorithm to evolve those terms. However, to solve for the implicit terms you must assemble a new matrix (a dense matrix) and invert it, or to use some sort of iterative algorithm. In both cases the number of computations are much higher than in the explicit case.
Since the original question is related to CFD numerics, I would suggest you to anyone to read the paper attached that discuss with terms in the Direct Numerical Simulation (DNS) of the NS equations can be treated explicitly, and which should be treated implicitly (wall-normal strong gradients at the near-wall boundaries) once the spatial discretization resolution is chosen. Because of the huge cost of solving such implicit system, approximation are taken and the incurred errors quantified, so one can evaluate the global spatial-temporal accuracy of the solver.
@Juan A. Sillero That's right. Even if the implicit method is unconditionally stable (depending on the time step and the problem), it is very costly compared to the explicit formulation. However, when I said that the implicit method can be less time-consuming it was because it can use large time steps and get the solution in a shorter time than explicit approach (for some terms) with a reasonable accuracy. That's the main goal, results with low computer costs and sufficient accuracy. It was a general explanation.
Regarding to your last paragraph, that's why the CFD software usually uses a semi-implicit approach.
Explicit schemes have been popular in areas like computational aeroacoustics because the resolution requirement on the time step is generally severer than the stability requirements, so there is no time saving for using implicit schemes.
That depends on the numerical solution scheme. It could be implicit or explicit. Each one has advantages and disadvantages and the choice depends on the requirements of the problem at hand.
In explicit integration methods information is used that already exists, particularly concerning the derivatives: to calculate yt +dt you do use the derivative at point t but not at t+dt.
In implicit methods you estimate derivatives which are not already calculated (cost considerably more calculation time). Implicit methods are difficult to implement .Many models consisting of partial differential equations can only be solved with implicit methods because of stability demands. Although implicit methods often have to be employed in many simulation models.
When loads are slowly applied onto a surface or structure, the loading can be considered ‘quasi-static’ or ‘time-independent’. In contrast, all dynamic and nonlinear problems such as crash and impact are time-dependent meaning that incremental load (displacement steps) are needed to solve the problem. There are two methods to solve these problems, ‘implicit’ and/or ‘explicit’. In an Explicit analysis, the stiffness matrix updates at the end of each increment based on geometry and material changes. Then a new stiffness matrix is constructed and the next increment of load (or displacement) is applied to the system. In this type of analysis, in order to get a good accuracy, the increments should be small enough, therefore this method is quit time consuming.
An Implicit FEM analysis is the same as Explicit with the addition that after each increment the analysis does Newton-Raphson iterations to enforce equilibrium of the internal structure forces with the externally applied loads. To do this, it requires a numerical solver to invert the stiffness matrix once or even several times over the course of a load/time step. This matrix inversion is an expensive operation, especially for large models. Explicit doesn't require this step.