La Fisica con il PC

Il calcolatore, fin dalla sua nascita, è stato usato dai ricercatori per affrontare in maniera più produttiva e spesso nuova problemi scientifici.
Vorrei qui raccogliere una piccola lista di software (Open Source) utili nel campo della Fisica e non solo, secondo il mio gusto personale.

Estrapolazione dati da grafici

Engauge Digitizer
Software per estrarre le coordinate dei punti di un grafico. Spesso capita di leggere un articolo scientifico ed imbattersi in un grafico con dei dati sperimentali che non ci convincono oppure che vorremmo usare per i nostri scopi.
Invece di stampare l'articolo e usare squadra e matita, questo software permette con semplici passi di analizzare grafici anche complicati, dandoci la possibilità di specificare il tipo di scala sugli assi ecc... e anche di esportare i punti scelti in un file di testo.
Conosco altri due software adatti allo stesso scopo di Engauge: WinDig e DataThief. Un programma che può tornare utile ma che è stato sviluppato per tutt'altri usi è tpsDIG2 (andata in Software->Data Acquisition. Notate anche gli altri programmi della serie tps).
Ecco un sito alternativo per Engauge, perché l'ultima versione non funziona per mancanza di alcune librerie: http://bconverged.com/download.php#engauge.

Analisi dati generica

QtiPlot
Questo software è molto simile al più famoso Origin (esistente solo per Windows) e serve per fare analisi dati. È un software basato principalmente sull'interazione tramite interfaccia grafica e quindi molto semplice da usare per le funzioni basilari o quando si vuole fare una veloce analisi dei dati. Non manca però di funzione avanzate! Dalla semplice definizione di funzioni personalizzate per il fitting, alla grafica 3D, allo Scripting in python, all'interazione con R, all'export in LaTeX, e così via. Da sottolineare che i pacchetti precompilati di QtiPlot sono a pagamento, se non volete pagare allora dovrete compilare il codice sorgente di QtiPlot. In realtà il problema si pone solo sotto Windows perché le varie distribuzioni di Linux mettono a disposizione propri pacchetti precompilati o da compilare banalmente (come in Gentoo). Se invece non volete compilare QtiPlot qui potete scaricare l'installer per Windos. Esiste poi anche SciDAVis, un fork di QtiPlot che però, per ora, sconsiglio.

Analisi delle immagini

ImageJ
Analizzatore di immagini. Moltissime funzioni e plugin. Open source. Plugin per il tailing delle immagini Image Stitching. Altro plugin simile per il tailing delle immagini http://fiji.sc/TrakEM2. (Altri software simili per il tiling delle immagini: il migliore è Microsoft Image Composite Editor. Un altro è XuvTools ma non funziona bene.)

Calcoli simbolici

Maxima
Tecnicamente definito un CAS (Computer Algebra System), Maxima è un software per fare principalmente matematica simbolica (derivate, integrali, equazioni algebriche, equazioni differenziali, ecc...). Come tutti i CAS da anche la possibilità di fare accurati calcoli numerici.
Un computer, come si sa, riesce a fare "abbastanza semplicemente" calcoli numerici. Difficile è invece fargli fare matematica come un essere umano, cioè senza conoscere il valore dei parametri. Tra i software che permettono di fare questo c'è appunto Maxima, nato dal famoso progetto Macsyma degli anni '60 sviluppato all'MIT. Tra i suoi simili citiamo il ben noto Mathematica.
La maniera più semplice per interagire con Maxima è tramita la sua interfaccia grafica wxMaxima. Da ricordare la possibilità di fare grafici 2D e 3D, senza dimenticare lo scripting tramite il linguaggio specifico di Maxima.

Simulazioni e analisi ottiche

XOP
XOP is a ... Esistono diverse estension di XOP. Tra queste IMD per la simulazione di trasmittanza, riflettanza e assorbanza di un film composto di un numero qualsiasi di strati di diversi materiali di cui si conosca l'indice di rifrazione complesso in funzione della lunghezza d'onda. Ecco un link importante: è un database di indici di rifrazione in funzione della lunghezza d'onda. www.ioffe.rssi.ru/SVA/NSM/Semicond/index.html
PARAV
È una applicazione solo per Windows, per poter analizzare le misure di trasmittanza ricavando indici di rifrazione e coefficiente di assorbimento del materiale. Nel caso dei film sottili permette anche la rimozione delle frange di interferenza, dalle quali ricava lo spessore del film. Dà inoltre la possibilità di ricavare la gap del semiconduttore.
The FreeSnell Thin-Film Optical Simulator
Calcola proprietà ottiche di film sottili.
OpenFilters
Adatto per la progettazione di filtri interferenziali.

Visualizzazione/creazione di strutture molecolari e cristallografiche

Vesta
Software per creare, visualizzare e analizzare strutture cristallografiche tridimensionali. Semplice e potente.
Vmd
Per creare e visualizzare la dinamica di strutture molecolari complesse in 3D. Molto potente.
Jmol
È una applicazione Java per visualizzare strutture cristalline o molecolari. Molto potente.

Simulazioni di equilibrio e cinetica di reazioni chimiche

CEA: Chemical Equilibrium with Application
Equilibrium simulation from NASA
ChemEQL
Equilibrium simulation, JAVA
CurTiPot
pH, titolazione simulation
Virtual Lab Simulator
Equilibrium simulation, JAVA
Virtual Chemistry Lab
Chemical equilibrium simulation
CKS (Chemical Kinetics Simulation)
Software un po' vecchiotto sviluppato da IBM ma ancora valido. Simula la cinetica di reazione di sistemi omogenei. Si possono specificare molte condizioni di reazione (temperatura, volume, pressione, ...) e con opportuni accorgimenti è anche possibile simulare semplici sistemi non omogenei (per esempio ossidazione di film metallici). Ecco una pagina con alcuni miei appunti su questo software.

Strumenti di sviluppo software

Python, PyQt
Python è attualmente uno dei più semplici e potenti linguaggi di programmazione. È dotato di potentissime librerie matematiche ed è interfacciabile con altre applicazioni specifiche scritte praticamente in qualsiasi linguaggio di programmazione. Per esempio è interfacciabile senza problemi con Minuit e Minuit2. Insieme alle librerie grafiche Qt (le migliori librerie grafiche sia sotto il punto di vista qualitativo che di documentazione e facilità d'uso) forma un binomio perfetto tra potenza e facilità di programmazione, adatto in particolar modo allo sviluppo di applicazioni di visualizzazione/analisi-dati in ambito scientifico.