関数IAPWS95_calculate_density_givenTP_liquid マニュアル

(The documentation of function IAPWS95_calculate_density_givenTP_liquid)

Last Update: 2023/9/19


◆機能・用途(Purpose)

Wagner and Pruss (2002)の状態方程式を用いて 指定された温度・圧力を与える密度(液相)を計算する。
Compute the density of the liquid phase for given temperature and pressure using the equation of state of Wagner and Pruss (2002).


◆形式(Format)

#include <IAPWS95/given_TP.h>
inline double IAPWS95_calculate_density_givenTP_liquid
(const double T,const double P)


◆引数(Arguments)

T 温度[K]。
The temperature [K].
P 圧力[Pa]。
The pressure [Pa].


◆戻り値(Return value)

温度\(T\),圧力\(P\)を与える液体の密度[kg m\(^{-3}\)]。
The density of the liquid [kg m\(^{-3}\)] for the given temperature \(T\) and pressure \(P\).


◆使用例(Example)

const double T=300.0;
const double P=5.0e+06;
double rho=IAPWS95_calculate_density_givenTP_liquid(T,P);


◆アルゴリズム(Algorithm)

温度\(T\)における密度\(\rho\)と圧力\(P\)の関係が 図1のように\(\PartialDiff{P}{\rho}\)の符号によって 5つの領域に分けられると想定する。 この場合、指定された圧力(図1赤線)を与える密度は5つ存在し、 その中の最大のものが液体の密度である。
The relation between the density \(\rho\) and pressure \(P\) for the given temperature \(T\) is assumed to be divided into five regions based on the signs of \(\PartialDiff{P}{\rho}\) (Fig. 1). In this case, there are five densities that satisfy the specified pressure (Fig. 1, red line); and the maximum of them corresponds to the density of the liquid.



図1. 一定温度での密度と圧力の関係の模式図。
Fig. 1. A schematic view of the relation between the density and pressure at a constant temperature.

この密度を求めるため、まずは解の探索範囲(図1における領域5の密度範囲)を決定する。 探索範囲の上限は\(\rho_{max}=1500\) [kg m\(^{-3}\)]を使用する。 この値から出発して少しずつ密度を減じながら圧力を計算し、 \(\PartialDiff{P}{\rho}\leq 0\)となる最初の密度を求めて これを探索範囲の下限(\(\rho_{min}\))とする。
To solve this density, the search range for the solution is determined first; the density range of the region 5 in Fig. 1 is used as the search range. A density of \(\rho_{max}=1500\) [kg m\(^{-3}\)] is used for the upper limit of the search range. Starting from this value, the density is gradually lowered and the pressure at each trial density is computed. The density where \(\PartialDiff{P}{\rho}\leq 0\) first occurs is used as the lower limit (\(\rho_{min}\)) of the search range.

次に、区間\([\rho_{min},\rho_{max}]\)においては \(\PartialDiff{P}{\rho}\geq 0\)であることを利用して 2分法により解を探索する。 まず、密度\(\rho=(\rho_{min}+\rho_{max})/2\)として圧力を計算する。 その値が引数で指定した圧力\(P\)よりも大きければ 仮定した密度が正解よりも大きいということであるので、 このときの\(\rho\)を探索範囲の新たな上限\(\rho_{max}\)にする。 一方、計算した圧力が\(P\)よりも小さければ 仮定した密度が正解よりも小さいということであるので、 このときの\(\rho\)を探索範囲の新たな下限\(\rho_{min}\)にする。 関数doublecmp の要求精度内で 計算した圧力が\(P\)と一致、 あるいは\(\rho_{min}\)と\(\rho_{max}\)が一致するまで この処理を繰り返すことで密度を求める。
Next, the solution is searched with the bisection method using the nature of \(\PartialDiff{P}{\rho}\geq 0\) in \([\rho_{min},\rho_{max}]\). First, the pressure is computed for a density \(\rho=(\rho_{min}+\rho_{max})/2\). If this pressure is greater than the given \(P\), the assumed density is greater than the correct density so that this \(\rho\) is adopted as the new upper limit \(\rho_{max}\) of the search range. If the computed pressure is less than the given \(P\), the assumed density is less than the correct density so that this \(\rho\) is adopted as the new lower limit \(\rho_{min}\) of the search range. This procedure is repeated until the computed pressure is equal to \(P\) or \(\rho_{min}\) is equal to \(\rho_{max}\) within the accuracy required by function doublecmp.