Projects
From The FEniCS project
FEniCS is based on a collection of interoperable components (projects). At this point, we are still learning how to design the system, but a picture is starting to appear.
DOLFIN functions as the main interface to FEniCS. Both C++ and Python front-ends are available. Some of the core functionality is implemented as part of DOLFIN, including the mesh library, assembly of linear systems, and ODE solvers, while some functionality is wrapped and delegated to other libraries. This includes linear algebra, which is delegated to uBLAS or (optionally) PETSc.
The form compiler FFC handles the symbolic manipulation of variational problems and generates efficient code for assembly of linear systems from a given variational problem.
FIAT functions as the finite element backend to FFC, tabulating finite element basis functions and their derivatives. FErari functions as an optimizing backend to FFC.
Software map
The software map below illustrates the relationship between the various FEniCS components and their relation to external software.


