Proyecto FEniCS - FEniCS Project

Proyecto FEniCS
Fenics logo.png
Lanzamiento estable 2019.1.0 (19 de abril de 2019 ; hace 2 años ) [±] ( 19/04/2019 )
Sistema operativo Linux , OS X , Unix , WSL
Disponible en C ++, Python
Tipo Software de simulación científica
Licencia Licencia pública general reducida GNU
Sitio web www .fenicsproject .org

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

Diseño y componentes

El Proyecto FEniCS está diseñado como un proyecto general para una colección de componentes interoperables. Los componentes centrales son

subtítulo
Una descripción esquemática de los componentes FEniCS y su interacción
  • UFL (Lenguaje de formas unificadas), 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 (Finite elemento automática Tabulador), el backend elemento finito de FENICS, un módulo de Python para la generación de orden arbitrario funciones de base de elementos finitos en simplices ;
  • FFC (FEniCS Form Compiler), un compilador para formas variacionales de elementos finitos que toma código UFL como entrada y genera salida UFC;
  • UFC (Unified Form-Assembly Code), 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 insertar código C y C ++ en Python;
  • DOLFIN, una biblioteca de 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 C ++ computacional de alto rendimiento de FEniCS, funciona como el principal entorno de resolución de problemas (tanto en C ++ como en Python) y como interfaz de usuario. Su funcionalidad integra los otros componentes FEniCS y maneja la comunicación con bibliotecas externas como PETSc , Trilinos y Eigen para álgebra lineal numérica, ParMETIS y SCOTCH para particiones de malla, y MPI y OpenMP para computación distribuida.

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 están actualmente o han estado involucradas activamente en el desarrollo del proyecto

Desde 2019 se está realizando una refactorización del código.

Ver también

Referencias

enlaces externos