IAPWS95ヘッダファイルパッケージ マニュアル

(The documentation of IAPWS95 header file package)

Last Update: 2023/9/22


International Association for the Properties of Water and Steam (IAPWS) はH2Oの物性値の国際標準を作る機関で、状態方程式も作成している。 2013年1月31日現在、最新の国際標準の状態方程式はIAPWS-95であり、 Wagner and Pruss (2002)で詳説されている。
International Association for the Properties of Water and Steam (IAPWS) is an association which creates an international standard for properties of H2O, including the equation of state. The latest international standard equation of state on 31 Jan. 2013 is IAPWS-95, which is described in detail in Wagner and Pruss (2002).

熱力学では圧力\(P\)と温度\(T\)が独立変数として用いられる場合が多いが、 IAPWS-95では 密度\(\rho\)と温度\(T\)が独立変数 として用いられている。 臨界点での値(下付き添字の\(_c\)で示す)で無次元化した密度 \[\begin{equation} \delta \equiv \frac{\rho}{\rho_c}, \hspace{1em} \rho_c=322 \mbox{ kg m\(^{-3}\)} \label{eq.delta} \end{equation}\] および温度の逆数 \[\begin{equation} \tau \equiv \frac{T_c}{T}, \hspace{1em} T_c=647.096 \mbox{ K} \label{eq.tau} \end{equation}\] を使用し、まず最初に 単位質量あたりのヘルムホルツの自由エネルギー\(f\) およびその無次元化版\(\phi\)が Wagner and Pruss (2002)の(6.4)-(6.6)式 \[\begin{equation} \frac{f(\rho,T)}{RT} =\phi(\delta,\tau) =\phi^o (\delta,\tau) +\phi^r (\delta,\tau) \label{eq.Helmholtz} \end{equation}\] \[\begin{equation} \phi^o(\delta,\tau) =\ln\delta +n_1^o +n_2^o\tau +n_3^o\ln\tau +\sum_{i=4}^8 n_i^o\ln\left[1-\exp\left(-\gamma_i^o \tau\right)\right] \label{eq.ideal} \end{equation}\] \[\begin{eqnarray} \phi^r(\delta,\tau) &=& \sum_{i=1}^7 n_i \delta^{d_i} \tau^{t_i} \nonumber \\ & & +\sum_{i=8}^{51} n_i \delta^{d_i} \tau^{t_i} \exp\left(-\delta^{c_i}\right) \nonumber \\ & & +\sum_{i=52}^{54} n_i \delta^{d_i} \tau^{t_i} \exp\left[-\alpha_i(\delta-\epsilon_i)^2-\beta_i(\tau-\gamma_i)^2\right] \nonumber \\ & & +\sum_{i=55}^{56} n_i \Delta^{b_i} \delta \psi \label{eq.residual} \end{eqnarray}\] で与えられる。ここで \[\begin{equation} \Delta \equiv \theta^2+B_i\left[(\delta-1)^2\right]^{a_i} \label{eq.Delta} \end{equation}\] \[\begin{equation} \theta \equiv (1-\tau) + A_i\left[(\delta-1)^2\right]^{1/(2\beta_i)} \label{eq.theta} \end{equation}\] \[\begin{equation} \psi \equiv \exp\left[-C_i(\delta-1)^2-D_i(\tau-1)^2\right] \label{eq.psi} \end{equation}\] であり、添字\(i\)を含んだパラメータの値は Wagner and Pruss (2002)の表6.1, 6.2で与えられている。
In thermodynamics, the pressure \(P\) and temperature \(T\) are often used as independent variables; however, in IAPWS-95, the density \(\rho\) and temperature \(T\) are used as independent variables. Using a nondimensionalized density (Eq. \ref{eq.delta}) and the inverse of a nondimensionalized temperature (Eq. \ref{eq.tau}), where the subscript \(_c\) denotes the values at the critical point, IAPWS-95 first gives an equation for the Helmholtz free energy \(f\) per unit mass and its nondimensionalized version \(\phi\) as Eqs. (6.4)-(6.6) and Wagner and Pruss (2002); these equations are reproduced in Eqs. (\ref{eq.Helmholtz})-(\ref{eq.residual}) above, where \(\Delta\), \(\theta\), and \(\psi\) are defined in Eqs. (\ref{eq.Delta})-(\ref{eq.psi}) and the values of parameters with a subscript \(i\) are given in Tables 6.1 and 6.2 of Wagner and Pruss (2002).

\(\phi^o(\delta,\tau)\)は 理想気体項、 \(\phi^r(\delta,\tau)\)は 残差項 と呼ばれる。 理想気体項の導出(Wagner and Pruss (2002)の5.2節)では 単位質量の理想気体の状態方程式\(PV=RT\) (\(V\):体積、\(R\):単位質量あたりの気体定数)および、 エンタルピー\(H\)が温度のみの関数になるという関係\(dH=C_p dT\) (\(C_p\):定圧比熱)が用いられている。 (\ref{eq.ideal})式が理想気体にしては複雑な形をしているのは \(C_p\)に経験式が用いられているためである。
The quantities \(\phi^o(\delta,\tau)\) and \(\phi^r(\delta,\tau)\) are called an ideal-gas part and a residual part, respectively. The derivation of the ideal-gas part (Section 5.2 of Wagner and Pruss (2002)) uses the equation of state of an ideal gas of a unit mass \(PV=RT\), where \(V\) is a volume and \(R\) is a gas constant for a unit mass, and a relation that an enthalpy \(H\) is a function of temperature alone (\(dH=C_p dT\), where \(C_p\) is a specific heat at a constant pressure). Eq. (\ref{eq.ideal}) is relatively complicated despite its name “ideal-gas part” because an empirical equation for \(C_p\) is used.

ヘルムホルツの自由エネルギーの計算式 (\ref{eq.Helmholtz})-(\ref{eq.residual})が与えられれば、 他の熱力学変数はヘルムホルツの自由エネルギーとその導関数を用いて計算できる。 例えばヘルムホルツの自由エネルギーを用いた熱力学第一法則の変形版 \[\begin{equation} df=-SdT-PdV \label{eq.df.1st_law} \end{equation}\] (\(S\):エントロピー) および単位質量の場合の体積と密度の関係 \[\begin{equation} V=\frac{1}{\rho}, \hspace{1em} dV=-\frac{1}{\rho^2}d\rho \label{eq.density_volume} \end{equation}\] より \[\begin{equation} df=-SdT+\frac{P}{\rho^2}d\rho \label{eq.df.1st_law.use_rho} \end{equation}\] が得られ、これを\(f(\rho,T)\)の全微分 \[\begin{equation} df= \left(\PartialDiff{f}{T}\right)_{\rho} dT +\left(\PartialDiff{f}{\rho}\right)_T d\rho \label{eq.df} \end{equation}\] と比較することで \[\begin{equation} P=\rho^2 \left(\PartialDiff{f}{\rho}\right)_T \label{eq.pressure} \end{equation}\] という関係が得られる。 (\ref{eq.pressure})式に(\ref{eq.Helmholtz})-(\ref{eq.residual})式を代入すれば 圧力の具体的な計算式が求まる。 同様にして他の熱力学変数の計算式も得られる。 様々な熱力学変数の具体的な計算式は Wagner and Pruss (2002)の表6.3-6.5で与えられている。 但しymaeda_opentoolsの現在のバージョンでは 過去に著者が研究で必要とした少数の熱力学変数の計算のみが実装されており、 Wagner and Pruss (2002)の表6.3-6.5に登場する 全ての熱力学変数の計算式をカバーしているわけではない。
Once the equations for the Helmholtz free energy (Eqs. \ref{eq.Helmholtz}-\ref{eq.residual}) are given, the other thermodynamic variables can be computed from the Helmholtz free energy and its derivatives. For example, the 1st law of thermodynamics can be arranged for the Helmholtz free energy as Eq. (\ref{eq.df.1st_law}), where \(S\) is an entropy. Combining this equation with a relation between the volume and density for a unit mass fluid (Eq. \ref{eq.density_volume}), we obtain Eq. (\ref{eq.df.1st_law.use_rho}). A comparison between this equation and the total difference of \(f(\rho,T)\) (Eq. \ref{eq.df}) yields Eq. (\ref{eq.pressure}). Inserting Eqs. (\ref{eq.Helmholtz})-(\ref{eq.residual}) into (\ref{eq.pressure}) results in an explicit equation for the pressure. In the same way, equations for the other thermodynamic variables are obtained. Explicit equations for various thermodynamic variables are given in Tables 6.3-6.5 of Wagner and Pruss (2002). However, the current version of ymaeda_opentools implements computations of limited thermodynamic variables that had been necessary in the previous researches of the author, meaning that not all the equations in Tables 6.3-6.5 of Wagner and Pruss (2002) are available in this tool.

IAPWS95ヘッダファイルパッケージには IAPWS-95に基づいてH2Oの物性値を計算するヘッダファイルをまとめてある。 計算式に登場する物性値を表現するため、 IAPWS95/structure.hにおいていくつかの構造体を定義している。
Header files to compute the H2O properties based on IAPWS-95 are included in IAPWS95 header file package. Several structures are defined in IAPWS95/structure.h to represent physical properties that are used in the formula.

IAPWS95ヘッダファイルパッケージ内のヘッダファイルを以下に示す。 各ヘッダファイルの詳細はリンクをクリックして参照のこと。
Header files in IAPWS95 header file package are listed below. For details of individual header files, click the links.

◆特殊なヘッダファイル (Special header files)

ヘッダファイル名
Header file name
機能・用途
Purpose
IAPWS95/index.h IAPWS95ヘッダファイルパッケージ内の 他のヘッダファイル一式をインクルードするためのヘッダファイル。
A header file to include all the other header files in IAPWS95 header file package.
IAPWS95/macro.h IAPWS95ヘッダファイルパッケージ用のマクロの定義。
Definitions of macros for IAPWS95 header file package.
IAPWS95/structure.h IAPWS95ヘッダファイルパッケージ用の構造体の定義。
Definitions of structures for IAPWS95 header file package.
IAPWS95/prototype.h IAPWS95ヘッダファイルパッケージ内の関数のプロトタイプ。
Prototypes of functions in IAPWS95 header file package.

◆通常のヘッダファイル (Normal header files)

ヘッダファイル名
Header file name
機能・用途
Purpose
IAPWS95/check.h IAPWS-95に関するチェックを行う関数。
Functions to perform checks for IAPWS-95.
IAPWS95/forward.h 密度と温度を与えて他の熱力学変数を計算する関数。
Functions to compute thermodynamic properties using given values of density and temperature.
IAPWS95/given_TP.h 温度と圧力を与えて他の熱力学変数を計算する関数。
Functions to compute thermodynamic properties using given values of temperature and pressure.
IAPWS95/phase.h 相の種類(固体、液体、気体、超臨界)を判定する関数。
Functions to identify the phase type (the solid, liquid, gas, or supercritical).
IAPWS95/saturation.h 平衡状態の計算を行う関数。
Functions to compute the saturation state.
IAPWS95/thermal_conductivity.h 熱伝導率を計算する関数。
Functions to compute the thermal conductivity.
IAPWS95/viscosity.h 粘性係数を計算する関数。
Functions to compute the viscosity.

◆検証 (Validation)

Wagner and Pruss (2002)の表13.2には 膨大な温度・圧力組合せについて コンピュータプログラムの検証用の数値データ(熱力学変数の値)が載っている。 その中から温度300, 600, 640, 650, 700, 1000 [K]、 圧力0.1, 1, 10, 20, 25, 50 [MPa] の組合せ(計36通り)を選んで このヘッダファイル内の関数により計算を行い、 論文の表13.2の数値データと比較した。 上記の温度・圧力範囲は液相・気相・超臨界状態を含み、臨界点近傍を含み、 火山地域における浅部熱水系のシミュレーションで想定される 温度・圧力範囲をカバーする。
Table 13.2 of Wagner and Pruss (2002) provides a huge quantity of numerical data (the values of thermodynamic variables) at various combinations of the temperature and pressure for computer program verification. among them, temperatures of 300, 600, 640, 650, 700, and 1000 [K] and pressures of 0.1, 1, 10, 20, 25, and 50 [MPa] were chosen (a total of 36 combinations) for which computations were made using functions in this header file. The results were compared with the numerical data in Table 13.2. The these temperatures and pressures include the liquid, gas, and supercritical regions, including those near the critical point, and extend over the expected temperature and pressure ranges for numerical simulations of a shallow hydrothermal system of volcanic regions.

まず与えられた温度\(T\)・圧力\(P\)において 関数IAPWS95_calculate_density_givenTP により密度\(\rho\)を求めた。次にその密度を用いて 関数IAPWS95_forward_calculation によりエントロピー\(s\)、内部エネルギー\(u\)、エンタルピー\(h\)、 定積比熱\(c_v\)、定圧比熱\(c_p\)、音速\(w\)を計算した。 これらの値は試した36通りの温度・圧力のいずれにおいても 論文の表13.2の数値データの値と一致した。
First, the density \(\rho\) was computed for a given temperature \(T\) and pressure \(P\) using function IAPWS95_calculate_density_givenTP. Next, using this density value, the entropy \(s\), internal energy \(u\), enthalpy \(h\), isochoric heat capacity \(c_v\), isobaric heat capacity \(c_p\), and sound speed \(w\) were computed using function IAPWS95_forward_calculation. The results were consistent with the numerical values in Table 13.2 of the paper for any of the 36 examined cases of the temperature and pressure.

このヘッダファイルで計算をサポートしている量のうち、 ギブスの自由エネルギー\(g\)については Wagner and Pruss (2002)に正解データが載っていない。 そこで、計算した量同士の比較により\(g=h-Ts\)の関係が 関数doublecmpの許容誤差範囲内で成り立っていることを確認し、 これをもって\(g\)の計算が正しく行われていると判断した。 また、\(\left(\PartialDiff{p}{\rho}\right)_T\)は 粘性係数の計算のために導入した量であり、 粘性係数が正しく計算できていること (IAPWS95/viscosity.hのマニュアル参照) をもって\(\left(\PartialDiff{p}{\rho}\right)_T\)も 正しく計算できていると判断した。
Among the quantities that can be computed in this header file, the correct values of the Gibbs free energy \(g\) are not available in Wagner and Pruss (2002). Instead, the correctness of the computed Gibbs free energy was examined by confirming that the relation \(g=h-Ts\) holds among the computed values within an allowed error range of function doublecmp. The quantity \(\left(\PartialDiff{p}{\rho}\right)_T\) was introduced for the computation of the viscosity, and its validity was indirectly examined by the test of the viscosity; see the documentation of IAPWS95/viscosity.h.

◆引用文献 (References)