FEniCS Project
   HOME

TheInfoList



OR:

The FEniCS Project is a collection of
free and open-source software Free and open-source software (FOSS) is software available under a license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term encompassing free ...
components with the common goal to enable automated solution of differential equations. The components provide
scientific computing Computational science, also known as scientific computing, technical computing or scientific computation (SC), is a division of science, and more specifically the Computer Sciences, which uses advanced computing capabilities to understand and s ...
tools for working with computational meshes, finite-element variational formulations of ordinary and
partial differential equations In mathematics, a partial differential equation (PDE) is an equation which involves a multivariable function and one or more of its partial derivatives. The function is often thought of as an "unknown" that solves the equation, similar to how ...
, and
numerical linear algebra Numerical linear algebra, sometimes called applied linear algebra, is the study of how matrix operations can be used to create computer algorithms which efficiently and accurately provide approximate answers to questions in continuous mathemati ...
.


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 A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging ...
embedded in
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (prog ...
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 In geometry, a simplex (plural: simplexes or simplices) is a generalization of the notion of a triangle or tetrahedron to arbitrary dimensions. The simplex is so-named because it represents the simplest possible polytope in any given dimension. ...
; * FFC (fenics form compiler), a
compiler In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
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 Trilinos is a collection of open-source software libraries, called ''packages'', intended to be used as building blocks for the development of scientific applications. The word "Trilinos" is Greek and conveys the idea of "a string of pearls", sugge ...
and
Eigen Eigen may refer to: People with the given name *, Japanese sport shooter *, Japanese professional wrestler * Frauke Eigen (born 1969) German photographer, photojournalist and artist * Manfred Eigen (1927–2019), German biophysicist * Michael Ei ...
for numerical linear algebra, ParMETIS and SCOTCH for mesh partitioning, and
MPI MPI or Mpi may refer to: Science and technology Biology and medicine * Magnetic particle imaging, a tomographic technique * Myocardial perfusion imaging, a medical procedure that illustrates heart function * Mannose phosphate isomerase, an enzyme ...
and
OpenMP OpenMP is an application programming interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran, on many platforms, instruction-set architectures and operating systems, including Solaris, ...
for distributed computing. As of May 2022, DOLFINx is the recommended user-interface of the FEniCS project.


History

The FEniCS Project was initiated in 2003 as a research collaboration between the
University of Chicago The University of Chicago (UChicago, Chicago, or UChi) is a Private university, private research university in Chicago, Illinois, United States. Its main campus is in the Hyde Park, Chicago, Hyde Park neighborhood on Chicago's South Side, Chic ...
and
Chalmers University of Technology Chalmers University of Technology (, commonly referred to as Chalmers) is a private university, private research university located in Gothenburg, Sweden. Chalmers focuses on engineering and science, but more broadly it also conducts research ...
. The following institutions are currently, or have been, actively involved in the development of the project *
Argonne National Laboratory Argonne National Laboratory is a Federally funded research and development centers, federally funded research and development center in Lemont, Illinois, Lemont, Illinois, United States. Founded in 1946, the laboratory is owned by the United Sta ...
*
Chalmers University of Technology Chalmers University of Technology (, commonly referred to as Chalmers) is a private university, private research university located in Gothenburg, Sweden. Chalmers focuses on engineering and science, but more broadly it also conducts research ...
*
Charles University Charles University (CUNI; , UK; ; ), or historically as the University of Prague (), is the largest university in the Czech Republic. It is one of the List of oldest universities in continuous operation, oldest universities in the world in conti ...
''FEniCS Governance documents.'' Retrieved 28 July 2016.
/ref> *
Delft University of Technology The Delft University of Technology (TU Delft; ) is the oldest and largest Dutch public university, public Institute of technology, technical university, located in Delft, Netherlands. It specializes in engineering, technology, computing, design, a ...
*
Royal Institute of Technology KTH Royal Institute of Technology (), abbreviated KTH, is a public research university in Stockholm, Sweden. KTH conducts research and education in engineering and technology and is Sweden's largest technical university. Since 2018, KTH consist ...
* Simula Research Laboratory *
University of Cambridge The University of Cambridge is a Public university, public collegiate university, collegiate research university in Cambridge, England. Founded in 1209, the University of Cambridge is the List of oldest universities in continuous operation, wo ...
*
University of Chicago The University of Chicago (UChicago, Chicago, or UChi) is a Private university, private research university in Chicago, Illinois, United States. Its main campus is in the Hyde Park, Chicago, Hyde Park neighborhood on Chicago's South Side, Chic ...
*
University of Luxembourg The University of Luxembourg (French language, French: ''Université du Luxembourg''; German language, German: ''Universität Luxemburg''; Luxembourgish language, Luxembourgish: ''Universitéit Lëtzebuerg'') is a Public university, public researc ...


DOLFINx

Since 2019, the core components of the FEniCS project have received a major refactoring. resulting i
DOLFINx
DOLFINx supports many new features not available in the old DOLFIN interface, including: * Arbitrary degree finite elements on interval, triangle, quadrilateral, tetrahedral and hexahedral cells, including unstructured meshes without special ordering; * Meshes with flat or curved cells; * Custom partitioning of cells across multiple processes; * Parallel IO via Gmsh, VTK
PyVista
an
ADIOS2
* Assembly and solvers using different floating point scalar types, including complex types; * Assembly of custom element kernels written using
Numba Numba is an open-source JIT compiler that translates a subset of Python and NumPy into fast machine code using LLVM, via the llvmlite Python package. It offers a range of options for parallelising Python code for CPUs and GPUs, often with onl ...
; * Interpolation of functions into arbitrary function spaces; * Interpolation between function spaces built on different (non-matching) meshes, including meshes using non-affine geometry; * Ability to non-intrusively support different linear algebra backends, e.g.,
NumPy NumPy (pronounced ) is a library for the Python programming language, adding support for large, multi-dimensional arrays and matrices, along with a large collection of high-level mathematical functions to operate on these arrays. The predeces ...
, PETSc,
Trilinos Trilinos is a collection of open-source software libraries, called ''packages'', intended to be used as building blocks for the development of scientific applications. The word "Trilinos" is Greek and conveys the idea of "a string of pearls", sugge ...
, and
Eigen Eigen may refer to: People with the given name *, Japanese sport shooter *, Japanese professional wrestler * Frauke Eigen (born 1969) German photographer, photojournalist and artist * Manfred Eigen (1927–2019), German biophysicist * Michael Ei ...
; * User-defined finite elements.


See also

*
List of finite element software packages This is a list of notable Computer software, software packages that implement the finite element method for solving partial differential equations. Feature comparison This table is contributed by a FEA-compareList of numerical analysis software Listed here are notable end-user computer applications intended for use with numerical or data analysis: Numerical-software packages * Analytica is a widely used proprietary software tool for building and analyzing numerical models. It is a de ...
* Using the
FEATool Multiphysics FEATool Multiphysics ("Finite Element Analysis Toolbox for Multiphysics") is a physics, finite element analysis (FEA), and partial differential equation (PDE) simulation toolbox. FEATool Multiphysics features the ability to model fully coupled he ...
GUI to set up and solve FEniCS multiphysics models
DefElement: An encyclopedia of finite element definitions


References


External links


DOLFINx
on
GitHub GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...

The (legacy) FEniCS project
on
Bitbucket Bitbucket is a Git-based source code repository hosting service owned by Atlassian. Bitbucket offers both commercial plans and free accounts with an unlimited number of private repositories. Services Bitbucket Cloud Bitbucket Cloud (pre ...
{{Projects at Chalmers University of Technology Scientific simulation software Finite element software Finite element software for Linux Free software programmed in Python Free software programmed in C++