Results 1  10
of
18
Geometric optimization of the evaluation of finite element matrices
 SIAM J. Sci. Comput
"... Abstract. Assembling stiffness matrices represents a significant cost in many finite element computations. We address the question of optimizing the evaluation of these matrices. By finding redundant computations, we are able to significantly reduce the cost of building local stiffness matrices for ..."
Abstract

Cited by 16 (13 self)
 Add to MetaCart
Abstract. Assembling stiffness matrices represents a significant cost in many finite element computations. We address the question of optimizing the evaluation of these matrices. By finding redundant computations, we are able to significantly reduce the cost of building local stiffness matrices for the Laplace operator and for the trilinear form for NavierStokes. For the Laplace operator in two space dimensions, we have developed a heuristic graph algorithm that searches for such redundancies and generates code for computing the local stiffness matrices. Up to cubics, we are able to build the stiffness matrix on any triangle in less than one multiplyadd pair per entry. Up to sixth degree, we can do it in less than about two. Preliminary lowdegree results for Poisson and NavierStokes operators in three dimensions are also promising.
AUTOMATING THE FINITE ELEMENT METHOD
, 2006
"... The finite element method can be viewed as a machine that automates the discretization of differential equations, taking as input a variational problem, a finite element and a mesh, and producing as output a system of discrete equations. However, the generality of the framework provided by the finit ..."
Abstract

Cited by 13 (2 self)
 Add to MetaCart
The finite element method can be viewed as a machine that automates the discretization of differential equations, taking as input a variational problem, a finite element and a mesh, and producing as output a system of discrete equations. However, the generality of the framework provided by the finite element method is seldom reflected in implementations (realizations), which are often specialized and can handle only a small set of variational problems and finite elements (but are typically parametrized over the choice of mesh). This paper reviews ongoing research in the direction of a complete automation of the finite element method. In particular, this work discusses algorithms for the efficient and automatic computation of a system of discrete equations from a given variational problem, finite element and mesh. It is demonstrated that by automatically generating and compiling efficient lowlevel code, it is possible to parametrize a finite element code over variational problem and finite element in addition to the mesh.
DOLFIN: Automated finite element computing
, 2009
"... We describe here a library aimed at automating the solution of partial differential equations using the finite element method. By employing novel techniques for automated code generation, the library combines a high level of expressiveness with efficient computation. Finite element variational forms ..."
Abstract

Cited by 13 (0 self)
 Add to MetaCart
We describe here a library aimed at automating the solution of partial differential equations using the finite element method. By employing novel techniques for automated code generation, the library combines a high level of expressiveness with efficient computation. Finite element variational forms may be expressed in near mathematical notation, from which lowlevel code is automatically generated, compiled and seamlessly integrated with efficient implementations of computational meshes and highperformance linear algebra. Easytouse objectoriented interfaces to the library are provided in the form of a C++ library and a Python module. This paper discusses the mathematical abstractions and methods used in the design of the library and its implementation. A number of examples are presented to demonstrate the use of the library in application code.
Efficient compilation of a class of variational forms
 ACM Transactions on Mathematical Software
, 2007
"... We investigate the compilation of general multilinear variational forms over affines simplices and prove a representation theorem for the representation of the element tensor (element stiffness matrix) as the contraction of a constant reference tensor and a geometry tensor that accounts for geometry ..."
Abstract

Cited by 10 (5 self)
 Add to MetaCart
We investigate the compilation of general multilinear variational forms over affines simplices and prove a representation theorem for the representation of the element tensor (element stiffness matrix) as the contraction of a constant reference tensor and a geometry tensor that accounts for geometry and variable coefficients. Based on this representation theorem, we design an algorithm for efficient pretabulation of the reference tensor. The new algorithm has been implemented in the FEniCS Form Compiler (FFC) and improves on a previous loopbased implementation by several orders of magnitude, thus shortening compiletimes and development cycles for users of FFC. Categories and Subject Descriptors: G.4 [Mathematical Software]—Algorithm design and analysis,
Data structures and requirements for hp finite element software
 In Preparation
, 2007
"... Finite element methods approximate solutions of partial differential equations (PDEs) by restricting the problem to a finite dimensional, discrete function space. In the hp adaptive version of the finite element method, one defines these discrete spaces by choosing different polynomial degrees for t ..."
Abstract

Cited by 10 (4 self)
 Add to MetaCart
Finite element methods approximate solutions of partial differential equations (PDEs) by restricting the problem to a finite dimensional, discrete function space. In the hp adaptive version of the finite element method, one defines these discrete spaces by choosing different polynomial degrees for the shape functions defined on a locally refined mesh. Although this basic idea is quite simple, its implementation in algorithms and data structures is challenging. It has apparently not been documented in the literature in its most general form. Rather, most existing implementations appear to be for special combinations of finite elements, or for discontinuous Galerkin methods which do not entail many of the complications of the general case. In this paper, we discuss the generic data structures and algorithms necessary to implement the hp finite element method for arbitrary elements, and the complications and pitfalls one encounters with such an implementation. As part of this process, we describe what pieces of information a description of a finite element has to provide to the generic algorithms for it to be used in an hp context. We support our claim that the generic algorithms and data structures are efficient using numerical examples that test our reference implementation in 2d and 3d, and demonstrate that the hp specific parts of the algorithm do not dominate the total computing time. This reference implementation is also made available as part of the Open Source deal.II finite element library.
On the Efficiency of Symbolic Computations Combined with Code Generation for Finite Element Methods
"... Efficient and easy implementation of variational forms for finite element discretization can be accomplished with metaprogramming. Using a highlevel language like Python and symbolic mathematics makes an abstract problem definition possible, but the use of a lowlevel compiled language is vital fo ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Efficient and easy implementation of variational forms for finite element discretization can be accomplished with metaprogramming. Using a highlevel language like Python and symbolic mathematics makes an abstract problem definition possible, but the use of a lowlevel compiled language is vital for runtime efficiency. By generating lowlevel C++ code based on symbolic expressions for the discrete weak form, it is possible to accomplish a high degree of abstraction in the problem definition while surpassing the runtime efficiency of traditional hand written C++ codes. We provide several examples where we demonstrate orders of magnitude in speedup.
EFFICIENT ASSEMBLY OF H(div) AND H(curl) CONFORMING FINITE ELEMENTS ∗
"... Abstract. In this paper, we discuss how to efficiently evaluate and assemble general finite element variational forms on H(div) and H(curl). The proposed strategy relies on a decomposition of the element tensor into a precomputable reference tensor and a meshdependent geometry tensor. Two key point ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Abstract. In this paper, we discuss how to efficiently evaluate and assemble general finite element variational forms on H(div) and H(curl). The proposed strategy relies on a decomposition of the element tensor into a precomputable reference tensor and a meshdependent geometry tensor. Two key points must then be considered: the appropriate mapping of basis functions from a reference element, and the orientation of geometrical entities. To address these issues, we extend here a previously presented representation theorem for affinely mapped elements to Piolamapped elements. We also discuss a simple numbering strategy that removes the need to contend with directions of facet normals and tangents. The result is an automated, efficient, and easytouse implementation that allows a user to specify finite element variational forms on H(div) and H(curl) in close to mathematical notation.
A Optimized Code Generation for Finite Element Local Assembly Using Symbolic Manipulation
"... Automated code generators for finite element local assembly have facilitated exploration of alternative implementation strategies within generated code. However, even for a theoretical performance indicator such as operation count, an optimal strategy for local assembly is unknown. We explore a code ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Automated code generators for finite element local assembly have facilitated exploration of alternative implementation strategies within generated code. However, even for a theoretical performance indicator such as operation count, an optimal strategy for local assembly is unknown. We explore a code generation strategy based on symbolic integration and polynomial common subexpression elimination (CSE). We present our implementation of a local assembly code generator using these techniques. We systematically evaluate the approach, measuring operation count, execution time and numerical error using a benchmark suite of synthetic variational forms, comparing against the FEniCS Form Compiler (FFC). Our benchmark forms span complexities chosen to expose the performance characteristics of different code generation approaches. We show that it is possible with additional computational cost, to consistently achieve much of, and sometimes substantially exceed, the performance of alternative approaches without compromising precision. Although the approach of using symbolic integration and CSE for optimizing local assembly is not new, we distinguish our work through our strategies for maintaining numerical precision and detecting common subexpressions. We discuss the benefits of the symbolic approach for inferring numerical relationships, and analyze the relationship to other proposed techniques which also have greater computational complexity than those of FFC.
Automated FEM Discretizations for the Stokes Equation
, 2008
"... Current FEM software projects have made significant advances in various automated modeling techniques. We present some of the mathematical abstractions employed by these projects that allow a user to switch between finite elements, linear solvers, mesh refinement and geometry, and weak forms with ve ..."
Abstract
 Add to MetaCart
Current FEM software projects have made significant advances in various automated modeling techniques. We present some of the mathematical abstractions employed by these projects that allow a user to switch between finite elements, linear solvers, mesh refinement and geometry, and weak forms with very few modifications to the code. To evaluate the modularity provided by one of these abstractions, namely switching finite elements, we provide a numerical study based upon the many different discretizations of the Stokes equations.
A Compiler Framework for Automatic Linearization and Efficient Discretization of Nonlinear Partial Differential Equations
"... This thesis is submitted in partial fulfilment of the degree Philosophiae Doctor to the ..."
Abstract
 Add to MetaCart
This thesis is submitted in partial fulfilment of the degree Philosophiae Doctor to the