Git reference: Benchmark nist-07.
Many papers on testing adaptive algorithms use a 1D example with a singularity of the form x^{\alpha} at the left endpoint of the domain. This can be extended to 2D by simply making the solution be constant in y.
Equation solved: Poisson equation
(1)-\Delta u = f.
Domain of interest: Unit Square (0, 1)^2
Boundary conditions: Dirichlet, given by exact solution.
u(x,y) = x^{\alpha}
where \alpha \geq 0.5 determines the strength of the singularity.
Right-hand side: Obtained by inserting the exact solution into the equation. The corresponding code snippet is shown below:
{
public:
CustomRightHandSide(double alpha) : DefaultNonConstRightHandSide(), alpha(alpha) {};
virtual double value(double x, double y) const {
return - alpha * (alpha - 1.) * pow(x, alpha - 2.);
}
Final mesh (h-FEM, p=1, anisotropic refinements):
Final mesh (h-FEM, p=2, anisotropic refinements):
Final mesh (hp-FEM, h-anisotropic refinements):
DOF convergence graphs:
CPU convergence graphs:
Final mesh (hp-FEM, h-anisotropic refinements):
Final mesh (hp-FEM, hp-anisotropic refinements):
DOF convergence graphs:
CPU convergence graphs: