Vés al contingut

Projecte FEniCS

De la Viquipèdia, l'enciclopèdia lliure
projecte FEniCS

Tipusaplicació i programari lliure Modifica el valor a Wikidata
Versió estable
0.5 (agost 2022) Modifica el valor a Wikidata
LlicènciaGNU LGPL Modifica el valor a Wikidata
Característiques tècniques
Escrit enC++ i Python Modifica el valor a Wikidata

El projecte FEniCS és una col·lecció de components de programari lliure i de codi obert amb l'objectiu comú de permetre la solució automatitzada d'equacions diferencials. Els components proporcionen eines de computació científiques per treballar amb malles computacionals, formulacions variacionals d'elements finits d'equacions diferencials ordinàries i parcials i àlgebra lineal numèrica.[1][2]

Disseny i components

[modifica]

El projecte FEniCS està dissenyat com un projecte paraigua per a una col·lecció de components interoperables. Els components bàsics són [3]

  • UFL (Unified Form Language), un llenguatge específic de domini incrustat a Python per especificar discretitzacions d'elements finits d'equacions diferencials en termes de formes variacionals d'elements finits;
  • FIAT (Finite element Automatic Tabulator), el backend d'elements finits de FEniCS, un mòdul Python per a la generació de funcions de base d'elements finits d'ordre arbitrari en símples;
  • FFC (FEniCS Form Compiler), un compilador per a formes variacionals d'elements finits que pren codi UFL com a entrada i genera sortida UFC;
  • UFC (Unified Form-Assembly Code), una interfície C++ que consta de funcions de baix nivell per avaluar i muntar formes variacionals d'elements finits;
  • Instant, un mòdul de Python per inserir codi C i C++ a Python;
  • DOLFIN, una biblioteca C++/Python que proporciona estructures de dades i algorismes per a malles d'elements finits, assemblatge automatitzat d'elements finits i àlgebra lineal numèrica.

DOLFIN, el backend C++ computacional d'alt rendiment de FEniCS, funciona com a principal entorn de resolució de problemes (tant en C++ com en Python) i com a interfície d'usuari. La seva funcionalitat integra els altres components FEniCS i gestiona la comunicació amb biblioteques externes com PETSc, Trilinos i Eigen per a l'àlgebra lineal numèrica, ParMETIS i SCOTCH per a la partició de malla, i MPI i OpenMP per a la computació distribuïda.[4]

Història

[modifica]

El projecte FEniCS es va iniciar l'any 2003 com una col·laboració de recerca entre la Universitat de Chicago i la Universitat Tecnològica de Chalmers. Les següents institucions estan actualment, o han estat, activament implicades en el desenvolupament del projecte

Referències

[modifica]
  1. «The FEniCS Project page» (en anglès). The FEniCS Project. [Consulta: 28 juliol 2016].
  2. Anders Logg. Automated Solution of Differential Equations by the Finite Element Method (en anglès). Springer, 2011. ISBN 978-3-642-23098-1. 
  3. «Core components of the FEniCS Project» (en anglès). The FEniCS Project. Arxivat de l'original el 4 novembre 2011. [Consulta: 8 desembre 2011].
  4. «FEniCS Project» (en anglès). https://numfocus.org.+[Consulta: 16 juliol 2023].