Articulo de referencia

Proyecto FEniCS

El proyecto FEniCS es una colección de componentes de software libre y de código abierto cuyo objetivo común es permitir la solución automatizada de ecuaciones diferenciales . L...

El proyecto FEniCS es una colección de componentes de software libre y de código abierto cuyo objetivo común es permitir la solución automatizada de ecuaciones diferenciales . Los componentes proporcionan herramientas de computación científica para trabajar con mallas computacionales, formulaciones variacionales de elementos finitos de ecuaciones diferenciales ordinarias y parciales y álgebra lineal numérica . [2] [3]

Diseño y componentes

El proyecto FEniCS está diseñado como un proyecto paraguas para una colección de componentes interoperables. Los componentes principales son [4]

subtítulo
Una descripción esquemática de los componentes de FEniCS y su interacción
  • UFL (lenguaje de forma unificada), un lenguaje específico de dominio integrado en Python para especificar discretizaciones de elementos finitos de ecuaciones diferenciales en términos de formas variacionales de elementos finitos;
  • FIAT (tabulador automático de elementos finitos), el backend de elementos finitos de FEniCS, un módulo Python para la generación de funciones base de elementos finitos de orden arbitrario en simplices ;
  • FFC (compilador de formas fenics), un compilador para formas variacionales de elementos finitos que toma código UFL como entrada y genera una salida UFC;
  • UFC (código de ensamblaje de forma unificada), una interfaz C++ que consta de funciones de bajo nivel para evaluar y ensamblar formas variacionales de elementos finitos;
  • Instant, un módulo de Python para incorporar código C y C++ en Python;
  • DOLFIN, una biblioteca C++/Python que proporciona estructuras de datos y algoritmos para mallas de elementos finitos, ensamblaje automatizado de elementos finitos y álgebra lineal numérica.

DOLFIN, el backend computacional de alto rendimiento en C++ de FEniCS, funciona como el entorno principal de resolución de problemas (tanto en C++ como en Python) y como interfaz de usuario. Su funcionalidad integra los demás componentes de FEniCS y gestiona la comunicación con bibliotecas externas como PETSc , Trilinos y Eigen para álgebra lineal numérica, ParMETIS y SCOTCH para particionamiento en malla, y MPI y OpenMP para computación distribuida.

A partir de mayo de 2022, DOLFINx es la interfaz de usuario recomendada del proyecto FEniCS. [5]

Historia

El proyecto FEniCS se inició en 2003 como una colaboración de investigación entre la Universidad de Chicago y la Universidad Tecnológica de Chalmers . Las siguientes instituciones participan actualmente o han participado activamente en el desarrollo del proyecto

DELFINx

Desde 2019, los componentes principales del proyecto FEniCS han recibido una importante refactorización [7] , lo que dio como resultado DOLFINx. [8] DOLFINx admite muchas características nuevas que no estaban disponibles en la antigua interfaz DOLFIN, entre ellas:

  • Elementos finitos de grado arbitrario en celdas de intervalo, triangulares, cuadriláteras, tetraédricas y hexaédricas, incluidas mallas no estructuradas sin ordenamiento especial;
  • Mallas con celdas planas o curvas;
  • Partición personalizada de celdas en múltiples procesos;
  • E/S paralela a través de Gmsh , VTK , PyVista y ADIOS2;
  • Ensamblaje y solucionadores que utilizan diferentes tipos escalares de punto flotante, incluidos tipos complejos;
  • Ensamblaje de núcleos de elementos personalizados escritos con Numba ;
  • Interpolación de funciones en espacios funcionales arbitrarios;
  • Interpolación entre espacios funcionales creados sobre mallas diferentes (no coincidentes), incluidas mallas que utilizan geometría no afín;
  • Capacidad para soportar de forma no intrusiva diferentes backends de álgebra lineal, por ejemplo, NumPy , PETSc , Trilinos y Eigen ;
  • Elementos finitos definidos por el usuario.


Véase también

Referencias

  1. ^ https://fenicsproject.org/download/
  2. ^ "La página del Proyecto FEniCS". El Proyecto FEniCS . Consultado el 28 de julio de 2016 .
  3. ^ Anders Logg; Kent-Andre Mardal; Garth N. Wells, eds. (2011). Solución automatizada de ecuaciones diferenciales mediante el método de elementos finitos . Springer. ISBN 978-3-642-23098-1.
  4. ^ "Componentes básicos del Proyecto FEniCS". El Proyecto FEniCS . Archivado desde el original el 4 de noviembre de 2011. Consultado el 8 de diciembre de 2011 .
  5. ^ "El nuevo solucionador DOLFINx ahora se recomienda en lugar de DOLFIN". fenicsproject.discourse.group .
  6. ^ Documentos de gobernanza de FEniCS. Recuperado el 28 de julio de 2016.
  7. ^ "Hoja de ruta 2019-2020 – Proyecto FEniCS". fenicsproject.org . Archivado desde el original el 7 de junio de 2019.
  8. ^ "DOLFINx: El entorno de resolución de problemas FEniCS de próxima generación" . Consultado el 4 de abril de 2024 .
  9. ^ "Simulaciones multifísicas y FEM en Python con FEniCS y FEATool". featool.com . Consultado el 28 de junio de 2017 .
  10. ^ Abali, Bilen Emek (2017). Realidad computacional | SpringerLink . Materiales estructurados avanzados. Vol. 55. doi :10.1007/978-981-10-2444-3. ISBN 978-981-10-2443-6.
Obtenido de "https://es.wikipedia.org/w/index.php?title=Proyecto_FEniCS&oldid=1218007055"