Elmer FEM solver
# Elmer FEM solver

Elmer è un software open source di multifisica basato sul metodo agli elementi finiti (FEM). È stato sviluppato in collaborazione tra le Università della Finlandia assieme a laboratori di ricerca e industrie. È distribuito sotto licenza (GPL).

L'obiettivo principale di Elmer è di risolvere diversi tipi di problemi basati su equazioni alle derivate parziali (come per esempio problemi meccanici, termici, acustici, fluidodinamici) sia essi siano indipendenti sia essi siano accoppiati tra loro. È in grado quindi di risolvere problemi sia lineari che non lineari.

Elmer si compone di più parti:

* le rappresentazioni dei vertici e dei contorni e I modelli fisici sono definiti da ElmerGUI, a sua volta basato sulle librerie CAD di Open CASCADE,
* la definizione del problema e la sua soluzione sono gestiti da ElmerSolver,
* i risultati sono visualizzati da ElmerPost,
* infine ElmerGrid può essere utilizzato per la manipolazione di semplici griglie poligonali.

Le varie parti di Elmer possono essere utilizzate anche in modo indipendente.

Elmer gira su piattaforme Unix, Mac OS e Windows e può essere compilato da una grande varietà di compilatori. Il solutore può essere utilizzato in parallelo utilizzando MPI (Message Passing Interface) o usando OpenMP, attualmente non ha nessun supporto per GPU.

## Storia

Lo sviluppo di Elmer è iniziato nel 1995 come parte della national CFD technology program, finanziati dall'agenzia di sviluppo finlandese per la tecnologia e l'innovazione Tekes. Il consorzio di sviluppo originario includeva partner di CSC – IT Center for Science (formalmente noto come CSC – Scientific Computing), Helsinki University of Technology TKK, il VTT Technical Research Centre of Finland, l'University of Jyväskylä, e Okmetic Ltd. Dopo i cinque anni iniziali il progetto è terminato e lo sviluppo è stato continuato da CSC in diversi campi di applicazione. Dal settembre del 2005 Elmer è stato reso disponibile sotto licenza GNU General Public License (GPL).

## Componenti integrabili

Elmer può essere compilato e integrato con i seguenti software o librerie:

Librerie di calcolo numerico:

* METIS, libreria di algoritmi di partizionamento multi livello (usati da ElmerGrid nel partizionamento delle griglie computazionali)
* HYPRE, libreria di algoritmi paralleli in grado di risolvere grandi sistemi di equazioni lineari
* UMFPACK, libreria di algoritmi LU per sistemi lineari sparsi asimmetrici

Preprocessori:

* GiD - strumento di pre e post produzione
* Gmsh - generatore di griglie poligonali 3D con incorporato pre e post produzione
* NETGEN - generatore automatico di griglie con output Elmer
* Triangle - generatore di griglie bidimensionali e delaunay
* SALOME - piattaforma open source per simulazioni numeriche

Post-processori:

* ParaView - strumento di visualizzazione dei risultati
* VisIt - strumento di visualizzazione dei risultati
* Mayavi - strumento per la visualizzazione interattiva dei dati

Compilatori e strumenti di generazione:

* compilatore GNU (Fortran, C, C++)
* qt-toolkit - framework multipiattaforma (per ElmerGUI interfaccia grafica)
* Microsoft Visual C++
