Skip to content
All Skills

Coolprop DB

Query thermodynamic properties for 100+ fluids from CoolProp database

Science & Simulation|v1|Updated 7/14/2026|GitHub source
MCP get_skill({ skillId: "coolprop-db-000038df" })

Use this skill with your agent

Create a free account and connect via MCP

Get Started Free
# CoolProp Database Skill

Query thermodynamic and transport properties for over 100 pure and pseudo-pure fluids using the CoolProp open-source thermophysical property library.

## Overview

CoolProp is a comprehensive thermophysical property database that provides:

- **Pure Fluids**: Water, air, ammonia, carbon dioxide, and 100+ others
- **Refrigerants**: R134a, R410A, R32, R404A, R407C, R507A, and many more
- **Industrial Fluids**: Methane, ethane, propane, butane, nitrogen, oxygen, argon
- **Transport Properties**: Viscosity, thermal conductivity, surface tension
- **Thermodynamic Properties**: Enthalpy, entropy, density, specific heat
- **Phase Information**: Saturation properties, two-phase behavior, critical points

CoolProp uses high-accuracy equations of state (Helmholtz energy formulations) and is validated against NIST REFPROP data.

## Installation

### Python
```bash
pip install CoolProp
```

### Verify Installation
```python
import CoolProp
print(CoolProp.__version__)
print(CoolProp.get_global_param_string("version"))
```

## Core API Functions

### PropsSI - Primary Property Query Function
```python
from CoolProp.CoolProp import PropsSI

# Syntax: PropsSI(output, input1_name, input1_value, input2_name, input2_value, fluid)
value = PropsSI('D', 'T', 298.15, 'P', 101325, 'Water')
```

### Props1SI - Single Input Properties
```python
from CoolProp.CoolProp import Props1SI

# For properties requiring only fluid name
T_crit = Props1SI('Tcrit', 'Water')  # Critical temperature
P_crit = Props1SI('Pcrit', 'Water')  # Critical pressure
```

## Property Codes (Input/Output Parameters)

### Thermodynamic Properties
| Code | Property | SI Unit | Description |
|------|----------|---------|-------------|
| `T` | Temperature | K | Absolute temperature |
| `P` | Pressure | Pa | Absolute pressure |
| `D` | Density | kg/m³ | Mass density |
| `H` | Enthalpy | J/kg | Specific enthalpy |
| `S` | Entropy | J/kg/K | Specific entropy |
| `U` | Internal Energy | J/kg | Specific internal energy |
| `Q` | Quality | - | Vapor mass fraction (0-1) |
| `Dmolar` | Molar Density | mol/m³ | Molar density |
| `Hmolar` | Molar Enthalpy | J/mol | Molar enthalpy |
| `Smolar` | Molar Entropy | J/mol/K | Molar entropy |

### Transport Properties
| Code | Property | SI Unit | Description |
|------|----------|---------|-------------|
| `V` | Viscosity | Pa·s | Dynamic viscosity |
| `L` | Thermal Conductivity | W/m/K | Thermal conductivity |
| `C` | Specific Heat (const P) | J/kg/K | Cp at constant pressure |
| `O` | Specific Heat (const V) | J/kg/K | Cv at constant volume |
| `PRANDTL` | Prandtl Number | - | Pr = μ·Cp/k |
| `I` | Surface Tension | N/m | Liquid-vapor interface |

### Phase Properties
| Code | Property | SI Unit | Description |
|------|----------|---------|-------------|
| `Phase` | Phase Index | - | 0=Liquid, 3=Supercritical, 5=Gas, 6=Two-phase |
| `Q` | Quality | - | 0=Saturated liquid, 1=Saturated vapor |

### Critical/Triple Point Properties (Use with Props1SI)
| Code | Property | SI Unit | Description |
|------|----------|---------|-------------|
| `Tcrit` | Critical Temperature | K | Critical point temperature |
| `Pcrit` | Critical Pressure | Pa | Critical point pressure |
| `Ttriple` | Triple Point Temp | K | Triple point temperature |
| `Ptriple` | Triple Point Press | Pa | Triple point pressure |
| `M` | Molar Mass | kg/mol | Molecular weight |
| `ACENTRIC` | Acentric Factor | - | Pitzer acentric factor |

## Common Fluids

### Water and Air
- `Water` - Pure water (H₂O)
- `Air` - Dry air (pseudo-pure mixture)

### Common Refrigerants
- `R134a` - HFC, common in automotive AC
- `R410A` - HFC blend, residential AC/heat pumps
- `R32` - HFC, lower GWP alternative
- `R404A` - HFC blend, commercial refrigeration
- `R407C` - HFC blend, AC systems
- `R507A` - HFC blend, low-temperature refrigeration
- `R22` - HCFC (being phased out)
- `R717` - Ammonia (NH₃)
- `R744` - Carbon dioxide (CO₂)

### Hydrocarbons
- `Methane`, `Ethane`, `Propane`, `n-Butane`, `IsoButane`
- `n-Pentane`, `Isopentane`, `n-Hexane`, `n-Heptane`, `n-Octane`
- `n-Nonane`, `n-Decane`

### Cryogenic Gases
- `Nitrogen`, `Oxygen`, `Argon`, `Helium`, `Neon`, `Hydrogen`

### Industrial Gases
- `CO2` - Carbon dioxide
- `CO` - Carbon monoxide
- `H2S` - Hydrogen sulfide
- `SO2` - Sulfur dioxide
- `Ammonia` - NH₃

## Query Examples

### Example 1: Water Properties at Standard Conditions
```python
from CoolProp.CoolProp import PropsSI

# Water at 25°C (298.15 K) and 1 atm (101325 Pa)
T = 298.15  # K
P = 101325  # Pa

density = PropsSI('D', 'T', T, 'P', P, 'Water')  # kg/m³
enthalpy = PropsSI('H', 'T', T, 'P', P, 'Water')  # J/kg
entropy = PropsSI('S', 'T', T, 'P', P, 'Water')  # J/kg/K
viscosity = PropsSI('V', 'T', T, 'P', P, 'Water')  # Pa·s
cp = PropsSI('C', 'T', T, 'P', P, 'Water')  # J/kg/K

print(f"Water at {T-273.15}°C and {P/1000:.1f} kPa:")
print(f"  Density: {density:.2f} kg/m³")
print(f"  Enthalpy: {enthalpy/1000:.2f} kJ/kg")
print(f"  Entropy: {entropy/1000:.4f} kJ/kg·K")
print(f"  Viscosity: {viscosity*1000:.4f} mPa·s")
print(f"  Cp: {cp/1000:.4f} kJ/kg·K")
```

### Example 2: Refrigerant Saturation Properties
```python
from CoolProp.CoolProp import PropsSI

# R134a saturation properties at 25°C
T_sat = 298.15  # K
fluid = 'R134a'

# Get saturation pressure at this temperature
P_sat = PropsSI('P', 'T', T_sat, 'Q', 0, fluid)  # Pa

# Saturated liquid properties (Q=0)
rho_liquid = PropsSI('D', 'T', T_sat, 'Q', 0, fluid)
h_liquid = PropsSI('H', 'T', T_sat, 'Q', 0, fluid)
s_liquid = PropsSI('S', 'T', T_sat, 'Q', 0, fluid)

# Saturated vapor properties (Q=1)
rho_vapor = PropsSI('D', 'T', T_sat, 'Q', 1, fluid)
h_vapor = PropsSI('H', 'T', T_sat, 'Q', 1, fluid)
s_vapor = PropsSI('S', 'T', T_sat, 'Q', 1, fluid)

# Latent heat
h_fg = h_vapor - h_liquid

print(f"{fluid} at {T_sat-273.15}°C:")
print(f"  Saturation pressure: {P_sat/1000:.2f} kPa")
print(f"  Liquid density: {rho_liquid:.2f} kg/m³")
print(f"  Vapor density: {rho_vapor:.2f} kg/m³")
print(f"  Latent heat: {h_fg/1000:.2f} kJ/kg")
```

### Example 3: Pressure-Enthalpy (P-H) State Point
```python
from CoolProp.CoolProp import PropsSI

# Find temperature at known pressure and enthalpy
P = 500000  # 5 bar = 500 kPa
h = 250000  # 250 kJ/kg

T = PropsSI('T', 'P', P, 'H', h, 'R134a')
Q = PropsSI('Q', 'P', P, 'H', h, 'R134a')

print(f"R134a at {P/1000:.0f} kPa and {h/1000:.0f} kJ/kg:")
print(f"  Temperature: {T-273.15:.2f}°C")
print(f"  Quality: {Q:.4f} (0=liquid, 1=vapor)")
```

### Example 4: Critical and Triple Point Data
```python
from CoolProp.CoolProp import Props1SI

fluids = ['Water', 'CO2', 'Nitrogen', 'R134a']

for fluid in fluids:
    T_crit = Props1SI('Tcrit', fluid)
    P_crit = Props1SI('Pcrit', fluid)
    T_triple = Props1SI('Ttriple', fluid)
    M = Props1SI('M', fluid)

    print(f"\n{fluid}:")
    print(f"  Critical point: {T_crit-273.15:.2f}°C, {P_crit/1e6:.2f} MPa")
    print(f"  Triple point: {T_triple-273.15:.2f}°C")
    print(f"  Molar mass: {M*1000:.2f} g/mol")
```

### Example 5: Viscosity Temperature Dependence
```python
from CoolProp.CoolProp import PropsSI
import numpy as np

# Calculate water viscosity from 0°C to 100°C at atmospheric pressure
P = 101325  # Pa
temperatures = np.linspace(273.15, 373.15, 11)  # 0 to 100°C

print("Water viscosity vs temperature:")
print("T(°C)    μ(mPa·s)")
for T in temperatures:
    mu = PropsSI('V', 'T', T, 'P', P, 'Water') * 1000  # Convert to mPa·s
    print(f"{T-273.15:5.0f}    {mu:.4f}")
```

### Example 6: Two-Phase Properties
```python
from CoolProp.CoolProp import PropsSI

# R134a at 10 bar with 50% quality
P = 1000000  # 10 bar = 1 MPa
Q = 0.5  # 50% vapor

T = PropsSI('T', 'P', P, 'Q', Q, 'R134a')
h = PropsSI('H', 'P', P, 'Q', Q, 'R134a')
s = PropsSI('S', 'P', P, 'Q', Q, 'R134a')
rho = PropsSI('D', 'P', P, 'Q', Q, 'R134a')

print(f"R134a two-phase at {P/1e6:.1f} MPa, quality = {Q}:")
print(f"  Temperature: {T-273.15:.2f}°C")
print(f"  Enthalpy: {h/1000:.2f} kJ/kg")
print(f"  Entropy: {s/1000:.4f} kJ/kg·K")
print(f"  Density: {rho:.2f} kg/m³")
```

## Temperature and Pressure Effects

### Temperature Ranges
- Each fluid has valid temperature ranges between triple point and maximum temperature
- Typical range: Triple point temperature < T < 2000 K (varies by fluid)
- Check limits using `Props1SI('Tmin', fluid)` and `Props1SI('Tmax', fluid)`

### Pressure Ranges
- Each fluid has valid pressure ranges
- Typical range: Triple point pressure < P < 1000 MPa (varies by fluid)
- Check limits using `Props1SI('pmin', fluid)` and `Props1SI('pmax', fluid)`

### Phase Regions
1. **Subcooled Liquid**: T < T_sat at given P, or P > P_sat at given T
2. **Two-Phase**: T = T_sat and 0 < Q < 1
3. **Superheated Vapor**: T > T_sat at given P, or P < P_sat at given T
4. **Supercritical**: T > T_crit and P > P_crit

### Input Pair Restrictions
Not all input pairs are valid in all regions:
- **(T, P)**: Valid in single-phase regions only (not in two-phase)
- **(P, Q)**: Valid for two-phase and saturation (0 ≤ Q ≤ 1)
- **(T, Q)**: Valid for two-phase and saturation (0 ≤ Q ≤ 1)
- **(P, H)**: Valid in all regions
- **(P, S)**: Valid in all regions
- **(H, S)**: Valid in all regions (useful for isentropic processes)

## Error Handling

### Common Errors and Solutions

**Error: "CoolProp error: [PropsSI] Two saturation inputs are not valid"**
- Problem: Trying to use (T, P) in two-phase region
- Solution: Use (T, Q) or (P, Q) for two-phase states

**Error: "CoolProp error: Value is outside range"**
- Problem: Temperature or pressure outside valid range
- Solution: Check fluid limits with Props1SI('Tmin', fluid), etc.

**Error: "CoolProp error: Fluid not found"**
- Problem: Incorrect fluid name or spelling
- Solution: Use exact fluid names (case-sensitive), check documentation

**Error: "Unable to match the inputs"**
- Problem: Invalid input combination or iteration failed
- Solution: Check that input values are physically reasonable

### Safe Query Pattern
```python
from CoolProp.CoolProp import PropsSI

def safe_props(output, input1, value1, input2, value2, fluid):
    """Query CoolProp with error handling"""
    try:
        result = PropsSI(output, input1, value1, input2, value2, fluid)
        return result
    except ValueError as e:
        print(f"Error querying {fluid}: {e}")
        return None
    except Exception as e:
        print(f"Unexpected error: {e}")
        return None

# Usage
density = safe_props('D', 'T', 300, 'P', 101325, 'Water')
if density is not None:
    print(f"Density: {density:.2f} kg/m³")
```

## Engineering Applications

### HVAC System Design
- Refrigerant cycle analysis (evaporator, condenser, compressor, expansion)
- Heat exchanger calculations
- Coefficient of performance (COP) calculations

### Power Cycles
- Rankine cycle (steam turbines)
- Brayton cycle (gas turbines)
- Organic Rankine Cycle (ORC)

### Process Engineering
- Heat transfer calculations
- Pipe flow and pressure drop
- Phase equilibrium
- Storage tank design

### Cryogenic Systems
- Liquefaction processes
- Storage and handling
- Heat leak calculations

## References

### Official Documentation
- **CoolProp Website**: http://www.coolprop.org/
- **Python Documentation**: http://www.coolprop.org/coolprop/HighLevelAPI.html
- **Fluid Properties**: http://www.coolprop.org/fluid_properties/PurePseudoPure.html
- **Validation Data**: http://www.coolprop.org/validation/index.html

### Key Papers
- Bell, I. H., Wronski, J., Quoilin, S., & Lemort, V. (2014). "Pure and Pseudo-pure Fluid Thermophysical Property Evaluation and the Open-Source Thermophysical Property Library CoolProp." *Industrial & Engineering Chemistry Research*, 53(6), 2498-2508.

### Equation of State References
- Lemmon, E. W., Huber, M. L., & McLinden, M. O. (2013). NIST Standard Reference Database 23: Reference Fluid Thermodynamic and Transport Properties (REFPROP), Version 9.1. National Institute of Standards and Technology.

### Source Code
- **GitHub**: https://github.com/CoolProp/CoolProp
- **Issue Tracker**: https://github.com/CoolProp/CoolProp/issues

## Best Practices

1. **Always use SI units** for inputs and outputs (K, Pa, J/kg, etc.)
2. **Check phase regions** before choosing input pairs
3. **Handle errors** gracefully with try-except blocks
4. **Validate ranges** before querying (especially temperature and pressure)
5. **Use quality (Q)** for two-phase calculations
6. **Cache critical properties** if querying multiple times
7. **Use Props1SI** for fluid-only properties (critical points, molar mass)
8. **Prefer (P, H) or (P, S)** for robust queries across all phase regions

## Quick Reference Table

| Task | Function | Example |
|------|----------|---------|
| Two-input property | `PropsSI(output, in1, val1, in2, val2, fluid)` | `PropsSI('D', 'T', 300, 'P', 101325, 'Water')` |
| Single-input property | `Props1SI(param, fluid)` | `Props1SI('Tcrit', 'Water')` |
| Saturation liquid | Use Q=0 | `PropsSI('H', 'T', 300, 'Q', 0, 'R134a')` |
| Saturation vapor | Use Q=1 | `PropsSI('H', 'T', 300, 'Q', 1, 'R134a')` |
| Two-phase | Use 0<Q<1 | `PropsSI('D', 'P', 500000, 'Q', 0.5, 'R134a')` |
| List all fluids | `CoolProp.__fluids__` | `import CoolProp; print(CoolProp.__fluids__)` |

---

*This skill provides access to one of the most comprehensive open-source thermophysical property databases available, suitable for research, engineering design, and educational applications.*
#broad-capability#engineering#fluid-dynamics#thermodynamics#structural-analysis#scipy#sympy#cfd#computational#fluid#dynamicspythoncoolprop

Related Skills

More skills in Science & Simulation

Adaptyv

Cloud laboratory platform for automated protein testing and validation. Use when designing proteins and needing experimental validation including binding assays, expression testing, thermostability measurements, enzyme activity assays, or protein sequence optimization. Also use for submitting experiments via API, tracking experiment status, downloading results, optimizing protein sequences for better expression using computational tools (NetSolP, SoluProt, SolubleMPNN, ESM), or managing protein design workflows with wet-lab validation.

#broad-capability#creativeApache-2.0

AI Analyzer

AI驱动的综合健康分析系统,整合多维度健康数据、识别异常模式、预测健康风险、提供个性化建议。支持智能问答和AI健康报告生成。

#work-life#productivityMIT

Ansys Simulation

Automate ANSYS Fluent CFD simulations via Python scripting and journal files

#broad-capability#engineeringMIT

Astropy

Comprehensive Python library for astronomy and astrophysics. This skill should be used when working with astronomical data including celestial coordinates, physical units, FITS files, cosmological calculations, time systems, tables, world coordinate systems (WCS), and astronomical data analysis. Use when tasks involve coordinate transformations, unit conversions, FITS file manipulation, cosmological distance calculations, time scale conversions, or astronomical data processing.

#broad-capability#creativeApache-2.0

Bioservices

Unified Python interface to 40+ bioinformatics services. Use when querying multiple databases (UniProt, KEGG, ChEMBL, Reactome) in a single workflow with consistent API. Best for cross-database analysis, ID mapping across services. For quick single-database lookups use gget; for sequence/file manipulation use biopython.

#k-dense-ai-claude-scientific-skills#bioinformaticsMIT

Bom

BOM (Bill of Materials) management for electronics projects — the primary orchestrator skill that coordinates DigiKey, Mouser, LCSC, element14, JLCPCB, PCBWay, and KiCad skills into a unified workflow. Create, update, and maintain BOMs with part numbers, costs, quantities stored as KiCad symbol properties. ALWAYS trigger this skill for any task involving component sourcing, pricing, ordering, distributor searches, BOM export, or fabrication preparation — even if the user names a specific distributor or fab house (e.g. "search DigiKey for...", "generate JLCPCB BOM", "order from Mouser"). This skill decides which distributor/fab skills to invoke and in what order. Also trigger on phrases like "what parts do I need", "order components", "how much will this cost", "export for JLCPCB", "find parts for this board", "cost estimate", "compare pricing", or "check stock".

#kicad#electronicsMIT