FerriteMultigrid.jl is a lightweight, flexible polynomial and geometric multigrid framework designed for high-order finite element problems in Julia. It is built on top of Ferrite.jl and leverages AlgebraicMultigrid.jl as the potential coarse-grid solver once the approximation is reduced to ( p = 1 ). Users can also combine polynomial and geometric multigrid methods.
using FerriteMultigrid
# Define a 1D diffusion problem with p = 2 for the fine grid and p = 1 for the coarse grid and 3 quadrature points.
K, f, dhh, chh = poisson(1000, [1, 2], 3)
# Define a p-multigrid configuration
config = pmultigrid_config()
# Solve using the p-multigrid solver
x, res = solve(K, f, dhh, chh, config; log = true, rtol = 1e-10)This framework is primarily developed by Abdelrahman Fathy at the chair of continuum mechanics at Ruhr University Bochum under the supervision of Dennis Ogiermann.