The property calculators are convenient, but they don't implement all of the available TPX functions. Once you learn the simple function syntax, you may often prefer to enter functions by hand even if you could do it with a calculator (if you are only entering a few).
A complete listing of the functions supplied by TPX is given here.
| Property | Function Call |
|---|---|
| Temperature | Temp("Name", "XY", X_value, Y_value) |
| Pressure | P("Name", "XY", X_value, Y_value) |
| Vapor Mass Fraction (Quality) | X("Name", "XY", X_value, Y_value) |
| Specific/Molar Volume | v("Name", "XY", X_value, Y_value) |
| Specific/Molar Internal Energy | u("Name", "XY", X_value, Y_value) |
| Specific/Molar Enthalpy | h("Name", "XY", X_value, Y_value) |
| Specific/Molar Entropy | s("Name", "XY", X_value, Y_value) |
| Specific/Molar Helmholz Free Energy | f("Name", "XY", X_value, Y_value) |
| Specific/Molar Gibbs Free Energy | g("Name", "XY", X_value, Y_value) |
| Heat capacity at constant v | cv("Name", "XY", X_value, Y_value) |
| Heat capacity at constant p | cp("Name", "XY", X_value, Y_value) |
| Isothermal compressibility | kt("Name", "XY", X_value, Y_value) |
| Isentropic compressibility | ks("Name", "XY", X_value, Y_value) |
| Thermal expansion coefficient | beta("Name", "XY", X_value, Y_value) |
| Speed of sound | sound("Name", "XY", X_value, Y_value) |
In Excel, case is unimportant, so upper, lower, or mixed-case are equivalent. Whether "specific" (per unit mass) or "molar" (per mole) properties are calculated depends on the setting under Options. For most substances, the derivative properties (cv, cp, kt, ks, beta, sound) are computed by numerical differentiation.
| "Name" | A string specifying the fluid name or formula, including quotes. For example, "H2O", "water", "o2", "Oxygen", "HFC134a", etc. Alternatively, the name or formula could be entered in another cell (without quotes), and the cell reference given, or a name assigned to the cell and the name given (without quotes) |
| "XY" | A two-letter string denoting which two properties are used to specify the thermodynamic state. To specify T and P, enter "TP"; to specify s and v, enter "SV", etc. The order is unimportant - both "SV" and "VS" are valid. |
| X_value | The numerical value in the current units for the first property in the "XY" string. |
| Y_value | The numerical value in the current units for the second property in the "XY" string. |
Some valid function calls are shown below:
| p( "h2", "tv", 300, 10) | |
| temp( B5, "PX", 400, 0) | where cell B5 contains H2O. |
| temp( B5, C10, 400, 0) | where cell C10 contains PX. |
| H( fluid, C10, 400, 0) | where fluid is a name defined for cell B5 |
| X("hfc134a", "hv", 123.4, vcrit("hfc134a") ) | functions may also be input parameters |
The same functions can used for saturated and non-saturated states. Saturated state properties are specified using "PX" or "TX". For example, the saturation pressure of water at 300 K is P("H2O","TX",300,0). The enthalpy of saturated liquid nitrogen at P = 2.5 atm is h("n2","PX",2.5,0), while the saturated vapor enthalpy is h("n2","PX",2.5,1) assuming the pressure units are atm.
The function X returns the vapor mass fraction for states within the vapor dome. Outside the dome, the function returns 1.0 if the specific volume is greater than the critical volume, and 0.0 otherwise.
Two convenience functions are implemented:
| Saturation pressure | Psat("Name", T) |
| Saturation temperature | Tsat("Name", P) |
These are synonyms for P("Name", "TX", T, 0) and Temp("Name", "PX", P, 0)'
TPX can compute the generalized compressibility, enthalpy departure, and entropy departure using the Lee-Kesler equation of state. The functions are
| Lee-Kesler generalized compressibility | ZLK(T*, P* [,omega]) |
| Lee-Kesler generalized enthalpy departure | HLK(T*, P* [,omega]) |
| Lee-Kesler generalized enthalpy departure | SLK(T*, P* [,omega]) |
The calling parameters are
| T* | The reduced temperature T/Tcrit |
| P* | The reduced pressure P/Pcrit |
| omega | The acentric parameter. If omitted, omega = 0. |
Several functions are provided which return constant property values associated with each substance
| Property | Function Call |
| Critical Pressure | Pcrit("Name") |
| Critical Temperature | Tcrit("Name") |
| Critical Specific/Molar Volume | Vcrit("Name") |
| Minimum Temperature for which functions are valid | Tmin("Name") |
| Maximum Temperature for which functions are valid | Tmax("Name") |
Functions are provided which return strings giving the current units.
| Property | Function Call |
| P | P_unit([r]) |
| T | T_unit([r]) |
| v | v_unit([r]) |
| u, h, f, g | e_unit([r]) |
| s, cp, cv | s_unit([r]) |
The unit functions have an optional input parameter r, which must be a number. In Excel, a function is only recalculated when its inputs change. Therefore, a function with no inputs like P_unit() will never be recalculated, even if the units are changed later. The function can be forced to recalculate if it is given a "dummy" input parameter which changes. For example, P_unit(B3) will recalculate whenever cell B3 changes. If you put rand() in B3, P_unit(B3) will update whenever anything in the workbook changes, including changing units.
Another solution is provided by the function change(x), where x may have any data type. This function returns x, but is set up so that Excel regards it as having changed when anything in the workbook changes, even if x\ has not. Therefore, any function which refers to this cell will recalculate. This can be used to force property functions to recalculate when the units are changed, for example by entering the substance name in a cell as ' =change("H2O") ' and then refering to this cell in the property functions.