---
tag: C5JM6D0841
kind: definition
name: Adaptive mesh refinement
msc: [65N50, 65M50]
defines: X001F42KH8
uses: [98GZ9DVHTA]
sources:
  - url: https://en.wikipedia.org/wiki/Adaptive_mesh_refinement
---

## Definition

Let $\mathcal{T}_0$ be an initial mesh of a domain $\Omega$, and fix a discretization such as the [[finite element method|98GZ9DVHTA]].
Let an error indicator assign a number $\eta_K(\mathcal{T}) \ge 0$ to each element $K$ of each mesh $\mathcal{T}$.
*Adaptive mesh refinement* builds meshes $\mathcal{T}_0, \mathcal{T}_1, \ldots$ by repeating four steps for $\ell = 0, 1, \ldots$:

1. Solve: compute the discrete solution $u_\ell$ on $\mathcal{T}_\ell$.
2. Estimate: compute $\eta_K = \eta_K(\mathcal{T}_\ell)$ for all $K \in \mathcal{T}_\ell$ from $u_\ell$ and the data.
3. Mark: choose a set $\mathcal{M}_\ell \subseteq \mathcal{T}_\ell$ of elements with large indicators.
4. Refine: subdivide at least the elements of $\mathcal{M}_\ell$, plus the neighbours needed to keep the mesh conforming, to get $\mathcal{T}_{\ell + 1}$.

The loop stops when $\big(\sum_K \eta_K^2\big)^{1/2}$ is below a tolerance.

## Remarks

A common marking rule is the Dörfler criterion with a parameter $0 < \theta \le 1$.
It takes a set $\mathcal{M}_\ell$ of minimal size with $\sum_{K \in \mathcal{M}_\ell} \eta_K^2 \ge \theta \sum_{K \in \mathcal{T}_\ell} \eta_K^2$.
For the Poisson equation, a standard residual indicator combines $h_K^2 \norm{f + \Delta u_\ell}_{L^2(K)}^2$ with the jumps of the normal derivative of $u_\ell$ across the faces of $K$.

Example: on the L-shaped domain $(-1, 1)^2 \setminus [0, 1) \times (-1, 0]$, the solution of $-\Delta u = 0$ with boundary values $r^{2/3} \sin(2\varphi/3)$ is $u = r^{2/3} \sin(2\varphi/3)$ in polar coordinates $(r, \varphi)$ with $0 < \varphi < 3\pi/2$.
Its gradient blows up at the corner $0$, the indicators are largest there, and the meshes become graded towards $0$.

Non-example: uniform refinement subdivides every element of $\mathcal{T}_\ell$ in each step.
Its refinement does not depend on any indicator, so step 3 is missing.
