Structured mesh

The StructuredMesh is a structured, curvilinear, conforming mesh type available for one-, two-, and three-dimensional simulations. An application of the StructuredMesh using a user-defined mapping is provided by one of the tutorials.

Due to its curvilinear nature, (numerical) fluxes need to implement methods dispatching on the normal::AbstractVector. Rotationally invariant equations such as the compressible Euler equations can use FluxRotated to wrap numerical fluxes implemented only for Cartesian meshes. This simplifies the re-use of existing functionality for the TreeMesh but is usually less efficient, cf. PR #550.

Boundary conditions

For StructuredMeshes, boundary conditions are defined and stored in named tuples (see, for example, examples/structured_1d_dgsem/elixir_euler_source_terms_nonperiodic.jl). .