FerriteMultigrid.jl is a lightweight, flexible p-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 coarse-grid solver once the approximation is reduced to ( p = 1 ).
using FerriteMultigrid
# Define a 1D diffusion problem with p = 2 and 3 quadrature points.
K, f, fe_space = poisson(1000, 2, 3)
# Define a p-multigrid configuration
config = pmultigrid_config() # default config (galerkin as coarsening strategy and direct projection (i.e., from p to 1 directly))
# Solve using the p-multigrid solver
x, res = solve(K, f, fe_space, config; log = true, rtol = 1e-10)This framework is primarily developed at the chair of continuum mechanics at Ruhr University Bochum under the supervision of @termi-official.