====== Solving Poisson equation ====== {{ :software:algo:simeondenispoisson.jpg?250 |}} Poisson equation, named this way in honour of french mathematician and physicist Siméon Denis Poisson), is one of the most CPU consuming equation. This page provide resources, and my personal parallel Poisson solver : **BigFish**. ===== Big Fish ===== {{ :software:algo:poissons3.png |}} BigFish is a parallel Poisson equation solver, based on fortran 90 and MPI. An hybrid version will be released if asked for.\\ Interfaces are provided for C, C++ and Fortran. Current version : 0.9, release soon. Equation solved is standard Poisson equation. Originally, the solver was made to solve pressure field in CFD: {{ :software:algo:p1.gif? |}} Algorithm used are Bi-CGSTAB and Multigrid. ===== Other Libraries ===== * FishPack90 : http://www2.cisl.ucar.edu/resources/legacy/fishpack90 * AGMG : http://homepages.ulb.ac.be/~ynotay/AGMG/ ===== Solving Poisson equation ===== Good way is to combine Conjugate Gradient and derived methods with Multi-grids methods. CG will take care of high frequencies while MG will concentrate on low frequencies. Both methods are know to be parallel (MPI), and with some tricks it is possible to make them scale.\\ Bibliography : Henk A. Van der Vorst, Parallel Iterative Solution Methods for Linear Systems arising from Discretized PDE's, Mathematical Institude, University of Utrecht ==== Conjugate Gradient ==== Laplacian can be discretized into matrix K (see [[software:algo:finitedifference| finite differences]]). CG algorithm: {{ :software:algo:p1.png?300 |}} CG algorithm with preconditioning: {{ :software:algo:p2.png?300 |}} ==== BI-Conjugate Gradient Stabilized ==== BI-CGSTAB algorithm: {{ :software:algo:p3.png?400 |}} ==== Red-Black Gauss Seidel Multi-grids ==== ==== Algebraic Multi-grids ==== ==== Make it scale ! ====