FEniCS Project

Last updated
FEniCS Project
Stable release 0.7.2 (November 14, 2023;4 months ago (2023-11-14) [1] ) [±]
Operating system Linux, OS X, Unix, WSL
Available inC++, Python
Type Scientific simulation software
License GNU Lesser General Public License
Website www.fenicsproject.org

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. [2] [3]

Contents

Design and components

The FEniCS Project is designed as an umbrella project for a collection of interoperable components. The core components are [4]

A schematic overview of the FEniCS components and their interplay Fenics-map.png
A schematic overview of the FEniCS components and their interplay

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.

As of May 2022, DOLFINx is the recommended user-interface of the FEniCS project [5] .

History

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

DOLFINx

Since 2019, the core components of the FEniCS project have received a major refactoring. [7] resulting in DOLFINx [8] . DOLFINx supports many new features not available in the old DOLFIN interface, including:


See also

Related Research Articles

<span class="mw-page-title-main">Numerical analysis</span> Study of algorithms using numerical approximation

Numerical analysis is the study of algorithms that use numerical approximation for the problems of mathematical analysis. It is the study of numerical methods that attempt to find approximate solutions of problems rather than the exact ones. Numerical analysis finds application in all fields of engineering and the physical sciences, and in the 21st century also the life and social sciences, medicine, business and even the arts. Current growth in computing power has enabled the use of more complex numerical analysis, providing detailed and realistic mathematical models in science and engineering. Examples of numerical analysis include: ordinary differential equations as found in celestial mechanics, numerical linear algebra in data analysis, and stochastic differential equations and Markov chains for simulating living cells in medicine and biology.

Numerical methods for partial differential equations is the branch of numerical analysis that studies the numerical solution of partial differential equations (PDEs).

The boundary element method (BEM) is a numerical computational method of solving linear partial differential equations which have been formulated as integral equations, including fluid mechanics, acoustics, electromagnetics, fracture mechanics, and contact mechanics.

In numerical analysis, a multigrid method is an algorithm for solving differential equations using a hierarchy of discretizations. They are an example of a class of techniques called multiresolution methods, very useful in problems exhibiting multiple scales of behavior. For example, many basic relaxation methods exhibit different rates of convergence for short- and long-wavelength components, suggesting these different scales be treated differently, as in a Fourier analysis approach to multigrid. MG methods can be used as solvers as well as preconditioners.

<span class="mw-page-title-main">Matrix Template Library</span> Linear algebra library for C++ programs

The Matrix Template Library (MTL) is a linear algebra library for C++ programs.

The Portable, Extensible Toolkit for Scientific Computation, is a suite of data structures and routines developed by Argonne National Laboratory for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the Message Passing Interface (MPI) standard for all message-passing communication. PETSc is the world’s most widely used parallel numerical software library for partial differential equations and sparse matrix computations. PETSc received an R&D 100 Award in 2009. The PETSc Core Development Group won the SIAM/ACM Prize in Computational Science and Engineering for 2015.

The finite-difference frequency-domain (FDFD) method is a numerical solution method for problems usually in electromagnetism and sometimes in acoustics, based on finite-difference approximations of the derivative operators in the differential equation being solved.

The James H. Wilkinson Prize for Numerical Software is awarded every four years to honor outstanding contributions in the field of numerical software. The award is named to commemorate the outstanding contributions of James H. Wilkinson in the same field.

<span class="mw-page-title-main">Coolfluid</span> Scientific computing environment

COOLFluiD is a component based scientific computing environment that handles high-performance computing problems with focus on complex computational fluid dynamics (CFD) involving multiphysics phenomena.

<span class="mw-page-title-main">Finite element method</span> Numerical method for solving physical or engineering problems

The finite element method (FEM) is a popular method for numerically solving differential equations arising in engineering and mathematical modeling. Typical problem areas of interest include the traditional fields of structural analysis, heat transfer, fluid flow, mass transport, and electromagnetic potential.

hp-FEM is a generalization of the finite element method (FEM) for solving partial differential equations numerically based on piecewise-polynomial approximations. hp-FEM originates from the discovery by Barna A. Szabó and Ivo Babuška that the finite element method converges exponentially fast when the mesh is refined using a suitable combination of h-refinements and p-refinements .The exponential convergence of hp-FEM has been observed by numerous independent researchers.

<span class="mw-page-title-main">GetFEM++</span>

GetFEM++ is a generic finite element C++ library with interfaces for Python, Matlab and Scilab. It aims at providing finite element methods and elementary matrix computations for solving linear and non-linear problems numerically. Its flexibility in choosing among different finite element approximations and numerical integration methods is one of its distinguishing characteristics.

<span class="mw-page-title-main">MOOSE (software)</span>

MOOSE is an object-oriented C++ finite element framework for the development of tightly coupled multiphysics solvers from Idaho National Laboratory. MOOSE makes use of the PETSc non-linear solver package and libmesh to provide the finite element discretization.

<span class="mw-page-title-main">Agros2D</span>

Agros2D is an open-source code for numerical solutions of 2D coupled problems in technical disciplines. Its principal part is a user interface serving for complete preprocessing and postprocessing of the tasks. The processor is based on the library Hermes containing the most advanced numerical algorithms for monolithic and fully adaptive solution of systems of generally nonlinear and nonstationary partial differential equations (PDEs) based on hp-FEM. Both parts of the code are written in C++.

Nektar++ is a spectral/hp element framework designed to support the construction of efficient high-performance scalable solvers for a wide range of partial differential equations (PDE). The code is released as open-source under the MIT license. Although primarily driven by application-based research, it has been designed as a platform to support the development of novel numerical techniques in the area of high-order finite element methods.

<span class="mw-page-title-main">FEATool Multiphysics</span>

FEATool Multiphysics is a physics, finite element analysis (FEA), and partial differential equation (PDE) simulation toolbox. FEATool Multiphysics features the ability to model fully coupled heat transfer, fluid dynamics, chemical engineering, structural mechanics, fluid-structure interaction (FSI), electromagnetics, as well as user-defined and custom PDE problems in 1D, 2D (axisymmetry), or 3D, all within a graphical user interface (GUI) or optionally as script files. FEATool has been employed and used in academic research, teaching, and industrial engineering simulation contexts.

References

  1. https://fenicsproject.org/download/
  2. "The FEniCS Project page". The FEniCS Project. Retrieved 28 July 2016.
  3. 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.
  4. "Core components of the FEniCS Project". The FEniCS Project. Archived from the original on 4 November 2011. Retrieved 8 December 2011.
  5. "The new DOLFINx solver is now recommended over DOLFIN". fenicsproject.discourse.group.
  6. 1 2 FEniCS Governance documents. Retrieved 28 July 2016.
  7. "Roadmap 2019-2020 – FEniCS Project". fenicsproject.org. Archived from the original on 2019-06-07.
  8. "DOLFINx: The next generation FEniCS problem solving environment" . Retrieved 2024-04-04.
  9. "Python FEM and Multiphysics Simulations with FEniCS and FEATool". featool.com. Retrieved 2017-06-28.
  10. 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.