熱力学では、系の平衡状態を判定するために熱力学ポテンシャルと呼ばれる状態量を導入します。特に重要なのがヘルムホルツ自由エネルギー $F$ とギブス自由エネルギー $G$ です。
本記事の内容
- ヘルムホルツ自由エネルギー $F = U – TS$
- ギブス自由エネルギー $G = H – TS$
- 自然な変数と平衡条件
- マクスウェルの関係式への接続
- Pythonでの可視化
前提知識
ヘルムホルツ自由エネルギー
定義
$$ \boxed{F = U – TS} $$
全微分
$dU = TdS – pdV$ と $d(TS) = TdS + SdT$ を用いると:
$$ dF = dU – TdS – SdT = -SdT – pdV $$
$$ \boxed{dF = -SdT – pdV} $$
自然な変数: $T$ と $V$。等温等容条件($dT = 0$, $dV = 0$)で $dF = 0$ となり、$F$ は極値をとります。
物理的意味
等温過程において、系が外部に対してできる最大仕事は:
$$ W_{\max} = -\Delta F $$
ギブス自由エネルギー
定義
$$ \boxed{G = H – TS = U + pV – TS} $$
全微分
$dH = TdS + Vdp$ を用いて:
$$ dG = dH – TdS – SdT = -SdT + Vdp $$
$$ \boxed{dG = -SdT + Vdp} $$
自然な変数: $T$ と $p$。等温等圧条件で $dG = 0$ が平衡条件。
物理的意味
等温等圧で自発的に進む過程では $\Delta G < 0$。化学反応や相転移の方向を決定します。
4つの熱力学ポテンシャル
| ポテンシャル | 定義 | 全微分 | 自然変数 |
|---|---|---|---|
| $U$ | — | $TdS – pdV$ | $S, V$ |
| $H = U + pV$ | エンタルピー | $TdS + Vdp$ | $S, p$ |
| $F = U – TS$ | ヘルムホルツ | $-SdT – pdV$ | $T, V$ |
| $G = H – TS$ | ギブス | $-SdT + Vdp$ | $T, p$ |
マクスウェルの関係式
各ポテンシャルの2階偏微分の対称性から:
$$ \left(\frac{\partial T}{\partial V}\right)_S = -\left(\frac{\partial p}{\partial S}\right)_V \quad (Uより) $$
$$ \left(\frac{\partial S}{\partial V}\right)_T = \left(\frac{\partial p}{\partial T}\right)_V \quad (Fより) $$
$$ \left(\frac{\partial S}{\partial p}\right)_T = -\left(\frac{\partial V}{\partial T}\right)_p \quad (Gより) $$
Pythonでの可視化
import numpy as np
import matplotlib.pyplot as plt
fig, axes = plt.subplots(1, 2, figsize=(14, 6))
# (1) 理想気体のF(T,V)
n = 1; R = 8.314; Cv = 3/2 * R
T_range = np.linspace(200, 800, 100)
V_range = np.linspace(0.01, 0.1, 100)
T_grid, V_grid = np.meshgrid(T_range, V_range)
# F = U - TS (理想気体の基準点からの差)
T_ref, V_ref = 300, 0.025
U_rel = n * Cv * (T_grid - T_ref)
S_rel = n * Cv * np.log(T_grid/T_ref) + n * R * np.log(V_grid/V_ref)
F_rel = U_rel - T_grid * S_rel
cs = axes[0].contourf(T_range, V_range*1e3, F_rel/1e3, levels=20, cmap='RdBu_r')
plt.colorbar(cs, ax=axes[0], label='$\\Delta F$ [kJ]')
axes[0].set_xlabel('Temperature $T$ [K]', fontsize=12)
axes[0].set_ylabel('Volume $V$ [L]', fontsize=12)
axes[0].set_title('Helmholtz free energy $F(T,V)$', fontsize=13)
# (2) ギブス自由エネルギーと相転移
T = np.linspace(250, 450, 200)
T_m = 373 # 水の沸点
G_liquid = -0.1 * (T - T_m) # 模擬的
G_vapor = 0.05 * (T - T_m) - 5
axes[1].plot(T, G_liquid, 'b-', lw=2.5, label='Liquid')
axes[1].plot(T, G_vapor, 'r-', lw=2.5, label='Vapor')
axes[1].axvline(T_m, color='gray', ls='--', alpha=0.5, label=f'$T_m$={T_m}K')
axes[1].set_xlabel('Temperature $T$ [K]', fontsize=12)
axes[1].set_ylabel('Gibbs free energy $G$ [a.u.]', fontsize=12)
axes[1].set_title('Phase transition: $G$ crossing', fontsize=13)
axes[1].legend(); axes[1].grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
まとめ
- ヘルムホルツ $F = U – TS$: 自然変数 $(T, V)$、等温等容で平衡
- ギブス $G = H – TS$: 自然変数 $(T, p)$、等温等圧で平衡
- 自発過程:$\Delta F < 0$(等温等容)または $\Delta G < 0$(等温等圧)
- マクスウェルの関係式は2階偏微分の対称性から導かれる
次のステップとして、以下の記事も参考にしてください。