Skip to content

A multigrid solver for general PDEs with periodic boundary conditions. Templated on type and dimension.

Notifications You must be signed in to change notification settings

HAWinther/MultiGridSolver

Repository files navigation

MultiGridSolver

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

About

A multigrid solver for general PDEs with periodic boundary conditions. Templated on type and dimension.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages