Bitbucket is a code hosting site with unlimited public and private repositories. We're also free for small teams!


UFLACS - UFL Analyser and Compiler System


Uflacs, the UFL Analyser and Compiler System, is a collection of algorithms for processing symbolic UFL forms and expressions. The main feature is efficient translation of tensor intensive symbolic expressions into a low level expression representation and C++ code.


Uflacs is Copyright (2011-2013) by Martin Sandve Alnæs.

This version of uflacs is released under the LGPL v3 licence.


Bitbucket site:

FEniCS Project site:


Martin Sandve Alnæs (


Steffen Müthing (


To run unittests of generated C++ code you need the Google C++ Testing Framework:

To run unit tests with output to screen:

cd tests/ && ./

To run unit tests with output to log files (for batch runs):

cd tests/ && ./


Either install to default python location as root:

sudo python install

Or install to your own python path directory:

python install --prefix=/path/to/my/own/site-packages

Recent activity

Martin Alnæs

Martin Alnæs pushed 4 commits to fenics-project/uflacs

11ea3e5 - Update roadmap.
ac5c888 - Fix division bug in factorization algorithm.
f535b81 - Remove unused and unmaintained code and move some ffc backend stuff to ffc.
1994745 - Refactoring of factorization algorithm, extract type handler functions.
Martin Alnæs

Martin Alnæs pushed 3 commits to fenics-project/uflacs

0b91deb - Fix ugly off by one bug in generation of temporaries partition.
a59b93f - Fix bug in integral generation duplicating accumulations into A.
9e7c749 - Add restriction propagation after change to reference geometry and some minor geometry handling.
Martin Alnæs

Martin Alnæs pushed 8 commits to fenics-project/uflacs

12961eb - Merge branch 'martinal/topic-generate-integral-redesign' of into martinal/topic-generate-integral-redesign
65b88a7 - Clean up return ir dict from core compiler algorithm.
1e9680e - Work on dependency analysis and cleanup of core compiler.
a7ccc8b - Work on getting compiler up and running again.
58b1389 - Work on messing up everything.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.