UFL - Unified Form Language
The Unified Form Language (UFL) is a domain specific language for declaration of finite element discretizations of variational forms. More precisely, it defines a flexible interface for choosing finite element spaces and defining expressions for weak forms in a notation close to mathematical notation.
- Kristian B. Ølgaard <firstname.lastname@example.org>Garth N. Wells <email@example.com>Marie E. Rognes <firstname.lastname@example.org>Kent-Andre Mardal <email@example.com>Johan Hake <firstname.lastname@example.org>David Ham <David.Ham@imperial.ac.uk>Florian Rathgeber <email@example.com>Andrew McRae <firstname.lastname@example.org>Lawrence Mitchell <email@example.com>Johannes Ring <firstname.lastname@example.org>
sudo python setup.py install
All source code for the UFL implementation.
Commandline utilities like "ufl-analyse", "ufl-convert" and "form2ufl".
Several ufl form files which demonstrates the use of the form language.
The UFL manual resides here.
Unit tests for the UFL implementation. Run all tests by typing "python test.py" inside the test/ directory.
A place for experimental scripts and other unofficial code.
For more information about the utilities, type:
ufl-analyse -h ufl-convert -h form2ufl -h
About the Python modules
The global namespace of the module ufl contains the entire UFL language:
from ufl import *
Form compilers may want to import additional implementation details like:
from ufl.classes import *
from ufl.algorithms import *
Importing a .ufl file can be done easily from Python:
from ufl.algorithms import load_ufl_file filedata = load_ufl_file("filename.ufl") forms = filedata.forms elements = filedata.elements
to get lists of forms and elements from the .ufl file, or:
from ufl.algorithms import load_forms forms = load_forms("filename.ufl")
to get a list of forms in the .ufl file.
Send feature requests and questions to
The Git source repository for UFL is located at
and bugs can be registered at
UFL is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
UFL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with UFL. If not, see <http://www.gnu.org/licenses/>.