title: Bitpit
text: # Bitpit
  
  bitpit è una libreria C++ modulare e libera per il calcolo scientifico. Lo scopo di bitpit è la semplicazione nella stesura di un programma scientifico fornendo i mattoni comuni necessari in molte applicazioni scientifiche.
  
  Ogni modulo della libreria bitpit è sviluppato per affrontare uno specifico aspetto dello sviluppo di applicazioni reali. I moduli possono essere usati come mattoni per sviluppare applicazioni scientifiche ad alta performance. La libreria è quindi costituita da diversi moduli che spaziano da funzionalità di basso livello, come gli operatori algebrici, a funzionalità di alto livello, come la valutazione delle funzioni distanza su griglie di calcolo.
  
  ## Caratteristiche e moduli
  
  Tra le caratteristiche e i moduli presenti in bitpit possiamo trovare:
  
  * griglie non strutturate di volume e di superficie e griglie cartesiane
  * quadtree/octree lineare, parallelo a carico bilanciato e con vincoli sulla taglia di elementi vicini
  * contenitore di base per differenti tipi di griglie (di superficie e di volume) che permette l'uso contemporaneo di più griglie di tipo diverso.
  * strumenti per la valutazione di distanze segnate e non a partire da un oggetto generico immerso nel dominio di calcolo (level-set).
  * operatori algebrici di base (somma, differenza, moltiplicazione, divisione), funzioni matematiche (prodotto scalare, il prodotto vettoriale, la norma, il valore assoluto, ...), operatori di stream e funzioni di visualizzazione per alcuni containers della Standard Template Library (STL)
  * una raccolta di containers utili per applicazioni scientifiche
  * buffers binari per lo scambio dati in parallelo e metodi di alto livello per la gestione delle comunicazioni parallele.
  * metodi per la lettura e la scrittura di file di dati comuni come i file DGF (Dune Grid Format), STL (STereo Litography) and VTK (Visualization ToolKit) e metodi per la manipolazione di file di log.
  * strumenti utili alla gestione e soluzione di piccoli sistemi lineari densi.
  * interpolazione e parametrizzazione per mezzo di Radial Basis Functions anche di grandi insiemi di nodi.
  * algoritmi di ordinamento (LIFO, kd-tree, alberi binari per il massimo e il minimo,...)
  * metodi di geometria computazionale
  