From The FEniCS project

Contents

Components of 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, PETSc, Epetra or MTL4.

The form compilers FFC and SyFi handle the symbolic manipulation of variational problems and generate 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.

FEniCS Apps is a collection of applications which are developed and maintained by users of FEniCS components. Typically, these applications are solvers for various engineering problems build on top of DOLFIN.

Roadmap

FEniCS is still a research code in its early stages of development, interfaces may be in constant flux and documentation may be missing. In the recent year, however, there has been an increased focus on converging to a stable interface and a major milestone will be the release of the first stable version of DOLFIN (1.0) which is expected to arrive in 2009. For details, see the DOLFIN road map.

Release cycle

The individual FEniCS projects all have their individual (and irregular) release cycles. However, starting April 2009, we are intending to make coordinated releases of all projects twice a year (following the pace set by Ubuntu). The first coordinated release was FEniCS 2009-04, code-named Automatic Augustin.

Software map

The software map below illustrates the relationship between the various FEniCS components and their relation to external software.

Image:fenics-map-small.png

Personal tools