|Stable release||2019.1.0 (April 19, 2019)|
|Operating system||Linux, OS X, Unix, WSL|
|Available in||C++, Python|
|Type||Scientific simulation software|
|License||GNU Lesser General Public License|
The FEniCS Project is a collection of free and open-source software components with the common goal to enable automated solution of differential equations. The components provide scientific computing tools for working with computational meshes, finite-element variational formulations of ordinary and partial differential equations, and numerical linear algebra.
Design and components
The FEniCS Project is designed as an umbrella project for a collection of interoperable components. The core components are
- UFL (Unified Form Language), a domain-specific language embedded in Python for specifying finite element discretizations of differential equations in terms of finite element variational forms;
- FIAT (Finite element Automatic Tabulator), the finite element backend of FEniCS, a Python module for generation of arbitrary order finite element basis functions on simplices;
- FFC (FEniCS Form Compiler), a compiler for finite element variational forms taking UFL code as input and generating UFC output;
- UFC (Unified Form-assembly Code), a C++ interface consisting of low-level functions for evaluating and assembling finite element variational forms;
- Instant, a Python module for inlining C and C++ code in Python;
- DOLFIN, a C++/Python library providing data structures and algorithms for finite element meshes, automated finite element assembly, and numerical linear algebra.
DOLFIN, the computational high-performance C++ backend of FEniCS, functions as the main problem-solving environment (in both C++ and Python) and user interface. Its functionality integrates the other FEniCS components and handles communication with external libraries such as PETSc, Trilinos and Eigen for numerical linear algebra, ParMETIS and SCOTCH for mesh partitioning, and MPI and OpenMP for distributed computing.
The FEniCS Project was initiated in 2003 as a research collaboration between the University of Chicago and Chalmers University of Technology. The following institutions are currently, or have been, actively involved in the development of the project
- Argonne National Laboratory
- Chalmers University of Technology
- Charles University
- Delft University of Technology
- Royal Institute of Technology
- Simula Research Laboratory
- University of Cambridge
- University of Chicago
- University of Luxembourg
Since 2019 a refactoring of code is in work of progress.
- List of finite element software packages
- List of numerical analysis software
- Using the FEATool Multiphysics GUI to set up and solve FEniCS multiphysics models
- "The FEniCS Project page". The FEniCS Project. Retrieved 28 July 2016.
- Anders Logg; Kent-Andre Mardal; Garth N. Wells, eds. (2011). Automated Solution of Differential Equations by the Finite Element Method. Springer. ISBN 978-3-642-23098-1.
- "Core components of the FEniCS Project". The FEniCS Project. Archived from the original on 4 November 2011. Retrieved 8 December 2011.
- FEniCS Governance documents. Retrieved 28 July 2016.
- "Roadmap 2019-2020 – FEniCS Project". fenicsproject.org. Archived from the original on 2019-06-07.
- "Python FEM and Multiphysics Simulations with FEniCS and FEATool". featool.com. Retrieved 2017-06-28.
- Abali, Bilen Emek (2017). Computational Reality | SpringerLink. Advanced Structured Materials. Vol. 55. doi:10.1007/978-981-10-2444-3. ISBN 978-981-10-2443-6.