How to use
- Copy the installation command and review the source package before installing it in your own agent environment.
- Check the source document for required tools, credentials and supported hosts.
- Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/soljourner/claude-engineering-skills --skill nist-refpropBefore you start
- Installation does not include a model subscription, API allowance or permission to access your files.
- Repository stars and installation counts describe activity, not an independent quality or security test.
Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.
NIST REFPROP Database Skill
Query high-accuracy thermodynamic and transport properties using the NIST REFPROP (Reference Fluid Thermodynamic and Transport Properties) database - the gold standard for thermophysical property calculations.
Overview
NIST REFPROP is a commercial-grade thermophysical property database developed by the National Institute of Standards and Technology (NIST). It provides:
- Pure Fluids: 147+ pure fluids with the highest available accuracy
- Mixtures: Predefined and custom mixtures with advanced mixing rules
- Refrigerant Blends: All common refrigerant blends with temperature glide
- Transport Properties: Viscosity, thermal conductivity, surface tension
- Thermodynamic Properties: Enthalpy, entropy, density, specific heat
- Phase Equilibrium: VLE, LLE, VLLE calculations for mixtures
- Highest Accuracy: Reference-quality data validated against experimental measurements
REFPROP is the industry and research standard for:
- Critical engineering design requiring highest accuracy
- Validation of other property libraries (CoolProp is validated against REFPROP)
- Mixture calculations with complex phase behavior
- Refrigerant blend applications with temperature glide
- Research and publication-quality data
Licensing
COMMERCIAL LICENSE REQUIRED
NIST REFPROP is NOT free or open-source software. You must purchase a license from NIST:
- Standard License: ~$300 USD (one-time purchase)
- Academic Pricing: Available for educational institutions
- Purchase: https://www.nist.gov/srd/refprop
License includes:
- REFPROP software (Windows GUI)
- Fluid database files
- Excel add-in
- FORTRAN/DLL libraries
- Python wrapper compatibility
Important Notes:
- License is per-user, perpetual (one-time fee)
- Updates and new fluid files provided for ~5 years
- Required for commercial applications
- Cannot be redistributed
Installation
Step 1: Purchase and Install REFPROP
- Purchase REFPROP license from NIST: https://www.nist.gov/srd/refprop
- Download and install REFPROP (typically to
C:\Program Files (x86)\REFPROP\) - Note the installation directory path
Step 2: Install Python Wrapper
pip install ctREFPROPThe ctREFPROP package provides a Python interface to REFPROP using ctypes.
Step 3: Set RPPREFIX Environment Variable
The Python wrapper needs to know where REFPROP is installed:
Windows:
# PowerShell
$env:RPPREFIX = "C:\Program Files (x86)\REFPROP\"
# Or set permanently via System Properties > Environment VariablesLinux/Mac:
export RPPREFIX="/path/to/REFPROP/"Python (alternative):
import os
os.environ['RPPREFIX'] = r'C:\Program Files (x86)\REFPROP'Step 4: Verify Installation
from ctREFPROP.ctREFPROP import REFPROPFunctionLibrary
# Initialize REFPROP
RP = REFPROPFunctionLibrary(os.environ['RPPREFIX'])
RP.SETPATHdll(os.environ['RPPREFIX'])
# Test query
print(RP.RPVersion())Available Fluids
REFPROP includes 147+ pure fluids organized by class:
Common Industrial Fluids
- Water (H₂O) - IAPWS-95 formulation
- Air - Dry air mixture
- Carbon Dioxide (CO₂)
- Nitrogen (N₂)
- Oxygen (O₂)
- Argon (Ar)
- Helium (He)
- Hydrogen (H₂)
Hydrocarbons (40+ fluids)
- Alkanes: Methane, Ethane, Propane, Butane, Pentane, Hexane, Heptane, Octane, Nonane, Decane (and isomers)
- Alkenes: Ethylene, Propylene, Butene
- Aromatics: Benzene, Toluene, Xylenes
- Cyclic: Cyclohexane, Cyclopentane
Refrigerants (60+ fluids)
- CFCs: R11, R12, R13, R113, R114, R115
- HCFCs: R22, R123, R124, R141b, R142b
- HFCs: R23, R32, R125, R134a, R143a, R152a, R227ea, R236fa, R245fa, R365mfc
- HFOs: R1234yf, R1234ze(E), R1233zd(E), R1336mzz(Z)
- Natural: R717 (Ammonia), R744 (CO₂), R290 (Propane), R600a (Isobutane)
- Blends: R404A, R407C, R410A, R507A, R407F, R448A, R449A, R450A, R513A
Cryogenic Fluids
- Helium, Neon, Argon, Krypton, Xenon
- Hydrogen, Deuterium, Parahydrogen
- Nitrogen, Oxygen, Fluorine
- Methane, Ethane (LNG components)
Specialty Fluids
- Siloxanes: D4, D5, D6, MD2M, MD3M, MD4M, MDM, MM (ORC applications)
- Alcohols: Methanol, Ethanol, Propanol, Butanol
- Other Organics: Acetone, Benzene, Toluene
- Inorganics: Ammonia, Sulfur dioxide, Hydrogen sulfide
See reference.md for complete fluid list.
Property Queries
Core Functions
REFPROP uses different function calls than CoolProp:
from ctREFPROP.ctREFPROP import REFPROPFunctionLibrary
import os
# Initialize
RP = REFPROPFunctionLibrary(os.environ['RPPREFIX'])
RP.SETPATHdll(os.environ['RPPREFIX'])
# Define fluid
MOLAR_BASE_SI = RP.GETENUMdll(0, "MOLAR BASE SI").iEnum
fluid = "WATER"
# Single component
r = RP.REFPROPdll(fluid, "TP", "D;H;S;CP;CV;W;VIS;TCX", MOLAR_BASE_SI, 0, 0, 298.15, 101.325, [1.0])
# Access results
density = r.Output[0] # kg/m³
enthalpy = r.Output[1] # J/kg
entropy = r.Output[2] # J/kg/K
cp = r.Output[3] # J/kg/K
cv = r.Output[4] # J/kg/K
sound_speed = r.Output[5] # m/s
viscosity = r.Output[6] # Pa·s
conductivity = r.Output[7] # W/m/KInput Specifications
| Code | Property | Unit |
|---|---|---|
TP | Temperature, Pressure | K, kPa |
TH | Temperature, Enthalpy | K, J/kg |
TS | Temperature, Entropy | K, J/kg/K |
TD | Temperature, Density | K, kg/m³ |
PH | Pressure, Enthalpy | kPa, J/kg |
PS | Pressure, Entropy | kPa, J/kg/K |
PD | Pressure, Density | kPa, kg/m³ |
TQ | Temperature, Quality | K, - |
PQ | Pressure, Quality | kPa, - |
Output Properties
| Code | Property | Unit |
|---|---|---|
D | Density | kg/m³ |
H | Enthalpy | J/kg |
S | Entropy | J/kg/K |
U | Internal energy | J/kg |
CP | Heat capacity (const P) | J/kg/K |
CV | Heat capacity (const V) | J/kg/K |
W | Speed of sound | m/s |
VIS | Viscosity | Pa·s |
TCX | Thermal conductivity | W/m/K |
KV | Kinematic viscosity | m²/s |
PRANDTL | Prandtl number | - |
STN | Surface tension | N/m |
P | Pressure | kPa |
T | Temperature | K |
Q | Quality (vapor fraction) | - |
Multiple properties can be requested in one call, separated by semicolons: "D;H;S;CP;VIS;TCX"
Mixture Calculations
One of REFPROP's key advantages is sophisticated mixture handling:
# Define mixture by components and mole fractions
fluid = "METHANE;ETHANE;PROPANE"
z = [0.9, 0.07, 0.03] # Mole fractions (must sum to 1.0)
# Query mixture properties
r = RP.REFPROPdll(fluid, "TP", "D;H;S", MOLAR_BASE_SI, 0, 0, 250.0, 5000.0, z)Mixture Features:
- Up to 20 components in a mixture
- Advanced mixing rules (GERG-2008, Kunz-Wagner, etc.)
- Temperature glide calculations for zeotropic blends
- Vapor-liquid equilibrium (VLE) calculations
- Liquid-liquid equilibrium (LLE) for certain systems
Advantages Over CoolProp
While CoolProp is excellent and free, REFPROP offers:
1. Higher Accuracy
- REFPROP is the reference standard that other libraries validate against
- More precise equations of state, especially near critical point
- Better transport property correlations
- Typical accuracy: 0.01% for density vs 0.1% for CoolProp
2. More Fluids
- 147+ pure fluids vs ~120 in CoolProp
- All latest refrigerants (HFOs: R1234yf, R1234ze, R1233zd, etc.)
- More industrial and specialty chemicals
- Frequently updated with new fluids
3. Better Mixture Handling
- Superior mixing rules (GERG-2008, advanced models)
- Handles complex non-ideal mixtures
- Temperature glide for zeotropic refrigerant blends
- VLE/LLE calculations
- Up to 20 components vs limited mixture support in CoolProp
4. Extended Property Range
- Valid over wider temperature and pressure ranges
- Better extrapolation behavior
- More reliable in extreme conditions
5. Additional Capabilities
- Humidity calculations (psychrometrics)
- Flash calculations (PT, PH, PS, etc.)
- Saturation properties with Jacobian
- Ancillary equations
- Pseudo-pure fluid approximations
6. Official Support
- Maintained by NIST (National Institute of Standards and Technology)
- Technical support available
- Regular updates with latest research
- Publication-quality results
When to Use REFPROP vs CoolProp
Use REFPROP when:
- Highest accuracy is required (±0.01%)
- Working with complex mixtures
- Need latest refrigerant data (HFOs)
- Publication or critical design work
- Budget allows commercial license
- Working with zeotropic blends (temperature glide)
Use CoolProp when:
- Budget constraints (free/open-source)
- Basic property needs (±0.1% accuracy acceptable)
- Pure fluids only
- Open-source license required
- Quick prototyping
Validation Note: CoolProp is validated against REFPROP, confirming REFPROP as the reference standard.
Common Workflow Example
from ctREFPROP.ctREFPROP import REFPROPFunctionLibrary
import os
# Setup
os.environ['RPPREFIX'] = r'C:\Program Files (x86)\REFPROP'
RP = REFPROPFunctionLibrary(os.environ['RPPREFIX'])
RP.SETPATHdll(os.environ['RPPREFIX'])
MOLAR_BASE_SI = RP.GETENUMdll(0, "MOLAR BASE SI").iEnum
# Query water at 25°C, 1 bar
fluid = "WATER"
T = 298.15 # K
P = 100.0 # kPa
r = RP.REFPROPdll(fluid, "TP", "D;H;S;CP;VIS;TCX", MOLAR_BASE_SI, 0, 0, T, P, [1.0])
print(f"Water at {T} K, {P} kPa:")
print(f" Density: {r.Output[0]:.4f} kg/m³")
print(f" Enthalpy: {r.Output[1]:.2f} J/kg")
print(f" Entropy: {r.Output[2]:.2f} J/kg/K")
print(f" Cp: {r.Output[3]:.2f} J/kg/K")
print(f" Viscosity: {r.Output[4]*1000:.4f} mPa·s")
print(f" Conductivity: {r.Output[5]:.4f} W/m/K")Error Handling
REFPROP returns error codes and messages:
r = RP.REFPROPdll(fluid, "TP", "D", MOLAR_BASE_SI, 0, 0, T, P, z)
if r.ierr > 0:
print(f"Error {r.ierr}: {r.herr}")
elif r.ierr < 0:
print(f"Warning {r.ierr}: {r.herr}")
else:
print(f"Success: {r.Output[0]}")Units
REFPROP uses different unit conventions than CoolProp:
Default Units (with MOLAR BASE SI):
- Temperature: K (Kelvin)
- Pressure: kPa (kilopascals) - Note: CoolProp uses Pa
- Density: kg/m³
- Enthalpy: J/kg
- Entropy: J/kg/K
- Viscosity: Pa·s
- Thermal conductivity: W/m/K
Unit Systems Available:
- SI with molar units
- SI with mass units (default shown above)
- English units
- Custom units
Best Practices
- Always set RPPREFIX before importing ctREFPROP
- Check ierr for errors after each call
- Use exact fluid names (case-sensitive, from FLUIDS directory)
- Pre-calculate compositions for mixtures (must sum to 1.0)
- Cache RP instance - don't reinitialize repeatedly
- Use appropriate input pairs for each phase region
- Validate results against known values initially
- Read error messages - REFPROP provides detailed diagnostics
References
Official Resources
- NIST REFPROP Website
- URL: https://www.nist.gov/srd/refprop
- Purchase and download
- REFPROP Documentation
- Included with installation
REFPROP.pdfin installation directory
- ctREFPROP Documentation
- URL: https://github.com/usnistgov/REFPROP-wrappers/tree/master/wrappers/python
- GitHub: https://github.com/usnistgov/REFPROP-wrappers
Key Publications
- Lemmon, E.W., Bell, I.H., Huber, M.L., McLinden, M.O. (2018). "NIST Standard Reference Database 23: Reference Fluid Thermodynamic and Transport Properties-REFPROP, Version 10.0", National Institute of Standards and Technology.
Support
- NIST Support: refprop@nist.gov
- Issue Tracker: https://github.com/usnistgov/REFPROP-issues
- Forum: https://groups.google.com/g/refprop
Quick Reference
# Initialize
from ctREFPROP.ctREFPROP import REFPROPFunctionLibrary
RP = REFPROPFunctionLibrary(os.environ['RPPREFIX'])
RP.SETPATHdll(os.environ['RPPREFIX'])
MOLAR_BASE_SI = RP.GETENUMdll(0, "MOLAR BASE SI").iEnum
# Pure fluid
r = RP.REFPROPdll("WATER", "TP", "D;H;S", MOLAR_BASE_SI, 0, 0, 300.0, 101.325, [1.0])
# Mixture
r = RP.REFPROPdll("METHANE;ETHANE", "TP", "D;H;S", MOLAR_BASE_SI, 0, 0, 200.0, 5000.0, [0.9, 0.1])
# Check for errors
if r.ierr != 0:
print(f"Error/Warning: {r.herr}")NIST REFPROP is the gold standard for thermophysical properties. While it requires a commercial license, the investment is justified for applications requiring the highest accuracy, mixture calculations, or publication-quality results. For open-source alternatives, see the `coolprop-db` skill.

