In the finite element method, in order to use MPI, we need to decompose the domain into sub-domains first. Then my question is whether we can solve each sub-domain using a direct solver?

Of course, unlike solving the entire domain as a whole, we don't get the right solution in one iteration. Will the solution converge after several iterations with the direct solver? If it converges, how does it compare to an iterative solver with domain decomposition: which one is better?


2 Answers 2


As I understand, this is a fairly popular approach. Direct solvers are usually more efficient than iterative solvers for < 100,000 unknowns, so you partition the problem into subproblems of roughly this size, use direct solvers on each subproblem, and combine them globally with some method like alternating Schwarz. It's also common use the domain decomposition method as a preconditioner for a global CG/GMRES solve.

You're correct that domain decomposition methods don't get the right answer in a single iteration. The alternating Schwarz method can be thought of as overlapping block Jacobi, just with very big blocks. The simple Jacobi iteration converges for strongly diagonally-dominant matrices; it's a similar argument to show that the alternating Schwarz method is convergent (for certain nice systems).

There are of course many variations on a theme. If you can make the subdomains structured grids, you might be able to use geometric multigrid on the subproblems rather than a direct solver.

Also worth noting is that some folks think of multigrid and domain decomposition methods as the endpoints of a continuum of algebraic multi-level methods.

If you're interested in these sorts of things, I highly recommend this book.

  • $\begingroup$ I am confused with domain decomposition for MPI with domain decomposition preconditioner. Are they the same thing in the sense that they both decompose the domain into sub-domains? $\endgroup$ Commented Oct 28, 2016 at 13:47

which one is better?... Is a wide question. It depends, what is your main goal. Direct solvers usually require considerable RAM, even for a sub-domain solution. One can use iterative solvers for sub-domains, and an iterative solver for global solution/convergence. The memory footprint is minimal, but this will be slower (according to my experience) than using direct solvers or iterative/direct hybrid methods. Check http://www.domain-decomposition.com for coverage recent advances in DD.

  • 5
    $\begingroup$ You should explicitly state your relation with this site. $\endgroup$
    – nicoguaro
    Commented Mar 4, 2017 at 16:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.