Jaa


Explicit and Implicit

This is the final post of the simple HPC Math series I am composing. The previous two posts were on linear, and nonlinear solvers.  Just like nonlinear solvers depend on linear solvers, time stepper solvers will depend on the previous two building blocks.  Explicit and Implicit methods are used in numerical simulations to solve a physical process or a series of changes.  You may apply these to many scientific simulations that involve time changes such as big bang, chemical reactions, fusion, even social science models. In mathematical terms, they are used to solve time variant Ordinary Differential Equations (ODEs) and Partial Differential Equations (PDEs). 

* Explicit type of time-advance:

They derive result from the current state of the simulation. It is simple to implement but the size of the step is small, it becomes prohibitively small for fine spatial resolution simulations. It may go so small that the computation will become impractical.  The most basic method comes to mind is the Euler method.   

* Implicit type of time-advance:

Derives result from current state and the next state. It involves solutions of systems of nonlinear equations at every time step.  Implementation is very difficult and requires a pipeline of well connectable software solver components. However, the acceptable size of steps is a few orders of magnitude larger than for the explicit type. Of course, this implicit time-stepping requires efficient solutions of linear systems, efficient solutions of nonlinear systems, and efficient time stepping mechanism, all in parallel. 

And once again, the overall performance depends on how well linear equation solvers perform their work.  This concludes my overly simplified numerical methods review for HPC. If there are questions or concerns, please let me know.

Comments

  • Anonymous
    June 30, 2008
    The comment has been removed
  • Anonymous
    February 24, 2009
    When it comes to HPC development, linear algebra libraries are the essential building blocks.  You