(sec:benchmarks:inclusion)= # The “inclusion” Stokes benchmark The “inclusion” benchmark again solves a problem with a discontinuous viscosity, but this time the viscosity is chosen in such a way that the discontinuity is along a circle. This ensures that, unlike in the [SolCx benchmark](sec:benchmarks:solcx), the discontinuity in the viscosity never aligns to cell boundaries, leading to much larger difficulties in obtaining an accurate representation of the pressure. Specifically, the almost discontinuous pressure along this interface leads to oscillations in the numerical solution. This can be seen in the visualizations shown in {numref}`fig:inclusion1` and {numref}`fig:inclusion2`. As before, for details we refer to {cite:t}`duretz:etal:2011`. The analytic solution against which we compare is given in {cite:t}`schmid:podladchikov:2003`. An extensive discussion of convergence properties is given in {cite:t}`kronbichler:etal:2012`. ```{figure-md} fig:inclusion1 The viscosity field when interpolated onto the mesh (internally, the “exact” viscosity field – large inside a circle, small outside – is used), and overlaid to it some velocity vectors. The viscosity field when interpolated onto the mesh (internally, the “exact” viscosity field – large inside a circle, small outside – is used), and overlaid to it some velocity vectors. ``` ```{figure-md} fig:inclusion2 The pressure with its oscillations along the interface. The oscillations become more localized as the mesh is refined. The pressure with its oscillations along the interface. The oscillations become more localized as the mesh is refined. ``` The benchmark can be run using the parameter files in [benchmarks/inclusion/](https://github.com/geodynamics/aspect/blob/main/benchmarks/inclusion). The material model, boundary condition, and postprocessor are defined in [benchmarks/inclusion/inclusion.cc](https://github.com/geodynamics/aspect/blob/main/benchmarks/inclusion/inclusion.cc). Consequently, this code needs to be compiled into a shared lib before you can run the tests. ``` {literalinclude} ./inclusion.prm ```