UFC repository deprecated

From February 2014, the UFC repository has been deprecated in favor of FFC, which now contains the source code of UFC. The UFC interface itself lives on in the form of the header file ufc.h and associated utilities. Starting with the release of FEniCS 1.4, these will be installed as part of the installation of FFC.

UFC 2.3.0+


UFC (Unified Form-assembly Code) is a unified framework for finite element assembly. More precisely, it defines a fixed interface for communicating low level routines (functions) for evaluating and assembling finite element variational forms. The UFC interface consists of a single header file ufc.h that specifies a C++ interface that must be implemented by code that complies with the UFC specification. Examples of form compilers that support the UFC interface are FFC and SyFi. For more information, visit the FEniCS web page at

or refer to the UFC Specification and User Manual in


in this source tree.


To install UFC, run:

cmake .
make install

This installs the header file ufc.h and a small set of Python utilities (templates) for generating UFC code. Files will be installed under the default prefix. The installation prefix may be optionally specified, for example:

make install

Alternatively, just copy the single header file src/ufc/ufc.h into a suitable include directory. If you do not want to build and install the python extenstion module of UFC, needed by, e.g., PyDOLFIN, you can write:

make install

For more options, it is convenient to use a CMake GUI. To use a GUI (if installed) for an out-of-source build, simply type:

mkdir build
cd build
cmake-gui ../
make install


A list of authors can be found in the file AUTHORS.


Details about the license can be found the file LICENSE.


Feedback, comments and suggestions should be sent to

For questions and bug reports, visit the UFC Launchpad page: