multigrid
A finite-difference multigrid solver for elliptic PDEs on rectangular domains. It was written for, and its numerical scheme is documented in,
J. C. Robertson and R. C. Kerr, Isothermal dynamics of channeled viscoplastic lava flows and new methods for estimating lava rheology, J. Geophys. Res. 117, B01202 (2012), doi:10.1029/2011JB008550.
This is the modernised (C++23) port of that 2010--2011 code.
Quickstart
#include "multigrid/version.hpp"
TEST_CASE("library reports its version", "[snippet]") {
std::string_view v = mgrid::library_version();
REQUIRE(v == "2.0.0");
}
Where to go next
- Theory -- the multigrid method, discretisation, boundary conditions, and viscoplastic channel flow, the problem the library was built to solve.
- Tutorials -- building and testing, solving a Poisson problem, and extending the solver to a new PDE.
- API reference -- the full
mgridnamespace, generated from the header doc-comments.