Clausius-Clapeyron

Obtaining heats of vaporization

Eric Van Dornshuld https://dornshuld.chemistry.msstate.edu (Mississippi State University)https://chemistry.msstate.edu
2022-02-15

Vapor Pressure

The vapor pressure of a substance is the pressure exerted by the vapor while in equilibrium. The vapor exists due to the natural tendency for particles to escape the liquid phase and enter the gas phase (called evaporation). When the vapor pressure of a liquid equals the external pressure, the substance is at its boiling point.

Show code
knitr::include_graphics("https://upload.wikimedia.org/wikipedia/commons/6/67/Vapor_pressure.svg") 
Figure from [Wikipedia](https://upload.wikimedia.org/wikipedia/commons/6/67/Vapor_pressure.svg)

Figure 1: Figure from Wikipedia

The vapor pressure of a substance increases with increasing temperature. Below is the vapor pressure of water vs. temperature from 0 °C to 100 °C.

Show code
# Graph the data with ggplot; make interactive with ggplotly
(df1 %>%
  ggplot(aes(x=T2, y=P2)) +
    geom_point(alpha = 0.9) +
    geom_line() + 
    xlim(273, 374) +
    ylim(0,1.01) + 
    xlab("Temperature (K)") + 
    ylab("Pressure (atm)")
) %>%
ggplotly(tooltip = c("T2", "P2")) %>%
  config(displaylogo = FALSE, 
    toImageButtonOptions = list(
      format = "png", filename = "plot", width = 800, height = 800
    ),
    modeBarButtonsToRemove = list("lasso2d", "select2d", "toggleSpikelines", 
                                  "zoomIn2d", "zoomOut2d")
  )

Figure 2: Vapor pressure of water vs. temperature

It is important to note that for every temperature shown, water is evaporating (lg).


Heat of Vaporization

The heat of vaporization (ΔHvap generally given in kJ mol–1) for a substance at some temperature is a measure of the amount of energy required to turn one mole of the liquid into a gas at that temperature. The hotter the liquid is, the lower the energy requirement to vaporize (i.e. as T increases, ΔHvap decreases).

Below is the heat of vaporization of water at various temperatures.

Show code
# Graph the data with ggplot; make interactive with ggplotly
(df1 %>%
  ggplot(aes(x=T2, y=dH2)) +
    geom_point(alpha = 0.9) +
    geom_line() + 
    xlim(273, 374) +
    ylim(40,45) + 
    xlab("Temperature (K)") + 
    ylab("Heat of Vaporization (kJ/mol)")
) %>%
ggplotly(tooltip = c("T2", "dH2")) %>%
  config(displaylogo = FALSE, 
    toImageButtonOptions = list(
      format = "png", filename = "plot", width = 800, height = 800
    ),
    modeBarButtonsToRemove = list("lasso2d", "select2d", "toggleSpikelines", 
                                  "zoomIn2d", "zoomOut2d")
  )

Figure 3: Heat of vaporization of water vs. temperature

Clausius-Clapyeron Equations

The Clausis-Clapeyron equation shows the relationship the vapor pressure (P) and temperature (T) of a liquid.

\[P = Ae^{-\Delta H_{\mathrm{vap}}/RT}\]

The equation is an exponential that results in the characteristic curve we see in the pressure-temperature plot (Figure 2). Some other vapor-pressure curves are shown below.

Show code
knitr::include_graphics("../../../../static/course-files/chem/ch10/vp-curves.jpg")
Vapor pressure curves for some substances (Figure from [OpenStax](https://openstax.org/apps/archive/20210823.155019/resources/ba533265bc2d85ee52fb8bf31637894db45847b0))

Figure 4: Vapor pressure curves for some substances (Figure from OpenStax)

The data can be transformed into a linear form by taking the natural log of P and the inverse of the temperature (1/T). This linear form of the Clausius-Clapeyron equation is given as

\[\ln P = -\dfrac{\Delta H_{\mathrm{vap}}}{R}\left ( \dfrac{1}{T} \right ) + \ln A\]

Below is the transformed water data from Figure 2 given above.

Show code
# Graph the data with ggplot; make interactive with ggplotly
(df1 %>%
  ggplot(aes(x=invT2, y=lnP2, group=T1, factor=P2)) +
    geom_point(alpha = 0.9) +
    geom_line() + 
    #xlim(0.1,0.0039) +
    xlim(0.00267,0.003662) +
    ylim(-5.10993,0.000937) +
    ylab("ln(P) (atm)") + 
    xlab("1/T (K<sup>–1</sup>)")
) %>%
ggplotly(tooltip = c("lnP2", "invT2", "P2", "T1")) %>%
  config(displaylogo = FALSE, 
    toImageButtonOptions = list(
      format = "png", filename = "plot", width = 800, height = 800
    ),
    modeBarButtonsToRemove = list("lasso2d", "select2d", "toggleSpikelines", 
                                  "zoomIn2d", "zoomOut2d")
  )

Figure 5: Linear form of pressure vs. temperature for water

Note the linear nature of the data points. The line drawn through the points is described by the following equation

\[y = -5203.9x + 13.98\]

and fits the points quite well with R2 = 0.9999.

One can then determine an estimated heat of vaporization for water. Cross-reference this with the linear form of the Clapeyron-Equation to realize that ΔHvap is apart of the slope term m.

\[m = -5203.9 = -\frac{\Delta H_{\mathrm{vap}}}{R}\]

Since R is the gas constant (R = 8.315 J mol–1 K–1), we can easily solve for the heat of vaporization.

\[\begin{align*} -\frac{\Delta H_{\mathrm{vap}}}{R} &= -5203.9 \\[1.5ex] \Delta H_{\mathrm{vap}} &= 5203.9 \times R \\[1.5ex] &= 5203.9 \left (\frac{8.315~\mathrm{J}}{\mathrm{mol~K}} \right ) \left ( \frac{\mathrm{kJ}}{10^3~\mathrm{J}} \right )\\[1.5ex] &= 43.27~\mathrm{kJ~mol^{-1}} \end{align*}\]

Notice how the calculated result is in good agreement with the experimental values for water across the same temperature range.

Show code
subsetdf1 <- df1 %>%
  select(c(T2, T1, dH2)) %>%
  filter(T1 < 101) %>% 
  mutate(T2=round(T2,digits=3)) %>%
  mutate(T1=round(T1,digits=3)) %>%
  mutate(dH2=round(dH2,digits=2)) %>%
  rename("T (K)" = T2) %>%
  rename("T (°C)" = T1) %>%
  rename("ΔH (kJ/mol)" = dH2)

datatable(subsetdf1, class = 'cell-border stripe', rownames = FALSE,
          options = list(pageLength = 10, autoWidth = FALSE, dom='tp')
)

Note that the calculated heat of vaporization will change depending on the temperature ranges chosen since the slope will change slightly. For example, if the temperature range was 25 °C to 50 °C, ΔHvap is 43.59 kJ mol–1.

Because the data fits to a line, the two-point form of the Clasius-Clapeyron equation allows for the approximation of ΔHvap based on two data points.

\[\ln \left ( \dfrac{P_2}{P_1} \right ) = \dfrac{\Delta H_{\mathrm{vap}}}{R} \left ( \dfrac{1}{T_1} - \dfrac{1}{T_2} \right )\]

For example, let us choose two data points from Figure 5 above. Here I’ve chosen the points at T = 25 °C and 50 °C.

Show code
df2 <- as_tibble(read_xlsx("../../../../static/datasets/vapor-pressure-water.xlsx", sheet="t1"))

df2 %>%
  gt() %>%
  fmt_markdown(columns = everything(), rows = everything()) %>%
  opt_row_striping(row_striping = TRUE) %>%
  tab_options(
    table.width = pct(60),
    table.font.size = px(16),
    column_labels.font.weight = "bold"
    ) %>%
  cols_align(
    align = "right",
    columns = everything()
  ) %>%
  cols_align(
    align = "center",
    columns = "Point"
  )
Point T (C) ln(P) 1/T (1/K) P (atm) T (K)

1

25

-3.4646

0.003354

0.03128

298.15

2

50

-2.1045

0.003094

0.1219

323.15

We can now rearrange the equation and solve for the heat of vaporization.

\[\begin{align*} \ln \left ( \dfrac{P_2}{P_1} \right ) &= \dfrac{\Delta H_{\mathrm{vap}}}{R} \left ( \dfrac{1}{T_1} - \dfrac{1}{T_2} \right )\\[4ex] \dfrac{\Delta H_{\mathrm{vap}}}{R} &= \dfrac{\ln \left ( \dfrac{P_2}{P_1} \right )}{\dfrac{1}{T_1} - \dfrac{1}{T_2}} \\[2ex] \Delta H_{\mathrm{vap}} &= R\left (\dfrac{\ln \left ( \dfrac{P_2}{P_1} \right )}{\dfrac{1}{T_1} - \dfrac{1}{T_2}} \right ) \\[2ex] &= \frac{8.315~\mathrm{J}}{\mathrm{mol~K}} \left ( \dfrac{\ln \left ( \frac{0.1219~\mathrm{atm}}{0.03128~\mathrm{atm}} \right ) }{\frac{1}{298.15~\mathrm{K}} - \frac{1}{323.15~\mathrm{K}}} \right ) \left ( \frac{\mathrm{kJ}}{10^3~\mathrm{J}} \right )\\[2ex] &= 43.59~\mathrm{kJ~mol^{-1}} \end{align*}\]


Critical Point

Let us revisit the vapor pressure vs. temperature plot for water but this time across the entire temperature range (0 °C to 374 °C). Note the pressure given is now in kPa.

Show code
# Graph the data with ggplot; make interactive with ggplotly
(df1 %>%
  ggplot(aes(x=T2, y=P1, group=P2)) +
    geom_point(alpha = 0.9) +
    geom_line() + 
    xlab("Temperature (K)") + 
    ylab("Pressure (kPa)")
) %>%
ggplotly(tooltip = c("P1", "T2", "P2")) %>%
  config(displaylogo = FALSE, 
    toImageButtonOptions = list(
      format = "png", filename = "plot", width = 800, height = 800
    ),
    modeBarButtonsToRemove = list("lasso2d", "select2d", "toggleSpikelines", 
                                  "zoomIn2d", "zoomOut2d")
  )

Figure 6: Vapor pressure of water vs. temperature

Note how immense the pressures get at high temperature (as large as 22,064 kPa or 218 atm… which is 218 times more pressure than what we experience at sea level). The characteristic curve is the liquid/gas boundary found in the phase diagram for water (shown below; the phase boundary is the black line connecting points B and C).

Show code
knitr::include_graphics("../../../../static/course-files/chem/ch10/p-diagram-water.jpg")
Phase diagram for water (Figure from [OpenStax](https://openstax.org/resources/7b1a1b1600c9514b29554da94cfdc3ad1ded603f) )

Figure 7: Phase diagram for water (Figure from OpenStax )

Close inspection of the critical point (point C) reveals that the black phase boundary line does not extend beyond it. The critical point of a substance is defined by the critical pressure (Pc) and critical temperature (Tc). Beyond this pressure and temperature, the liquid and gas phases of a substance become indistinguishable (this new state shares both properties of a liquid and a gas) and is referred to as a supercritical fluid.

Recall that ΔHvap decreases with increasing temperature. Examining the heats of vaporization for water across the entire temperature range (below) illustrates how ΔHvap reaches zero at 373.95 °C.

Show code
# Graph the data with ggplot; make interactive with ggplotly
(df1 %>%
  ggplot(aes(x=T2, y=dH2, group=P2, factor=T1)) +
    geom_point(alpha = 0.9) +
    geom_line() + 
    xlab("Temperature (K)") + 
    ylab("Heat of Vaporization (kJ/mol)")
) %>%
ggplotly(tooltip = c("T1", "T2", "dH2", "P2")) %>%
  config(displaylogo = FALSE, 
    toImageButtonOptions = list(
      format = "png", filename = "plot", width = 800, height = 800
    ),
    modeBarButtonsToRemove = list("lasso2d", "select2d", "toggleSpikelines", 
                                  "zoomIn2d", "zoomOut2d")
  )

This is the critical temperature of water where, beyond it, there is no “energy requirement” for water to turn into a gas. It is neither a liquid or a gas and therefore the heat of vaporization is zero.


Dataset

The full dataset for the vapor pressure of water is given below.

Show code
subsetdf1 <- df1 %>%
  select(c(T1, T2, P1, P2, dH1, dH2)) %>%
  mutate(T1=round(T1,digits=3)) %>%
  mutate(T2=round(T2,digits=3)) %>%
  mutate(P1=round(P1,digits=4)) %>%
  mutate(P2=round(P2,digits=4)) %>%
  mutate(dH1=round(dH1,digits=2)) %>%
  mutate(dH2=round(dH2,digits=2)) %>%
  rename("T (°C)" = T1) %>%
  rename("T (K)" = T2) %>%
  rename("P (kPa)" = P1) %>%
  rename("P (atm)" = P2) %>%
  rename("ΔH (kJ/kg)" = dH1) %>%
  rename("ΔH (kJ/mol)" = dH2)

datatable(subsetdf1, class = 'cell-border stripe', rownames = FALSE,
          options = list(pageLength = 10, autoWidth = FALSE)
)