21 research outputs found
A parallel edge orientation algorithm for quadrilateral meshes
One approach to achieving correct finite element assembly is to ensure that
the local orientation of facets relative to each cell in the mesh is consistent
with the global orientation of that facet. Rognes et al. have shown how to
achieve this for any mesh composed of simplex elements, and deal.II contains a
serial algorithm to construct a consistent orientation of any quadrilateral
mesh of an orientable manifold.
The core contribution of this paper is the extension of this algorithm for
distributed memory parallel computers, which facilitates its seamless
application as part of a parallel simulation system.
Furthermore, our analysis establishes a link between the well-known
Union-Find algorithm and the construction of a consistent orientation of a
quadrilateral mesh. As a result, existing work on the parallelisation of the
Union-Find algorithm can be easily adapted to construct further parallel
algorithms for mesh orientations.Comment: Second revision: minor change
Synaptic mitochondrial dysfunction and septin accumulation are linked to complement-mediated synapse loss in an Alzheimer鈥檚 disease animal model
On code generation techniques for finite elements
Efficient numerical solvers for partial differential equations are critical to vast fields of engineering and scientific research, including weather and climate prediction. State-of-the-art finite element discretisations, although offering many desirable properties, are often difficult to implement. Consequently, many developers of complicated finite element discretisations use code generation based software platforms. The form compiler is a key component of such software: it takes a high-level description of the weak form of partial differential equations and produces low-level code that carries out the finite element assembly.
This thesis presents a novel, multi-stage code generation framework for the finite element method, implemented in the Two-Stage Form Compiler (TSFC). A core idea of TSFC is the introduction of a tensor algebra language as its intermediate representation. This creates a clean separation between the implementation of finite element objects and geometric terms as well as the problem of efficient code generation for tensor algebra expressions, which enables the maintenance of the structure of the input expression longer in the compiler pipeline than previous form compilers, and thus helps to facilitate the application of optimisations at the highest possible level of abstraction.
The intermediate language is also proven to be a suitable medium and level of abstraction for numerous optimisations, including the expression and exploitation of structure intrinsic to some finite elements. This includes sum factorisation on cuboid cells for continuous, discontinuous, H(div) and H(curl) conforming elements. My experiments confirm optimal algorithmic complexity for high-order finite element assembly. This is achieved through several novel contributions: the introduction of a more powerful interface between the form compiler and the library providing the finite elements; a more abstract, smarter library of finite elements that explicitly communicates the structure of elements; and form compiler algorithms to automatically exploit this exposed structure.Open Acces
firedrakeproject/tsfc: The Two Stage Form Compiler
Version of form compiler tools used in the experiments of the TSFC paper.
This release is specifically created to document the version of
Firedrake used in a particular set of experiments. Please do not cite
this as a general source for Firedrake or any of its
dependencies. Instead, refer to
http://www.firedrakeproject.org/publications.htm
TSFC: A Structure-Preserving Form Compiler
A form compiler takes a high-level description of the weak form of partial differential equations and produces low-level code that carries out the finite element assembly. In this paper we present the Two-Stage Form Compiler (TSFC), a new form compiler with the main motivation being to maintain the structure of the input expression as long as possible. This facilitates the application of optimizations at the highest possible level of abstraction. TSFC features a novel, structure-preserving method for separating the contributions of a form to the subblocks of the local tensor in discontinuous Galerkin problems. This enables us to preserve the tensor structure of expressions longer through the compilation process than is possible with other form compilers. This is also achieved in part by a two-stage approach that cleanly separates the lowering of finite element constructs to tensor algebra in the first stage, from the scheduling of those tensor operations in the second stage. TSFC also efficiently traverses complicated expressions, and experimental evaluation demonstrates good compile-time performance even for highly complex forms
firedrakeproject/tsfc: The Two Stage Form Compiler
Version of Firedrake used in 'Vertical slice modelling of nonlinear Eady waves using a compatible finite element method'.
This release is specifically created to document the version of
Firedrake used in a particular set of experiments. Please do not cite
this as a general source for Firedrake or any of its
dependencies. Instead, refer to
http://www.firedrakeproject.org/publications.htm
FInAT/FInAT: a smarter library of finite elements
<p>This release is specifically created to document the version of
FInAT used in a particular set of experiments using
Firedrake. Please do not cite this as a general source for Firedrake
or any of its dependencies. Instead, refer to
https://www.firedrakeproject.org/citing.html</p>
firedrakeproject/ufl: Unified Form Language
Modified FFC with nonaffine support for some experiments of the TSFC paper
This release is specifically created to document the version of
Firedrake used in a particular set of experiments. Please do not cite
this as a general source for Firedrake or any of its
dependencies. Instead, refer to
http://www.firedrakeproject.org/publications.htm
firedrakeproject/fiat: The Finite Element Automated Tabulator
Version of Firedrake used in 'The geometry of optimally transported meshes on the sphere'.
This release is specifically created to document the version of
Firedrake used in a particular set of experiments. Please do not cite
this as a general source for Firedrake or any of its
dependencies. Instead, refer to
http://www.firedrakeproject.org/publications.htm