Projeto FEniCS - FEniCS Project

Projeto FEniCS
Fenics logo.png
Versão estável 01.01.2019 (19 de abril de 2019 ; há 2 anos ) [±] ( 19/04/2019 )
Sistema operacional Linux , OS X , Unix , WSL
Disponível em C ++, Python
Modelo Software de simulação científica
Licença GNU Lesser General Public License
Local na rede Internet www .fenicsproject .org

O Projeto FEniCS é uma coleção de componentes de software gratuitos e de código aberto com o objetivo comum de permitir a solução automatizada de equações diferenciais . Os componentes fornecer computação científicos ferramentas para trabalhar com malhas computacionais, de elementos finitos formulações variacional da comuns e equações diferenciais parciais , e álgebra linear numérica .

Design e componentes

O projeto FEniCS foi desenvolvido como um projeto abrangente para uma coleção de componentes interoperáveis. Os componentes principais são

rubrica
Uma visão geral esquemática dos componentes FEniCS e sua interação
  • UFL (Unified Form Language), uma linguagem de domínio específico incorporada em Python para especificar discretizações de elementos finitos de equações diferenciais em termos de formas variacionais de elementos finitos;
  • FIAT (Finite element Automatic Tabulator), o backend de elementos finitos do FEniCS, um módulo Python para geração de funções de base de elementos finitos de ordem arbitrária em simplices ;
  • FFC (FEniCS Form Compiler), um compilador para formas variacionais de elementos finitos, tendo o código UFL como entrada e gerando a saída UFC;
  • UFC (Unified Form-assembly Code), uma interface C ++ que consiste em funções de baixo nível para avaliar e montar formas variacionais de elementos finitos;
  • Instant, um módulo Python para embutir código C e C ++ em Python;
  • DOLFIN, uma biblioteca C ++ / Python que fornece estruturas de dados e algoritmos para malhas de elementos finitos, montagem automatizada de elementos finitos e álgebra linear numérica.

DOLFIN, o back-end computacional de C ++ de alto desempenho do FEniCS, funciona como o principal ambiente de solução de problemas (em C ++ e Python) e interface de usuário. Sua funcionalidade integra os outros componentes FEniCS e lida com a comunicação com bibliotecas externas como PETSc , Trilinos e Eigen para álgebra linear numérica, ParMETIS e SCOTCH para particionamento de malha e MPI e OpenMP para computação distribuída.

História

O Projeto FEniCS foi iniciado em 2003 como uma colaboração de pesquisa entre a Universidade de Chicago e a Chalmers University of Technology . As seguintes instituições estão ou estiveram ativamente envolvidas no desenvolvimento do projeto

Desde 2019, uma refatoração de código está em andamento.

Veja também

Referências

links externos