1. FEniCS Project
  2. Core
  3. FFC


FFC: The FEniCS Form Compiler

FFC is a compiler for finite element variational forms. From a high-level description of the form, it generates efficient low-level C++ code that can be used to assemble the corresponding discrete operator (tensor). In particular, a bilinear form may be assembled into a matrix and a linear form may be assembled into a vector.

FFC may be used either from the command line (by invoking the ffc command) or as a Python module (import ffc).

FFC is part of the FEniCS project (http://www.fenicsproject.org) and functions as a just-in-time (JIT) compiler for DOLFIN.

For further introduction to FFC, open the FFC user manual available in the subdirectory doc/manual/ of this source tree, or try out the demos available in the subdirectory src/demo/ of this source tree.


GNU LGPL v3 expcept of UFC in public domain. See LICENSE file for details.


  1. Python, version 2.7 or later

  2. The latest version of FIAT, Instant and UFL

    You need to have FIAT, Instant and UFL installed. They are available from the web page: https://bitbucket.org/fenics-project/.

  3. The Python NumPy module

  4. The Python Six module


From February 2014, the code generation interface UFC is distributed as part of FFC, and the UFC repository has been merged into the FFC repository. From this point onwards, UFC version numbers are reset to the same version numbers as for FFC.