Multigrid Configuration
FerriteMultigrid.PMultigridConfiguration — Type
PMultigridConfiguration{TC<:AbstractCoarseningStrategy}This struct represents the configuration for the polynomial multigrid method.
FerriteMultigrid.pmultigrid_config — Function
pmultigrid_config(;coarse_strategy = Galerkin())This function is the main api to instantiate PMultigridConfiguration.
FerriteMultigrid.GMultigridConfiguration — Type
GMultigridConfiguration{TC}Configuration for the geometric multigrid method (analogous to PMultigridConfiguration).
FerriteMultigrid.gmultigrid_config — Function
gmultigrid_config(; coarse_strategy = Galerkin())Create a GMultigridConfiguration.
Coarsening Strategy
FerriteMultigrid.Galerkin — Type
Galerkin <: AbstractCoarseningStrategyGalerkin coarsening operator can be defined as follows:
\[A_{h,p-1} = \mathcal{I}_{p}^{p-1} A_{h,p} \mathcal{I}_{p-1}^p\]
and according to Tielen et al. [2] $\mathcal{I}_{p-1}^p$ is the interpolation operator from the coarse space to the fine space and is defined as follows:
\[\mathcal{I}_{p-1}^p (\mathbf{v}_{p-1}) = (\mathbf{M}_p)^{-1} \mathbf{P}_{p-1}^p \, \mathbf{v}_{p-1}\]
FerriteMultigrid.Rediscretization — Type
Rediscretization{TI, TS} <: AbstractCoarseningStrategyCoarsening strategy that re-assembles the operator on the coarse grid using FerriteOperators.
Fields
integrator::TI– anAbstractBilinearIntegrator(e.g.DiffusionMultigrid)strategy::TS– anAbstractAssemblyStrategy(default:SequentialAssemblyStrategy(SequentialCPUDevice()))is_sym::Bool– whether the operator is symmetric (determines R = Pᵀ vs separate assembly)