AuthorsM. S. Alnæs
TitleThe Unified Form Language and Key Points on its Translation
AfilliationScientific Computing
Project(s)Center for Biomedical Computing (SFF)
StatusPublished
Publication TypeTalks, invited
Year of Publication2017
Location of TalkSIAM CSE, Atlanta, USA
Abstract

The Unified Form Language (UFL) is an embedded domain specific
language for specification of variational formulations of partial
differential equations. Key features include
finite element concepts such as function spaces and test functions, as
well as more generic concepts such as differential operators, tensor
valued expressions, and index notation. Implemented as a Python
module, UFL also includes symbolic algorithms including algorithmic
differentiation of expressions and functionals, symbolic application
of geometry mappings and Piola mappings, and propagation of
restriction operators to expression terminals. The first part of this
talk is a brief introduction to key concepts in UFL.

UFL is used in finite element frameworks to achieve a high level
problem specification, but to achieve high performance finite element
matrix assembly a form compiler is needed. Several form compilers
exist that can produce efficient low level source code for computing
e.g. the element matrix from a UFL form. In the translation from UFL
to low level code, a form compiler must choose strategies both to map
domain specific concepts from UFL to constructs supported by the
target language, and strategies to achieve good performance. In the
second part of this talk, how these topics are handled in the uflacs
form compiler via value numbering of scalar subexpressions will be
discussed.

Citation Key25146