# Introductions to hp-FEM

do you know good introductions into or surveys $hp$-adaptive finite elements?

In particular I do not know how the heuristics for choosing spatial refinement or increased polynomial degree are constructed.

Thanks.

I found that "Fully Automatic hp-Adaptivity in Three Dimensions" by Rachowicz, Pardo, and Demkowicz has a pretty fully-developed discussion of the issues of choosing between h and p refinement and discusses trade-offs and the integration of those trade-offs into a refinement scheme.

It's available here: http://dx.doi.org/10.1016/j.cma.2005.08.022

There is an excellent survey by William Mitchel, A Comparison of hp-Adaptive Strategies for Elliptic Partial Differential Equations

Barna Szabo at Washington University was The Man in this area when I was practicing:

In short, the heuristics of whether to choose $h$-refinement or $p$-refinement is the question "which benefits most in approximating the true solution": When the true solution is smooth, we could increase the order of the basis in the finite dimensional approximation space to get higher order convergence, however, when the true solution is not smooth, increasing the order of the polynomial order wouldn't benefit much, we simply use the lowest order element and do $h$-refinement, in other word, make the mesh finer and finer.

Therefore, it really depends on the regularity of the true solution, and the question "How do we extract the information of the regularity of the TRUE SOLUTION from the FINITE ELEMENT SOLUTION?". There are several ways to do it here I list two of them:

1. "a posteriori error estimation", we construct error estimator that uses only the quantities from the computation to estimate the local error and the local regularity, thus indicates where should we refine and the order of the element we should use.

2. some a priori knowledge of the solution, from both the data and the domain. Data-wise, for example, consider the following non-smooth coefficient diffusion equation: \left\{ \begin{aligned} -\mathrm{div}(A\nabla u) &= f &\text{ in } \Omega \\ u&= g &\text{ on } \partial \Omega \end{aligned} \right. the regularity of the solution depends on $f,g$ and somewhat more importantly $A$, when $f\in L^2(\Omega)$ or $H^{-1}(\Omega)$, $g\in H^{1/2}(\partial \Omega)$, which are the usual assumptions for this equation, now if $A$ is non-smooth, we know that the solution has most an $H^{1+\epsilon}$ regularity, not the $H^2$ regularity for Poisson equation because of the harmonic lifting. Then we shouldn't use the quadratic element to approximate it since it doesn't benefit much from those extra DoFs. Domain-wise, we also know the regularity of the solution also depends on the geometry of the domain, or rather, what the boundary of the computational domain is like, does it have re-entrant corners? is it Lipschitz? does it satisfy interior ball condition? All these constraints would affect the local regularity of the solution, when the regularity of the true solution in some part of the computation domain is not good, use $h$-refinement. A famous toy problem would be the FEM on the Fichera corner.

TL,DR: The heuristics for choosing $h$ or $p$ is the local regularity of the true solution: if the solution is smooth, use $p$-refinement; not smooth? use $h$-refinement.

Once I was studying/comparing several FE code libraries and I remember one of them (Hermes) was really good and it had support for hp-fem. It might be a good idea to combine theory and practice as well...so here is the link for the library:

http://hpfem.org/hermes

They have good documentation and several examples and also a Python interface.

I would also suggest this book: Ch. Schwab, "p- and hp- Finite Element Methods: Theory and Applications to Solid and Fluid Mechanics"