nist-refprop
Skill81 starsChanged 12 months agoMITView on GitHub
Query high-accuracy thermodynamic properties from NIST REFPROP database (commercial)
- Installs packages
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 4 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 21
Refrigerant Blends: All common refrigerant blends with temperature glide
- Distinctive: line 251
All latest refrigerants (HFOs: R1234yf, R1234ze, R1233zd, etc.)
- Distinctive: line 364
Always set RPPREFIX: before importing ctREFPROP
- Distinctive: line 368
Cache RP instance: - don't reinitialize repeatedly
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
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
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.
In this repository29 other files it gives its agents.
- cavitation-risk-dbSkill
- coolprop-dbSkill
- hydraulic-components-dbSkill
- material-properties-dbSkill
- nasa-earthdataSkill
- pump-performance-dbSkill
- turbulence-models-dbSkill
- engineering-context-initSkill
- error-handler-fluidsSkill
- fluid-property-calculatorSkill
- get-available-resourcesSkill
- pump-selection-helperSkill
- unit-converterSkill
- ansys-simulationSkill
- comsol-multiphysicsSkill
- openfoam-cfdSkill
- solidworks-cadSkill
- fluids-packageSkill
- matplotlib-visualizationSkill
- networkx-flow-networksSkill
- numpy-numericsSkill
- pint-unitsSkill
- pyvista-visualizationSkill
- scipy-optimizationSkill
- sympy-symbolicSkill
- thermo-packageSkill
- fluid-dynamics-workflowSkill
- structural-analysis-workflowSkill
- thermodynamics-workflowSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

