No Arabic abstract
Despite decades of research in this area, mesh adaptation capabilities are still rarely found in numerical simulation software. We postulate that the primary reason for this is lack of usability. Integrating mesh adaptation into existing software is difficult as non-trivial operators, such as error metrics and interpolation operators, are required, and integrating available adaptive remeshers is not straightforward. Our approach presented here is to first integrate Pragmatic, an anisotropic mesh adaptation library, into DMPlex, a PETSc object that manages unstructured meshes and their interactions with PETScs solvers and I/O routines. As PETSc is already widely used, this will make anisotropic mesh adaptation available to a much larger community. As a demonstration of this we describe the integration of anisotropic mesh adaptation into Firedrake, an automated Finite Element based system for the portable solution of partial differential equations which already uses PETSc solvers and I/O via DMPlex. We present a proof of concept of this integration with a three-dimensional advection test case.
The use of composable abstractions allows the application of new and established algorithms to a wide range of problems while automatically inheriting the benefits of well-known performance optimisations. This work highlights the composition of the PETSc DMPlex domain topology abstraction with the Firedrake automated finite element system to create a PDE solving environment that combines expressiveness, flexibility and high performance. We describe how Firedrake utilises DMPlex to provide the indirection maps required for finite element assembly, while supporting various mesh input formats and runtime domain decomposition. In particular, we describe how DMPlex and its accompanying data structures allow the generic creation of user-defined discretisations, while utilising data layout optimisations that improve cache coherency and ensure overlapped communication during assembly computation.
We describe by means of some examples how some functionality of the mesh adaptation package trullekrul can be used in pde2path.
We describe a high order technique to generate quadrilateral decompositions and meshes for complex two dimensional domains using spectral elements in a field guided procedure. Inspired by cross field methods, we never actually compute crosses. Instead, we compute a high order accurate guiding field using a continuous Galerkin (CG) or discontinuous Galerkin (DG) spectral element method to solve a Laplace equation for each of the field variables using the open source code Nektar++. The spectral method provides spectral convergence and sub-element resolution of the fields. The DG approximation allows meshing of corners that are not multiples of $pi/2$ in a discretization consistent manner, when needed. The high order field can then be exploited to accurately find irregular nodes, and can be accurately integrated using a high order separatrix integration method to avoid features like limit cycles. The result is a mesh with naturally curved quadrilateral elements that do not need to be curved a posteriori to eliminate invalid elements. The mesh generation procedure is implemented in the open source mesh generation program NekMesh.
We describe an adaptive version of a method for generating valid naturally curved quadrilateral meshes. The method uses a guiding field, derived from the concept of a cross field, to create block decompositions of multiply connected two dimensional domains. The a priori curved quadrilateral blocks can be further split into a finer high-order mesh as needed. The guiding field is computed by a Laplace equation solver using a continuous Galerkin or discontinuous Galerkin spectral element formulation. This operation is aided by using $p$-adaptation to achieve faster convergence of the solution with respect to the computational cost. From the guiding field, irregular nodes and separatrices can be accurately located. A first version of the code is implemented in the open source spectral element framework Nektar++ and its dedicated high order mesh generation platform NekMesh.
We present an implementation of the trimmed serendipity finite element family, using the open source finite element package Firedrake. The new elements can be used seamlessly within the software suite for problems requiring $H^1$, hcurl, or hdiv-conforming elements on meshes of squares or cubes. To test how well trimmed serendipity elements perform in comparison to traditional tensor product elements, we perform a sequence of numerical experiments including the primal Poisson, mixed Poisson, and Maxwell cavity eigenvalue problems. Overall, we find that the trimmed serendipity elements converge, as expected, at the same rate as the respective tensor product elements while being able to offer significant savings in the time or memory required to solve certain problems.