\section{数値計算上のテクニック}

数値計算を安定して稼働させるためにいくつかテクニックを使っている. 
本節では擬断熱変化を求めるためのテクニックを紹介する. 


\subsection{相の扱い (その 2)}

擬断熱を仮定しているので, 凝縮物質は空気塊から離脱する (存在量を 0 にす
る).  その状態でさらに 1 ステップ進めて空気塊を p = p + dp に持ち上げる
と, 凝縮物質の存在量が全て 0 なので凝縮相に関する方程式が除かれる.
(\ref{sou} 節「相の扱い(その 1)」参照). 熱力学的に凝結する高度でも, 凝縮
相の方程式が除去されてしまったので, 凝縮が生じないということが起きる. 
そのような状態を回避するために, 圧力 p を dp 変化させるたびに, 凝縮相に
凝縮するための「タネ」を入れている. 例えば水蒸気の存在量の 1/10 を液体の
水の存在量に振り分けるという作業を行っている(\Dfigref{2001-02-14-20} 参
照).



\begin{figure}
\begin{center}
  \Depsf[130mm]{./images/init.ps}
\end{center}
\caption{相の扱い(その 2)の概要. 圧力を $dp$ だけ変化させるたびに
可凝縮気体の存在量を減らし, その分凝縮物質の存在量を増やしている.}
\Dfiglab{2001-02-14-20}
\end{figure}




\subsection{熱力学関数 $S$ の計算}
\label{entropy}

熱力学関数 $S$ を数値的に求めるためには, $G$ の差分を求める必要がある. 
現在, 差分形式として中央差分を採用している. 
中央差分の取り方は \Dfigref{20010128-3} に示される. 
圧力 $p$ を固定し, 温度を $\pm dT$ だけずらした点 $T \pm dT$ での
熱力学関数 $G$ をそれぞれ $G(T - dT), G(T + dT)$ とする. 
そのとき温度 $T$, 圧力 $p$ での $G$ の差分は以下のようになる. 

\begin{eqnarray}
\left( \DP{G}{T} \right)_{p, n_{i}}
= \left( \frac{\Delta G}{\Delta T}  \right)_{p, n_{i}}
\simeq   \left( \frac{G(T + dT) - G(T - dT) }{2 dT} \right)_{p, n_{i}}. 
\Deqlab{20010128-4}
\end{eqnarray}

この差分の誤差は $(dT)^{2}$ 程度である. 
\bigskip

\Deqref{20010128-4} 式は物質量は変化しないという条件で行わねばならない. 
そのため温度が $\pm dT$ だけずれた点同士での各物質存在量を比較し, 
その変化率が差分の誤差程度に収まるようにチェックしている. 
\bigskip

\begin{figure}[h]
\begin{center}
 \Depsf[130mm]{./images/sabun.ps}
\end{center}
\caption{中央差分の模式図. ×印の点での差分を求めるために, 
その前方の点と後方の点の値を用いる. }
\Dfiglab{20010128-3}
\end{figure}







%\subsection{熱力学関数 $S$ を一致させるための条件}



