A new family of mixed finite elements in IR3
Numerische Mathematik
Introduction to the GiNaC framework for symbolic computation within the C++ programming language
Journal of Symbolic Computation
A Robust Finite Element Method for Darcy--Stokes Flow
SIAM Journal on Numerical Analysis
Computational Partial Differential Equations: Numerical Methods and Diffpack Programming
Computational Partial Differential Equations: Numerical Methods and Diffpack Programming
Algorithm 839: FIAT, a new paradigm for computing finite element basis functions
ACM Transactions on Mathematical Software (TOMS)
Optimizing the Evaluation of Finite Element Matrices
SIAM Journal on Scientific Computing
Topological Optimization of the Evaluation of Finite Element Matrices
SIAM Journal on Scientific Computing
A compiler for variational forms
ACM Transactions on Mathematical Software (TOMS)
Efficient compilation of a class of variational forms
ACM Transactions on Mathematical Software (TOMS)
deal.II—A general-purpose object-oriented finite element library
ACM Transactions on Mathematical Software (TOMS)
Scientific Programming - Parallel/High-Performance Object-Oriented Scientific Computing (POOSC '05), Glasgow, UK, 25 July 2005
Vertex-ordering Algorithms for Automatic Differentiation of Computer Codes
The Computer Journal
Unified framework for finite element assembly
International Journal of Computational Science and Engineering
ACM Transactions on Mathematical Software (TOMS)
DOLFIN: Automated finite element computing
ACM Transactions on Mathematical Software (TOMS)
Optimized code generation for finite element local assembly using symbolic manipulation
ACM Transactions on Mathematical Software (TOMS)
ACM Transactions on Mathematical Software (TOMS)
Hi-index | 0.00 |
Efficient and easy implementation of variational forms for finite element discretization can be accomplished with metaprogramming. Using a high-level language like Python and symbolic mathematics makes an abstract problem definition possible, but the use of a low-level compiled language is vital for run-time efficiency. By generating low-level 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 run-time efficiency of traditional hand written C++ codes. We provide several examples where we demonstrate orders of magnitude in speedup.