FEniCS Project
   HOME

TheInfoList



OR:

The FEniCS Project is a collection of
free and open-source software Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
components with the common goal to enable automated solution of
differential equation In mathematics, a differential equation is an equation that relates one or more unknown functions and their derivatives. In applications, the functions generally represent physical quantities, the derivatives represent their rates of change, an ...
s. The components provide
scientific computing Computational science, also known as scientific computing or scientific computation (SC), is a field in mathematics that uses advanced computing capabilities to understand and solve complex problems. It is an area of science that spans many disc ...
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 imposes relations between the various partial derivatives of a multivariable function. The function is often thought of as an "unknown" to be solved for, similarly to ...
, 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 mathematics. ...
.


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 f ...
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 (pro ...
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 translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
for finite element variational forms taking UFL code as input and generating UFC output; * UFC (Unified Form-assembly Code), a
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
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, 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 st ...
and
Eigen Eigen may refer to: * Eigen (C++ library), computer programming library for matrix and linear algebra operations * Eigen Technologies, the Document AI software company * Eigen, Schwyz, settlement in the municipality of Alpthal in the canton of Schw ...
for numerical linear algebra, ParMETIS and SCOTCH for mesh partitioning, and MPI and
OpenMP OpenMP (Open Multi-Processing) 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 syste ...
for distributed computing.


History

The FEniCS Project was initiated in 2003 as a research collaboration between the
University of Chicago The University of Chicago (UChicago, Chicago, U of C, or UChi) is a private research university in Chicago, Illinois. Its main campus is located in Chicago's Hyde Park neighborhood. The University of Chicago is consistently ranked among the b ...
and
Chalmers University of Technology Chalmers University of Technology ( sv, Chalmers tekniska högskola, often shortened to Chalmers) is a Swedish university located in Gothenburg that conducts research and education in technology and natural sciences at a high international level ...
. The following institutions are currently, or have been, actively involved in the development of the project *
Argonne National Laboratory Argonne National Laboratory is a science and engineering research United States Department of Energy National Labs, national laboratory operated by University of Chicago, UChicago Argonne LLC for the United States Department of Energy. The facil ...
*
Chalmers University of Technology Chalmers University of Technology ( sv, Chalmers tekniska högskola, often shortened to Chalmers) is a Swedish university located in Gothenburg that conducts research and education in technology and natural sciences at a high international level ...
*
Charles University ) , image_name = Carolinum_Logo.svg , image_size = 200px , established = , type = Public, Ancient , budget = 8.9 billion CZK , rector = Milena Králíčková , faculty = 4,057 , administrative_staff = 4,026 , students = 51,438 , undergr ...
''FEniCS Governance documents.'' Retrieved 28 July 2016.
/ref> *
Delft University of Technology Delft University of Technology ( nl, Technische Universiteit Delft), also known as TU Delft, is the oldest and largest Dutch public technical university, located in Delft, Netherlands. As of 2022 it is ranked by QS World University Rankings among ...
*
Royal Institute of Technology The KTH Royal Institute of Technology ( sv, Kungliga Tekniska högskolan, lit=Royal Institute of Technology), abbreviated KTH, is a public research university in Stockholm, Sweden. KTH conducts research and education in engineering and technolo ...
*
Simula Research Laboratory Simula Research Laboratory (also known as Simula) is a Norwegian non-profit research organisation located in Oslo, Norway. Simula was founded in 2001 by the Norwegian government to conduct fundamental, long-term research within information and c ...
*
University of Cambridge , mottoeng = Literal: From here, light and sacred draughts. Non literal: From this place, we gain enlightenment and precious knowledge. , established = , other_name = The Chancellor, Masters and Schola ...
*
University of Chicago The University of Chicago (UChicago, Chicago, U of C, or UChi) is a private research university in Chicago, Illinois. Its main campus is located in Chicago's Hyde Park neighborhood. The University of Chicago is consistently ranked among the b ...
*
University of Luxembourg The University of Luxembourg ( French: ''Université du Luxembourg''; German: ''Universität Luxemburg''; Luxembourgish: ''Universitéit Lëtzebuerg'') is a public research university in Luxembourg. History The University of Luxembourg was foun ...
Since 2019 a refactoring of code is in work of progress.


See also

*
List of finite element software packages This is a list of notable software packages that implement the finite element method for solving partial differential equations In mathematics, a partial differential equation (PDE) is an equation which imposes relations between the various ...
*
List of numerical analysis software Listed here are notable end-user computer applications intended for use with numerical or data analysis: Numerical-software packages General-purpose computer algebra systems Interface-oriented Language-oriented Historically significa ...
* Using the
FEATool Multiphysics FEATool Multiphysics ("Finite Element Analysis Toolbox for Multiphysics") is a physics, finite element analysis (FEA), and PDE simulation toolbox. FEATool Multiphysics features the ability to model fully coupled heat transfer, fluid dynamics, che ...
GUI to set up and solve FEniCS multiphysics models


References


External links


The FEniCS project
on
Bitbucket Bitbucket is a Git (software), Git-based source code repository (version control), repository shared web hosting service, hosting service owned by Atlassian. Bitbucket offers both commercial plans and free accounts with an unlimited number of p ...
{{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++