CoolProp – libreria open source alternativa a REFPROP

CoolProp è una libreria gratuita open source molto versatile che non può assolutamente mancare tra gli strumenti a disposizione di un ingegnere di processo che si diletti con la programmazione. Scritta in C++, consente infatti di:

  • Ottenere le proprietà chimico fisiche e di trasporto di 122 fluidi di interesse industriale e delle loro miscele
  • E’ dotata di routine per il calcolo delle proprietà dell’aria umida con una elevatissima accuratezza superiore anche a numerosi simulatori di processo commerciali
  • Dotata di default delle principali equazioni di stato quali Peng-Robinson e Soave-Redlich-Kwong olte che delle formule IAPWS-97 per quanto riguarda le proprietà dell’acqua e del vapore
  • Utilizzabile su un numero praticamente sconfinato di programmi e applicativi. Sul sito ufficiale (http://www.coolprop.org) è infatti possibile scaricare dei wrapper per Python, Modelica, Octave, C#, VB.net, MathCAD, Java, Android, MATLAB e degli add-in per Labview, EES, Microsoft Excel, LibreOffice, Javascript, PHP, FORTRAN, Maple, Mathematica, Scilab, Delphi & Lazarus, Julia, solamente per citare i principali.

Il vantaggio di questa libreria è la sua versatilità, unita alla sua semplicità. L’ingegnere che vuole costruirsi un modello o un bilancio di materia e di energia può infatti evitare di scriversi a mano migliaia di linee di codice per implementare tutte le proprietà dei fluidi che gli servono, nonchè le equazioni da utilizzare, e concentrarsi su altro. Il fatto inoltre che sia scritta in C++ garantisce una buona velocità di esecuzione.

Una volta scaricata e installata (il procedimento varia a seconda dell’applicativo in cui la si vuole utilizzare), l’utilizzo della libreria è piuttosto semplice, per chi conosce un minimo di programmazione. Quasi tutte le funzioni della libreria si ottengono richiamando il comando “PropsSI”, cui vanno passati dei parametri opportuni affinchè la funzione restituisca ciò che vogliamo. Questi parametri generalmente sono proprietà da calcolare (entalpia, densità, calore specifico ecc…), condizioni a cui si trova il fluido (pressione, temperatura ecc), e nome del fluido o della miscela.

Facciamo qualche esempio in Visual Basic:

'Esempio: calcola la temperatura di ebollizione dell'ammoniaca a P atm (K)
dim variabile as double
variabile = PropsSI("T", "P", 101325, "Q", 0, "Ammonia")

Il codice qui sopra elencato copia il risultato della funzione in variabile. Alla funzione PropsSI si è chiesto di calcolare la temperatura di ebollizione (“T”) dell’ammoniaca (“Ammonia”), noto il valore di pressione in Pascal (“P”, 101325) e del calore fornito (“Q”, 0).

Un altro esempio leggermente più complesso, il calcolo del calore specifico dell’acqua fissata pressione e temperatura (in K):

'Esempio: calcola il cp dell'acqua a 300 K
variabile = PropsSI("C", "P", 101325, "T", 300, "Water")

Fin da questi due esempi appare chiaro che:

  • Il primo parametro della funzione rappresenta la proprietà calcolata da PropsSI (in altre parole, il suo valore di output)
  • Secondo e quarto parametro rappresentano le due condizioni da dare per caratterizzare il fluido (Pressione, temperatura, calore fornito ecc)
  • Terzo e quinto parametro rappresentano i valori numerici che caratterizzano rispettivamente il secondo e il quarto parametro visti sopra
  • Il quinto e ultimo parametro è il fluido di cui si vuole ottenere la proprietà

Un altro esempio, calcolo della densità in kg/m3 (“D”) di una miscela di propano ed etano al 50% molare a P 1 bar e T 298 K:

variabile = PropsSI("D", "T", 298, "P", 100000.0, "Propane[0.5]&Ethane[0.5]")

In definitiva una libreria gratuita, utile ed efficiente che e’ gia’ diventata parte dei miei tool che utilizzo tutti i giorni.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.