Skip to main content
Docs

Search guides and API endpoints, for example “Idempotency-Key” or “submit job”.

    Guides

    Look up fluid properties with CoolProp

    Get real-fluid properties for one state in seconds, or whole property tables and curves as a job.

    Updated October 1, 2026

    On this page

    CoolProp computes thermophysical properties of real fluids: water and steam, refrigerants, common gases and liquids, and incompressible mixtures. All values are SI: temperature in K, pressure in Pa, enthalpy in J/kg, entropy in J/kg/K, density in kg/m³, and quality (vapor fraction) from 0 to 1.

    There are two ways to call it:

    You wantUseCharged
    One state, nowthe coolprop utilityCounts toward monthly utility calls
    A grid, a curve, or many statesthe coolprop jobWallet, by runtime

    One state (utility)

    Give the fluid and two state inputs, or a single temperature or pressure for a saturation point:

    from cognichem_client import CogniChem
     
    client = CogniChem.from_env()
    result = client.utils.run("coolprop", {
        "fluid": "Water",
        "inputs": {"T": 373.15, "P": 101325},
        "properties": ["D", "H", "Cpmass", "viscosity"],
    })
    print(result.data)

    Leave out properties to get the standard set: T, P, D, H, S, U, Cpmass, viscosity, conductivity, and Q.

    Tables and curves (job)

    Set mode and its problem_spec:

    modeproblem_specYou get
    tp_gridt_min, t_max, n_t, p_min, p_max, n_pProperties on a temperature × pressure grid
    saturationalong (T or P), min, max, nThe saturation curve
    isobarp, t_min, t_max, n_tProperties against temperature at one pressure
    isothermt, p_min, p_max, n_pProperties against pressure at one temperature
    batch_statesstates: each with a fluid and two of T, P, H, S, D, QA table of separate states
    payload = {
        "mode": "tp_grid",
        "fluid": "R134a",
        "problem_spec": {"t_min": 250, "t_max": 350, "n_t": 21, "p_min": 1e5, "p_max": 2e6, "n_p": 20},
    }
    job = client.jobs.submit(job_name="r134a-grid-1", job_type="coolprop", payload=payload)
    status = client.jobs.wait(job.process_id)
    client.jobs.result(job.process_id, save_path=".")   # properties.csv + summary.json

    The result's table port is properties.csv, which a workflow step can take as input.

    Notes

    • fluid is any name CoolProp accepts (for example Water, CarbonDioxide, R134a, Nitrogen). backend is HEOS (the default, for pure fluids and mixtures) or INCOMP (incompressible liquids and brines).
    • Grid size, curve length, and state count are capped per job; see the CoolProp tool page.
    • For chemical equilibrium, kinetics, or ideal-gas mixtures, use Cantera.