GOTCHA: Mathematica: Specific enthalpy conversion J/kg to Btu/lb: Does not consider a possible "total" enthalpy reference offset vs 0 °C or 0 °F respectively

Webel IT Australia promotes the amazing Mathematica tool and the powerful Wolfram Language and offers professional Mathematica services for computational computing and data analysis. Our Mathematica tips, issue tracking, and wishlist is offered here most constructively to help improve the tool and language and support the Mathematica user community.
DISCLAIMER: Wolfram Research does not officially endorse analysis by Webel IT Australia.
Icon class
icon_class
far fa-sticky-note
icon_class_computed
far fa-sticky-note
Note kind
Policy level
Keywords
This is not a short-coming of Mathematica's unit handling in any way, it's intrinsic to industry practice.

If you use a Psychrometric Calculator (see these links) that can switch between SI units and Imperial units or the US customary measurement system (often indicated not entirely consistently as "IP") you might at first wonder why you can't convert specific enthalpy (often referred to in the HVAC&R industries a bit lazily as just 'enthalpy') between J/kg and Btu/lb using a simple scaling factor.

The reason is that they often have difference reference points for the "total" enthalpy, namely 0 °C or 0 °F respectively. The mass specific enthalpy is a measure of the change in that "total" enthalpy value per unit mass, so if the reference points are different, a simple scaling factor alone won't work, you also need an offset.

For example, in Mathematica, if you use UnitConvert naively to convert from a specific enthalpy in J/kg (SI) to Btu/lb (IP), you won't get the same values as shown in most online psychrometric calculators, you'll just get the scaled value portion, without any consideration of the different reference points.

Consider for example the values discussed in this HVAC Talk forum posting:


77F, 50%RH, hIP = 29.3 Btu/lb
25C (i.e. 77F) 50%RH, hSI = 50.29 kJ/kg

If you just multiply the specific enthalpy in btu/lb by a scaling factor 2.326 you get 29.3 Btu/lb x 2.326 (kJ/kg)/(Btu/lb)= 68.1518 kJ/kg, which is NOT 50.29 kK/kg!

In Mathematica (naively):


UnitConvert[
 Quantity[29.3, "InternationalTableBritishThermalUnits"/"Pounds"], 
 "Joules"/"Kilograms"]

Quantity[68151.8, "Joules"/"Kilograms"]

68151.8` J/kg

Indeed, if you naively use an online Enthalpy Unit Conversion calculator, you might get the same "wrong" conversion (without consideration of the different reference points). For example, this Units Converter gives:


1 Joule per Kilogram = 0.000429922613938997 BTU per Pound
1 BTU per Pound = 2325.99999994858 Joule per Kilogram

Naive conversion of 29.3 Btu/lb with that calculator will give a similar "wrong" conversion to 68,151,8 J/kg, because it does not consider the reference offset. It is still useful for some purposes (like latent heat conversions) but not always for specific enthalpy.

As explained by user jvtechie:

If you examine your psych charts, you will notice that enthalpy is 0 at 0 degrees for both SI and Imperial charts. You need to add/subtract the enthalpy at 32 Deg F and 0% rh. From my ASHRAE book, this would be 7.686 BTU/lb. Therefore 29.3 BTU/lb = (29.3 -7.686) x 2.326 = 50.27 KJ/KG

The BTUs

There are a lot of different variations of British Thermal Units used in various industries, Mathematica covers most of them. You can interrogate them in Mathematica by adapting this tip:


Select[Keys[QuantityUnits`Private`$UnitReplacementRules], 
 StringContainsQ["BritishThermal"]]

{"BritishThermalUnits39F", "BritishThermalUnits59F", \
"BritishThermalUnits605F", "BritishThermalUnits60F", \
"BritishThermalUnits63F", "InternationalTableBritishThermalUnits", \
"ISOBritishThermalUnits", "MeanBritishThermalUnits", \
"ThermochemicalBritishThermalUnits"}

N[UnitConvert[Quantity[1, #], "Joules"]] & /@ 
 Select[Keys[QuantityUnits`Private`$UnitReplacementRules], 
  StringContainsQ["BritishThermal"]]

{1059.67 J, 1054.804 J, 1054.68 J, 1054.68 J, 1054.6 J, 1055.05585262,J, 1055.056 J, 1055.87 J, 1054.35026444 J}

Note also that many online calculators claim to be offering conversion to "IP" (implying Imperial Units), but may in fact be using an industry specific BTU in their Btu/lb specific enthalpy, not the IT BTU (approx. 1,055.06 J), so you may experience slight differences.

Typically, when referring to a British Thermal Unit as a concept the acronym is 'BTU', whereas the unit symbol isBtu, but both usages are common in both contexts.


Did you know? From EIA:
One British thermal unit (Btu) is approximately equal to the energy released by burning a match.
Relates to
Related notes
Related notes (backlinks)
Related snippets (extracts)
Visit also
Visit also (backlinks)
External links