Saturation Pressure#

The water saturation pressure is the one instance where no simplified equation is offered.

\[p_s = p_c exp\{[T_c / (273.15 + T)](a_1 \tau + a_2 \tau ^{1.5} +a_3 \tau ^3 + a_4 \tau ^{3.5} + a_5 \tau ^4 + a_6 \tau ^{7.5})\} \tag{1}\]

where

Var

Description

ps

is the saturation pressure water, bar

pc

is the critical pressure water, 220.64 bar

Tc

is the critical temperature water, 647.096 K

τ

is the reduced temperature, 1-(273.15+T)/Tc

T

is temperature of the water °C

a1

is -7.85951783

a2

is 1.84408259

a3

is -11.7866497

a4

is 22.6807411

a5

is -15.9618719

a6

is 1.80122502

The chart was created by Altair because it was relatively easy to create an interactive plot to display on the web site. Plotly could have been used giving a slightly better cursor, if the cursor is not so important then Seaborn would have made sense. The chart has been created for values between 0 and 30°C but can be extended to 150°C if required.

In general these plots rely upon numpy to create the data for the x and y axes.

Show/Hide Code 01sat_press_water_title_red.py
import altair as alt
import numpy as np
import pandas as pd

T = np.linspace(0, 30, 31)
tau = 1 - (273.15 + T)/647.096

expo = (-7.85951783*tau+1.84408259*np.power(tau,1.5)-11.7866497*np.power(tau,3)+22.6807411*np.power(tau,3.5)-15.9618719*np.power(tau,4)+1.80122502*np.power(tau,7.5))

pc=220.64*np.exp((647.096/(273.15+T))*expo)

source = pd.DataFrame({
  'Temperature °C': T,
  'Ps bar': pc
})

chart = alt.Chart(source).mark_line().encode(
    x='Temperature °C',
    y='Ps bar',
    tooltip=['Temperature °C', alt.Tooltip('Ps bar', format='.3f')]
).properties(
        title={
            "text": "Saturation Pressure of Water",
            "color": "red"
        }
    )

chart.save('Sat_Press_water_title_red.html')