Progetto FENICS - FEniCS Project

Progetto FENICS
Fenici logo.png
Rilascio stabile 2019.1.0 (19 aprile 2019 ; 2 anni fa ) [±] ( 2019-04-19 )
Sistema operativo Linux , OS X , Unix , WSL
Disponibile in C++, Python
genere Software di simulazione scientifica
Licenza GNU Lesser General Public License
Sito web www .fenicsproject .org

Il progetto FEniCS è una raccolta di componenti software gratuiti e open source con l'obiettivo comune di consentire la soluzione automatizzata di equazioni differenziali . I componenti forniscono calcolo scientifico strumenti per lavorare con maglie di calcolo, ad elementi finiti formulazioni variazionali di ordinarie e equazioni differenziali parziali , e algebra lineare numerica .

Design e componenti

Il progetto FEniCS è concepito come un progetto ombrello per una raccolta di componenti interoperabili. I componenti principali sono

didascalia
Una panoramica schematica dei componenti FEniCS e della loro interazione
  • UFL (Unified Form Language), un linguaggio specifico del dominio incorporato in Python per specificare discretizzazioni ad elementi finiti di equazioni differenziali in termini di forme variazionali ad elementi finiti;
  • FIAT (Finite element Automatic Tabulator), il backend agli elementi finiti di FEniCS, un modulo Python per la generazione di funzioni base di elementi finiti di ordine arbitrario sui simplessi ;
  • FFC (FEniCS Form Compiler), un compilatore per forme variazionali agli elementi finiti che prendono codice UFL come input e generano output UFC;
  • UFC (Unified Form-assembly Code), un'interfaccia C++ costituita da funzioni di basso livello per la valutazione e l'assemblaggio di forme variazionali ad elementi finiti;
  • Instant, un modulo Python per incorporare il codice C e C++ in Python;
  • DOLFIN, una libreria C++/Python che fornisce strutture dati e algoritmi per mesh di elementi finiti, assemblaggio di elementi finiti automatizzato e algebra lineare numerica.

DOLFIN, il backend C++ computazionale ad alte prestazioni di FEniCS, funziona come principale ambiente di risoluzione dei problemi (sia in C++ che in Python) e interfaccia utente. La sua funzionalità integra gli altri componenti FEniCS e gestisce la comunicazione con librerie esterne come PETSc , Trilinos e Eigen per l'algebra lineare numerica, ParMETIS e SCOTCH per il partizionamento mesh e MPI e OpenMP per il calcolo distribuito.

Storia

Il progetto FEniCS è stato avviato nel 2003 come collaborazione di ricerca tra l' Università di Chicago e la Chalmers University of Technology . Le seguenti istituzioni sono attualmente, o sono state, attivamente coinvolte nello sviluppo del progetto

Dal 2019 è in corso un refactoring del codice.

Guarda anche

Riferimenti

link esterno