A multigrid solver for general PDEs in [0,1]^n with periodic boundary conditions.
Author: Hans A. Winther, University of Oxford (2016)
- 
Simple multigrid-solver for general (linear or non-linear) PDEs in any dimension.
 - 
Templated on the type: float, double, complex, etc.
 - 
The boundary conditions implemented are periodic. Can be extended with not too much work, but have not added this yet (e.g. add a mask field)
 - 
Made to make it easy to implement new equations by defining a new class that extends the MG-solver class.
 - 
Make the class [MysSolver : public MultiGridSolver] and implement the functions [l_operator] and [dl_operator]
 - 
One can also implement the convergence criterion in [check_convergence] (rms-residual < epsilon is standard).
 - 
Any external grids needed to define the PDE can be added through [add_external_grid]
 
Examples included:
- Poisson solver D^2 phi = S
 - f(R) solver D[b(phi) D phi] = c(phi)
 - Continuity solver f delta + D[(1+delta]v] = 0 for velocity field v