gem HELP 目次
概要
gem を使う
クイックスタート (重要)
メインシートプラットフォーム（Platform）
グラフ表示とその印刷
高度な使い方ステータス
Status of convergence
Projected G (Projected Gradient)
Potential and Activities
メニューリファレンス
File
Open Malt File
Malt Direct
Open Project
Save Project
Save Project As
Save As CSV file
Exit
Edit
Cut
Copy
Paste
Fill with Case 1
DeleteSelect All
Copy 4 sheets
View
Platform
Graph
Sorted Output
RunRun
Run 1 Case
Stop Engine
Tool
Command Box
Settings
Colors of Grids
Help
Help
Malt Homepage
About
コマンドリファレンス
エラーメッセージ
gem のアルゴリズム
その他
収束の困難な場合
小数点について概要
概要
gem ウィンドウズ版は DOS 版 gem のアップグレード版です。 gem は Gibbs Energy Minimizer の略で MALT ウィンドウズ版のデータを取り込み化学平衡計算をするプログラムです。
ある系の最小化するエネルギーの種別によりギブズモードあるいはヘルムホルツモードの２種類の計算モードを有しています。
gem は勾配ベクトル射影法と線形計画法を組み合わせたユニークなアルゴリズム*により平衡計算を行います。
* T.Matsumoto and H.Yokokawa, Netsu Sokutei, 19(4)(1992)170‑173(in Japanese).

新しい特徴
gem ウィンドウズ版は DOS 版に比べて以下の新しい特徴を有します。
1. gem DOS 版は与えられた条件のもとでの平衡点１点のみを計算することができたのに対し、gem は変化するパ
ラメーターに対し連続的に計算を行うことが可能です。またこの状況のもとで前回の計算結果を次の計算で用いることも可能です。

2. gem は計算する系に含まれる化合物数および元素数に制限がありません。
3. gem は計算結果をグラフ表示しかつそのグラフを印刷することが可能です。
4. gem は計算条件をプロジェクトとして保存することが可能です。したがって、後に同じ条件ですぐ計算を再開することができます。
5. gem は計算結果をタブセパレーティッド形式にて他の表計算ソフト（エクセルなど）にエキスポートすることが可能です。

gem を使う
クイックスタート(重要)チュートリアルとして以下の諸条件のもとで Fe‑O‑S‑Cr 系の計算をします。以下の手順を踏む前に MALT は起動され Fe‑O‑S‑Cr 系の化合物系をすでに取得していなければなりません。なおここでは９回の Cases について連続して計算を行う場合を取り上げますが、１Case のみつまり平衡点１点のみの計算に限るならばプラットフォームを最初から利用するほうが便利で細かい設定も可能です。その場合も手順２までは同様ですがその後プラットフォーム
メニュー によりプラットフォームを表示して下さい。

Cases 回数

9 cases

計算モード

Gibbs

温度

1200K より 2000K まで増分 100K

初期モル値

Fe : 9SO2 : 10
Cr : 1

手順１

gem の起動

手順２

MALT から系の熱力学データを取得

手順３

Cases 回数の設定

手順４

計算モードの設定

手順５

温度(K)の設定

手順６

圧力(atm) / 体積(litre)の設定

手順７

初期モル値の設定

手順８

計算の実行

手順９

結果のグラフ表示

手順 10 プロジェクトの保存

手順１

gem の起動

gem を起動するには３通りの方法があります。１番目の方法はファイルエクスプローラーで gem.exe をダブルクリックするという通常の方法です。 gem は Fig.1 のように立ち上がります。
２番目の方法は MALT のメインメニューで tools > gem を実行する方法です。この場合は gem は MALT で現在検索されている化合物系のデータとともに Fig.2 のように現れます。

３番目の方法はウインドウズのスタートメニューにあるファイル名を指定して実行を使う方法です。この場合ファイル名'gem.exe'を記述する方法に以下の手法のいずれかを用いることができます。
1. 単に'gem.exe'と入力します。これは１番目の gem の起動と同じです。
2. MALT Direct を意味するスイッチ md を付けて'gem.exe /md'と入力します。これは２番目の起動と同じです。
3. すでに保存されているプロジェクトファイル名(*.gem)を指定して'gem.exe ProjectName.gem'と入力します。
Open Project Menu を参照して下さい。あるいはウインドウズ OS のもとでファイル拡張子'.gem'にプログラム
gem を関連付けておけばこの最後の方法は ファイルエクスプローラーでプロジェクトファイルをダブルクリッ
クすることでも実現できます。
Fig.1 : gem の立ち上がり画面

手順２

MALT から系の熱力学データを取得

メニュー: File > Malt Direct または ツールバーにある Malt Direct ボタン。
この手順は手順１において１番目の gem 起動法を使った場合のみ必要です。 gem は現在 MALT で取得されている化合物系を取り込み Fig.2 のような画面が現れます。図中のアルファベットを今後の説明で用います。

Fig.2 : 熱力学データ取得後の画面

手順３

Cases 回数の設定

Cases 回数として'9'をツールバー中央にあるエディットボックス (A in Fig.2)に入力しエンターキーを押して下さい。この操作はいつでもできますが、Cases 回数を増やした場合は増やした Cases のところに初期条件値を埋めなければなりません。
‑‑‑別の方法としてはコマンドボックスにて NT コマンドを使う方法もあります。
手順４

計算モードの設定

Cases シートの 3 行目の左端セル(B in Fig.2) を左クリックすると文字 G（ギブズモード：外圧指定のもとで系のギブズエネルギーを最小化する）と文字 A（ヘルムホルツモード：体積指定のもとで系のヘルムホルツエネルギーを最小化する）が交互に現れます。これにより計算モードを設定します。
‑‑‑別の方法としてはコマンドボックスにて G または A コマンドを使う方法もあります。
手順５

温度(K)の設定

単に温度（単位は K のみ）を Cases シートの Temperature 行の各セルに直接入力することができます。しかし、もし温度の変化を初期値と増分により規則的に指定できるならば'Temperature(K)'が表示されている２行２列目のセル(C in Fig.2)を左クリックして下さい。プロンプトフォームというダイアログボックスが現れるので初期値(1200)、コンマ(,)、増分(100) の順に、すなわち、'1200,100' (Fig.3) と入れて OK ボタン（またはエンターキー）を押下して下さい。Temperature 行のすべてのセルが指定された初期値および増分によって定められる値で埋められます。増分の値は通常の差分値で与えることができる他、増分の数字の頭に文字@をつけて乗数の意味で指定することもできます。
この乗数値指定の例および別の方法としてコマンドボックスにて T コマンドを使う方法がありますのでそちらも参照して下さい。
Fig.3 : 温度、圧力/体積、初期モル値を指定するプロンプトフォーム

手順６

圧力(atm) / 体積(litre)の設定

ギブズモードでは圧力（単位は atm のみ）を、ヘルムホルツモードでは体積（単位は litre のみ）を指定しなければなりません。これらの設定は温度(K)の設定 と同様です( Fig.2 中の D を左クリック）。今の問題ではプロンプ
トフォームに'1,0'と入力します。
‑‑‑別の方法としてはコマンドボックスにて P または V コマンドを使う方法もあります。
手順７

初期モル値の設定

初期モル値を設定するのも温度(K)の設定と同様です。化合物名が表示されているセルを左クリックすることによりプロンプトフォームが現れます。何も入力されていないセルは値 0 とみなされます。
‑‑‑別の方法としてはコマンドボックスにて N1, N2 コマンドを使う方法もあります。
‑‑‑上記以外の特殊な設定については高度な使い方を参照して下さい。
****** 重要な注意 ******
初期モル値を m とするとき、m は 0.001<m<1000 の範囲で指定して下さい。
この制約は gem の数値計算上のダイナミックレンジの制約から来るもので gem は 1E‑8 以下の値は無視します。
簡単な反応では１モルのオーダーで入力して下さい。ただし雰囲気ガスを考慮する場合のようにその１部しか反応に関与しない化合物の総量は上記制限外の大きな値を入れても問題ありません（しかし 1E+10 以上の入力は避けて下さい）。物質の移動量が上記オーダー内に収まるような設定が望ましいといえます。
*** *** *** *** *** *** *** *** *** ***

手順８

計算の実行

Run メニューまたは Run 1 Case メニューによりそれぞれ全 Cases の計算または指定された Case のみの計算をそれぞれ行うことができます。
Case を指定するには最上行の Case 番号の表示されているセルを左クリックします。この後 Run 1 Case を実行しSorted Output メニューによってその Case の計算結果のソートされた出力を得ることもできます。
計算を途中で中断するには Stop Engine メニューによります。
手順９

結果のグラフ表示

グラフに表示しようとするデータを選択するには Cases, Results および Activities シートにおいてそれぞれ選ぶ化合物の行の最左端セル(E in Fig.2) を左クリックして下さい。色のダイアログボックス(Fig.4)が現れますので表示する線の色を選択して下さい。もう一度そのセルをクリックするとその選択設定が解除されます。
Graph メニューにより選択された化合物のモル数またはアクティビティが線グラフとして表示されます。表示の詳
細はグラフ表示とその印刷を参照して下さい。
Fig.4 : グラフ上に表示する化合物データの選択

手順 10

プロジェクトの保存

これらの一連の操作の後、Cases シートの内容および系の熱力学データをプロジェクトとして名前をつけ保存しておくことができます。

Save Project メニューにより保存されるファイルは２種類ありひとつは系の熱力学情報を含む*.mcd ファイル、もうひとつは Cases 内容および保存した mcd ファイルの名前を含む*.gem ファイルです。これにより容易に同じ条件で計算を再開することができます。ただしその場合でも MALT はすでに起動されていることが必要不可欠です。

メインシートメインシートは Cases, Results, Activities および Monitor シートからなります。
Cases は計算条件の設定シートです:
計算モードの設定
温度の設定
圧力/体積の設定
初期モル数の設定
Results は各化合物の計算結果におけるモル数を格納するシートです。また Projected G という収束精度をも示します。
Activities は計算結果における各化合物の アクティビティを格納するシートです。
Monitor は計算結果における各種ステータス情報および反応前後のエンタルピー変化、ギブズエネルギー変化、系全体の比熱、各相の合計モル数、合計活量を表示、格納するシートです。
これらのデータはプラットフォームの Engine Monitor シートに表示されるものと同じですので詳しくはそちらをご覧下さい。
********* ステータス情報と Cases に設定された温度/圧力などのトグル表示 *********
Status of Convergence および Projected G は Results シートでまた Potential は Activities の固定行で見ることができます。固定行の左端列セルをクリックして下さい。クリックされた行はステータス情報と Cases の同じ位
置の内容（温度または圧力/体積）をトグル切り替えで表示します。

プラットフォーム
プラットフォームはメニュー: View > Platform により表示されます。
プラットフォームは平衡点１点の計算を行うフォームで以下に述べるような詳細情報を保持しています。メインシートにおいて Run および Run 1 Case により連続してあるいは単一 Case の計算を行う場合も各 Case の計算を実際に行っているのはこのフォームです。 さらにプラットフォームはそれ自体としてユーザーインターフェースを有する計算ユニットとなっており化合物データの有効温度範囲を意識したきめの細かい設定を含めて計算を実行することができます。
メインシートからの計算実行の場合は指定温度が各化合物の有効温度範囲を超えてもデータは外挿されて常に全化合物が計算対象とされます。しかしプラットフォームではある化合物データの有効温度範囲を超える指定温度が与えられた時に、データを外挿してその化合物を平衡計算に含めるかあるいは含めないで考慮対象外とするかの設定が可能です。
プラットフォームの右側には一連のボタン、エディットボックス、ラジオボタンがあり計算条件の設定が可能です。
また計算実行とその結果のソート出力もプラットフォーム自体から可能です。
右下にあるテキストボックスと stop
ボタンについては Engine Monitor シートを参照して下さい。

プラットフォームには４枚のシートがあります。
Main Operation シート
Stoichiometry シート
ThermoData シート
Engine Monitor シート

Fig.5A : プラットフォーム/ Main Operation シート

Main Operation シート'Initial'列は Cases に相当し、'Last'列は Results シートにまた'Activity'列は Activities シートに対応します。
従って'Initial'列に初期モル数を入力し計算結果は'Last'列および'Activity'列に格納されます。
計算指定温度がある化合物のデータの有効温度範囲（'Database and Temp.Range'列に表示されています。‑‑単位
は常に K）を超えたときその化合物を外挿データを使ってでも計算対象に含めるかリジェクトするかは'ex'列で設定します。
'*'をそのセルに入れればその化合物は必要に応じて外挿データを使って常に計算対象に含められます(on)。そのセルがヌル文字（セルの内容を削除した状態）であれば温度が範囲外になれば考慮対象外となります(off)。
'ex'列のすべてのセルの内容を変更したい場合はタイトル行（最上行）で'ex'と表示されているセルを左クリックすれば on/off が切り替わります。指定温度がある化合物データの有効温度範囲内かどうかは'No'列に示されている相番号により容易に判定できます。値が 0 ならばその化合物のデータは有効温度範囲内にあります、すなわちその温度における安定相のデータがとられています。0 より大きい数ｎならば指定温度は有効温度範囲外であり、もし計算対象に含める場合はｎ番目の相のデータが外挿されて使われることになります。
ソート出力も参照して下さい。

Stoichiometry シート
全化合物について含まれる元素とそれぞれの化学量論係数が表示されます。
ThermoData シート
指定温度における化合物の熱力学データが表示されます。これらは MALT で表示される熱力学表を直読した値とは一般に異なっています。これは平衡計算などの熱力学計算では系の基準点は任意にとれることからきています。この詳細は MALT のマニュアルを参照して下さい。
Engine Monitor シート
Engine Monitor シートは平衡点１点の計算結果について以下の詳細な情報を与えます。
Fig.5B : プラットフォーム / Engine Monitor シート

プラットフォーム / Engine Monitor シートの説明
A

Status of convergence

B

計算モード (Gibbs or Helmholtz)

C

Projected G

D

Chemical Potential

E

系の熱力学量が表示されます。
1．H1,H2,Delta‑H
初期状態における系全体のエンタルピーを H1
計算結果である最終状態における系全体のエンタルピーを H2
Delta‑H = H2‑H1

2．Cp‑system
最終状態における系全体の定圧比熱です
ヘルムホルツモードでは定容比熱が表示されます。
3．Delta‑G系の最終状態のギブズエネルギーから初期状態のそれを引いた値です。
ヘルムホルツモードでは Delta‑A (Inner Energy) が表示されます。
4．Volume
ギブズモードでは系の最終状態において気相の占める体積を表示しています。
ヘルムホルツモードでは系の最終状態における圧力が表示されます。
E の項目はヘルムホルツモードにおいて分圧設定がなされているときは表示されません。
F

このテキストエリアは収束計算の進行具合を示しています。 Round number は行われた内部計算ラウンド数でこれが Number for Too Many Rounds (デフォルトは 100)を越えると計算は中断されます。 Round number の下に出てくる数字は収束の目安として表示していますが、この数字が 10 のマイナス４乗位になれば収束します。

G

Stop ボタン
このボタンは計算を中断するためのもので Stop Engine と同じです。

H

計算ログ
計算途中に発行される情報やメッセージがここにログとして蓄積されます。 連続した
Cases 計算を行う場合途中で中断させないためにいくつかのエラーメッセージもここにログされます。
分圧設定がされている場合は以下のメッセージが表示されます。 Partial Pressure of (化合物名) is fixed at xxxx (atm).
この分圧設定値が達成されなかった場合は以下のようになります。 *Failed : Partial
Pressure of (化合物名) is fixed at xxxx (atm).
この他のメッセージについてはエラーメッセージリファレンスを参照して下さい。

全 Cases に対する連続計算(Run)を行った場合は Engine Monitor シートに表示される項目はメインフォームのMonitor シートで見ることができます。

グラフ表示とその印刷
任意の入力条件（Case 番号、温度、圧力/体積、各化合物の入力モル数）および出力結果（Results および Activities
シートの結果）を Graph メニューで描きかつ印刷することができます。描く化合物を選択する方法は クイックス
タートをご覧下さい。
Fig.6 : Graph****** 重要 ******
横軸のキャプションとしてはコンボボックスにあるどの項目を選択することもできますが実際の横軸は常に Casesです。キャプションはただ単に項目名とその項目の最初と最後の Case における値が表示されているだけです。従ってユーザーがその選択の合理性（値が等間隔であること）について意識する必要があります。
各 Case における値の間を結んでいる直線は単に見易さのために各点をつないでいるだけで実際にその中間点における計算がなされている訳ではありません。従って中間の点は実際の状態を反映してはいませんから、特にその区間において化合物が存在/消滅しているような場合、段々に存在/消滅している訳ではありません。
プログラムはフォームまたは紙の大きさに応じてグラフ全体のサイズを調節していることと、Ｘ軸とＡ軸は原点のとり方もスケールも違っているため Results 対 Activities の各曲線の見掛けのアスペクトはフォームのサイズが変わったり印刷された場合は変化する可能性があります。
*** *** *** *** *** *** *** *** *** ***グラフにおいて左側の縦軸は直線目盛で Cases と Results シートの値を読むことができます。右側の縦軸は対数目
盛で Activities シートにある Activity の値を読むためのものです。グラフフォーム右下のカーソルチェックボ
ックスをチェックするとどちらの値もカーソルラインをマウスで動かすことにより直読できるようになります。
各目盛を調節するために Xscale と Ascale という二つのコンボボックスがあります。Xscale では高さ方向に何ピ
クセルが１モルを表すかを指定します。同様に Ascale では１（logA）が何ピクセルかを指定します。このグラフ
はメタファイルとして描かれ、*.wmf として保存され、また印刷されます。

'Appearance'ボタンにより Appearance form (Fig 7)が表示され、グラフ表示の細部をカスタマイズすることができます。
Fig.7 : Appearance form

Title

このエディットボックスに入力された内容がグラフ中央にプロジェクト
名に続いて表示されます。

Line Width for Axis
Line Width for Data
Point Size

これらの５つのパラメーターは画面とプリンターに対し別々に設定します。プリンターは画面よりはるかに画素数が多いのでこのように別々に設定する必要があります。

Font Size(approximate font height in dots )Tick Length
Scale Factor for Save File

ウインドウズメタファイルは元来スケーラブルなものですが境界矩形としての高さ/幅のプロパティを持っています。このファクターはその大きさを調節するものです。たとえば'2'を選ぶとメタファイルの高さプロパ
ティは画面上のイメージの高さ（ドット数）の２倍になります。

高度な使い方Cases シートにおいては以下の記法により初期入力のモル数を特別な機能を持たせて指定できます。
♦ 通常の数値の代わりに文字 'r'または'R'を直接セルに入力します。プログラムはこの文字を前回の Case の計算
結果のモル数と解釈します。この指定は Promptform および CommandBox では指定できません。この指定による実際の解析例については文献*１をご参照下さい。
♦ ヘルムホルツモードにおいては、計算結果である平衡状態におけるある化合物（気相種に限ります）の分圧をあらかじめ指定することができます。たとえば、'PP0.1'と入力すると（PP と数値の間にはスペースは入れない) 計
算結果におけるその化合物の分圧は 0.1 atm となります。この指定は Promptform および CommandBox でも可能です。
この指定はヘルムホルツモードにおける気相種のみに対して指定可能ですがいつでも指定した通りの結果が得られるとは限りません。 Settings をご参照下さい。
なおこの指定は Platform でも可能です。
♦ CommandBox からコマンドを入力することにより指定した凝縮相化合物同士がひとつの理想混合相をなすように相の名前を変更することができます。gem はこうした混合相を３０相まで扱うことができます。それぞれの相はもともと凝縮相として指定されている化合物をいくつでも含むことができます。逆に混合相として指定されている化合物を凝縮相に戻すこともできます。
この指定は CommandBox からのみ行うことができます。
*1 H.Yokokawa, S.Yamauchi and T.Matsumoto, Thermodynamic Database MALT for Windows with gem and CHD,
Calphad, 26(2002) 155‑166.

ステータス
Status of convergence
Monitor シートの４行目は各 Case の計算における収束ステータス（status of convergence）が表示されます。これは以下のいずれかです。
Converged : 収束計算は成功した
Too many round : 計算ラウンド回数が'Number for Too Many Rounds (デフォルトは 100)'を越えても収束条件を満たす解に至らなかった。
結果は十分小さな projected G を持っていないことが予想されます。
Stop : 計算はユーザーにより中断された。
なお Status of convergence は Results シートの２行目の再左端セルをクリックすることによっても見ることができます。

Projected G (Projected Gradient)
Monitor シートの５行目は系のＧまたはＡを質量保存則を満たす空間に射影したベクトルのノルムつまり大きさを表示します。すなわちこの値が小さいほど結果の精度は高いことになります。
計算アルゴリズムは時間の節約のためこの projected G を直接には収束条件にしていないためこの値が小さいこと
は収束の自己確認でもあります。 Projected G < 1E‑3 ならば十分精度の高い結果と言えるでしょう。
なお Projected G は Results シートの３行目でも再左端セルをクリックすることにより見ることができます。

Potential and Activities
Monitor シートの６行目は Potential 情報です。
Definite: 系の各元素（あるいは独立成分）の化学ポテンシャルが定まっている。
Indefinite: 系の各元素（あるいは独立成分）の化学ポテンシャルが不定であるか Projected Gradient > 1 である。
各元素の化学ポテンシャルが定まればそれらを L1,L2,…,Ln としてある化合物の Activity A は
μ0 + RTln(A) = a1L1 +a2L2+ … +anLn
により求められます。ここでμ0 : その化合物のその温度、1atm における化学ポテンシャル
aj : その化合物のｊ番目の元素に対する化学量論係数です。
この Activity は気相の場合（理想気体として扱っていますので）それぞれの分圧(atm）を示していることになります。ただし、気相種すべてのモル数が 0 でも Potential が確定していれば 0 でない Activity の値が表示されます。これは平衡蒸気圧を意味しています。それら平衡蒸気圧の和を見ると外圧に達しないために気相種が出現できなかったことがわかります。
なお出現している凝縮相については１となりますが、出現していない凝縮相についてはこの値が１に近い程、温度、
圧力/体積などの条件が変われば出現しやすいことを意味しています。

Indefinite の場合、気相の場合は単なる分圧計算による結果を表示し、凝縮相の場合は'‑‑‑‑'と表示していますが、出現している凝縮相の Activity が１であることはこの場合でも同じです。
各元素（あるいは独立成分）の化学ポテンシャルが定まるか不定になるかは最終的に出現している化合物の組み合
わせにより決まりますが計算法の詳細になるので省きます。
なお Potential 情報は Activities シートの２行目でも再左端セルをクリックすることにより見ることができます。

Menu References
FILE
Open Malt File Shortcut : Ctrl + M
Open Malt File メニューは Malt Direct file (*.mcd)をロードするために用います。このファイルはすでにSave Project により保存されている必要があります。
Malt Direct

Shortcut : Ctrl + D

Malt Direct メニューは現在 MALT で選択されているすべての化合物の熱力学データを取得します。このメニューの起動の前に MALT が動作中であり所望の系が取得済みでなければなりません。
*注意: このメニューはクリップボードを介した動作を行うため、以前にセットされていたクリップボードの内容は失われますOpen Project

Shortcut : Ctrl + O

Open Project メニューはプロジェクトファイル(*.gem)を通常のファイルオープンダイアログボックスにより開くために用います。
Save Project も参照して下さい。
Save Project

Shortcut : Ctrl + S

Save Project メニューは現在のプロジェクトの設定条件を*.gem および MALT Direct File があれば それを*.mcd としてディスクに保存します。
Save Project メニューは Cases の内容、いくつかの設定パラメーターおよび Malt Direct による熱力学デー
タがあればそれを*.mcd として別に保存するのみなので、計算結果は保存されませんがプロジェクトを再ロードすれば容易に再計算できます。
保存された*.gem ファイルはテキスト形式ファイルですので通常のテキストエディターで見ることはできます。
参照 Open Malt File , Open Project.
Save Project As

Shortcut : F12

Save Project As メニューは現在のプロジェクトに別名をつけてディスクに保存します。標準のファイル保存
ダイアログボックスが表示され新しい名前をつけることができます。古いプロジェクトはまだプロジェクト名のつけられていない'project'の場合を除いてそのままの名前でディスク上に残っています。 gem は新しい名
前を現在のプロジェクトにつけ直し、今後の保存も新しい名前になります。
保存される内容は Save Project に同じです。
Save As CSV file

Shortcut : Ctrl+F11

Save As CSV file メニューは現在の Cases、Results、Activities および Monitor の各シートを Case 列を共通にして上下にならべその全体を CSV(コンマセパレーティッドバリュー）形式にて保存します。これにより４シートの内容をいっぺんにエクセルなどの表計算ソフトの１シートにエキスポートすることができます。

Exit

Shortcut : None

Exit メニューは gem を終了します。保存されていない変更がある場合は変更して保存するかどうかを聞くダ
イアログボックスが表示されます。
プロジェクトが保存するべき変更があるかどうかはツールバーにある Save Project ボタンを見るとわかります。ただし、多少感度過剰です。

EDIT
Cut

Shortcut : Ctrl + X
Cut メニューは現在のコントロール上で選択されたテキストを削除すると同時にその内容をクリップボードにコピーします。現在のコントロールがグリッドの場合はクリップボード上のテキストはタブセパレーティッ
ドバリュー形式になります。つまり各行における各セルの値が TAB(#9)でまた各行が CRLF(#13#10)で結合された形になります。
この形式（これはプライベートなクリップボード形式ではなくクリップボード形式自体は単なるテキスト形式です）でクリップボードにある内容はこの形式をサポートする表計算ソフト（Excel,Origin など gem 自身を含めて多くの表計算ソフト）にペーストすることができます。

Copy

Shortcut : Ctrl + C

Copy メニューは現在のコントロール上に表示されているテキストをクリップボードにコピーします。現在のコントロールがグリッドの場合は Cut を参照して下さい。
Paste

Shortcut : Ctrl + V

Paste メニューは現在のコントロール上のカーソル位置に現在のクリップボードの内容を挿入します。
現在のコントロールがグリッドでクリップボード上にあるデータがタブや改行コード（CRLF）を含めばそれらに区切られたデータはグリッド上の各セルの値とみなされペースト先のグリッドに展開されます。コピー元の選択域とペースト先の選択域が不整合の場合'Size mismatch'、また行ごとのタブの個数が違っていると'Wrongformat'のメッセージがそれぞれ表示されます。
参照 CutFill with Case 1

Shortcut : Ctrl + F

Fill with Case1 は Cases シートにおける Case1 の内容をすべての Case 列にコピーします。このメニューは
多くの Case をもつシートにおいて初期値を効率良く設定したいとき有用です。まずこのメニューによりすべての Cases を Case1 の内容で埋めその後変化させる化合物についてのみ設定します。設定の方法はクイックス
タートおよび コマンドボックスを参照して下さい。
DeleteShortcut : グリッドの選択域については Ctrl +Del
'Del' もグリッド以外では用いることができますが 'Ctrl+Del' は一般に使えます。

Delete メニューは現在のコントロール上で選択されているテキストを削除します。現在のコントロールがグリッドの場合は選択域の全セルの内容が削除されます。
Select All

Shortcut : Ctrl + A

Select All メニューは現在のコントロール上にあるすべてのテキストを選択します。現在のコントロールがグリッドの場合、選択域は固定行、固定列も含めた全セルとなります。
Copy 4 Sheets

Shortcut : Ctrl+Alt+C

Copy 4 Sheets メニューは Cases, Results, Activities および Monitor の４シートを Case 列を共通にして上下にならべその全体をタブセパレーティッドバリュー形式でクリップボードにコピーします。これにより４シートの内容をいっぺんにエクセルなどの表計算ソフトの１シートにペーストすることができます。

VIEW
プラットフォーム（メニュー）
Shortcut : Ctrl + P
Platform メニューはプラットフォームを表示します。プラットフォームは gem プログラムの起動時作成されgem の全過程を通じて以下の４状態のいずれかで存在していてここが平衡計算を実行している本体です。
1. 非可視状態
プラットフォームは見えません。しかし裏で動作しています。
2. 可視だが非アクティブ状態
プラットフォームの１部は見えるが非アクティブなので他のウィンドウに隠れている。 しかし動作しているので変化しているのは見えます。
3. アクティブウィンドウ状態
プラットフォームは可視でアクティブである。
4. ドッキングされている状態
プラットフォームはメインシートにドッキングされている。プラットフォームはメインシートに近づけると Cases シートや Results シートのようにメインシートの一枚のシートになります（ドッキング)。この状態からもとに戻すにはプラットフォームのシートのタブをダブルクリックして下さい。
Fig.11 : Platform docked in Main SheetsPlatform メニューはプラットフォームを可視化しアクティベイトする（メインシートにドッキングされていない場合）かメインシート上でアクティベイトします（メインシートにドッキングされている場合）。
Graph

Shortcut : Ctrl + G

Graph メニューはグラフフォームを表示し計算結果のグラフ表示とその印刷 を可能にします。グラフフォーム
は gem プログラムの起動時作成され gem の全過程を通じて以下の４状態のいずれかで存在しています。
1. 非可視状態‑‑‑グラフフォームは見えません。
2. 可視だが非アクティブ状態‑‑‑グラフフォームの１部は見えるが非アクティブなので他のウィンドウに隠れている。
3. アクティブウィンドウ状態‑‑‑グラフフォームは可視でアクティブである。
4. ドッキングされている状態‑‑‑グラフフォームはメインシートにドッキングされている。グラフフォームはメインシートに近づけると Cases シートや Results シートのようにメインシートの一枚のシートになります（ドッキング)。この状態からもとに戻すにはグラフフォームのシートのタブをダブルクリックして下さい。
Graph メニューはグラフフォームを可視化しアクティベイトする（メインシートにドッキングされていない場合）かメインシート上でアクティベイトします（メインシートにドッキングされている場合）。
Sorted Output

Shortcut : None

Sorted Output メニューは新しくソートフォームを表示し指定された Case の計算結果を相別にまた結果のモル数の大きい順にソートして出力します。ソートフォームはいくつでも作れますが閉じた場合は完全に失われます。
注意 :このメニューにより指定された Case のソート出力を得るにはその Case に対しまず Run 1 Case を実行しなければなりません。単にこのメニューを実行するとメインシート上 Case 列としてハイライトしている列がどの列であっても最近に計算した Case の結果が出力されます。
ソートフォームの上段のテキストエリアは編集可能でそのテキスト内容とグリッドの内容が*.srt ファイルとして保存/ロード可能です。またプリンター出力も可能です。

Fig.31 :ソートフォーム

拡大図

ソートフォームの説明

A

Status of convergence

B

Projected GC

Potential

Dこのアステリスクはこの化合物はそのデータの温度有効範囲を越えてもデータを外挿することにより常に計算対象とされることを意味しています。

E

これらの化合物はそれらのデータの温度有効範囲よりも指定温度が高いためまた、温度
外挿を行わない設定となっているため計算対象外となっていることを示します。

プラットフォームを参照して下さい。

RUN
Run

Shortcut : Ctrl + R

Run メニューは全 Cases を通じて計算を行い結果を Results、Activities、Monitor の各シートに格納します。

Run 1 Case

Shortcut : F8

Run 1 Case メニューは現在指定されている Case についてのみ計算を行い、結果を対応する Results、Activities および Monitor の対応する列に格納します。計算する Case を指定するにはメインシートの４つのシートのどれでも良いので最上行の所望の Case 番号表示セルをクリックして下さい。

Stop Engine

Shortcut : Ctrl + F8

Stop Engine メニューは現在実行中の計算を中断するためのメニューです。これにより計算が中断された Caseの結果のステータスは'Stop'となり非常に大きな Projected G を持つことが予想されます。このような結果は当然信頼できないものです。

TOOL
コマンドボックス

Shortcut : Ctrl + B

CommandBox メニューは CommandBox を gem のその他のウィンドウズより常に上に表示します。
CommandBox ではコマンドライン入力により Cases における各初期値を指定することができます。
以下大文字はコマンドをあらわし小文字は入力される数値を表します。
小数点はピリオドを使って下さい。
コンマの代わりにスペースを使うこともできます。
コマンド
L

説明
Lock (Main Form がアクティブな時でも打鍵入力は CommandBox に送られます）
これは Cases シートを見ながら CommandBox から打鍵して値を入力するのに便利です。

U

UnLock （Lock 状態を解除します）

G

Gibbs モードによる計算

A

Helmholtz モードによる計算

NT,nCases 全回数をｎにします。

T,t

現在指定されている Case と PlatForm の温度を t(K) に設定します。

T,t,step*1

全 Cases における温度を初期値 t(K) 増分:step で設定します（下記参照）。

P,p

現在指定されている Case と PlatForm の圧力を p(atm) に設定します。

P,p,step*1
V,v

全 Cases における圧力を初期値 p(atm) 増分:step で設定します（下記参照）。
現在指定されている Case と PlatForm の体積を v(litre) に設定します。

V,v,step*1

全 Cases における体積を初期値 v(litre) 増分:step で設定します（下記参照）。
現在指定されている Case と PlatForm において n1 番目の化合物のモル数を n2(mol) に設定

n1,n2

します。

n1,n2,step*1

全 Cases における n1 番目の化合物のモル数を初期値 n2(mol) 増分:step で設定します（下記参照）。
現在指定されている Case と PlatForm において n 番目の化合物（GAS)の分圧を p(atm) に設

n,PPp

定します。
全 Cases における n 番目の化合物（GAS)の分圧を初期値 p(atm) 増分:step で設定します（下*1n,PPp,step

記参照）。 たとえば

3,PP0.1,@0.1と入力してみて下さい。（PP と 0.1 の間にスペースは入れられません）AC

Results, Activity および Monitor グリッドの固定域以外のセルをクリアー（空白）します。

CL,nｎ番目の化合物の初期設定をクリアーします。

CP,n,PhaseName*2 ｎ番目の化合物（GAS 以外）の相の名前を PhaseName (文字列) に変更します。
Q

プログラムを終了します。

*1 step は通常増分として指定します。 [Tn+1=Tn+step], しかし step が 文字 @ で始められていると乗数としての指定になります。 [Tn+1=Tn*step] 以下の二つのコマンドを試して見て下さい。 T,1000,10 and T,1000,@1.1
他のコマンドでの step も同様に両方の指定が可能です。
*2 PhaseName は 'Gas' であってはなりません。もし PhaseName が'Condensed'で始まっているとこの相は凝縮相とみなされてその後凝縮相として計算されます。それ以外の場合は理想混合相の名前と解釈され同じ相名をもつ
ほかの化合物と理想溶液をなすものとして計算されます。ここでの PhaseName には空白文字を含めることができませんのでご注意下さい。またプログラムは大文字、小文字の区別はしていません。

Settings

Shortcut : None

Settings メニューは Setting フォームを表示し以下のパラメータを設定することができるようになります。
Initial value(mol) for Partial Pressure Settings (Default is 1E+3)
ヘルムホルツモードにおいてある気相化合物について分圧を PP コマンドにより設定するとプログラムは自動的にここで設定された値を初期供給モル数として使います。しかし系の性質上不合理な設定の場合はここで大きな値を設定したからと言って常に目標とする分圧が達成するとはいえません。

Number for Too Many Rounds (Default is 100)
１Case にたいする計算は内部の計算ラウンド数がここで設定されている回数を越えても収束条件が満足されない場合中断されます。Status of Convergence を参照して下さい。この設定値を増やすことにより計算ラウンド数をさらに増やしてみることができます。ただしむやみに増やすのでなく収束の困難な場合も参照して下さい。
グリッドの配色 Shortcut : None
Colors of Grids メニューによりメインシートおよび プラットフォームの各グリッドの配色をプロジェクトごとにカスタマイズできます。このメニューを選ぶと"Color palette popup menu in Grids?"と聞いてくるダイ
アログボックスが現れ"Yes"を選択すると各グリッド上で右クリックによるポップアップメニューが配色選択のメニューに変わります。これによりそのグリッドの各領域の色を選択することができます。変更された色はSave Project により保存されます。
通常の右クリックメニューに戻すには Colors of Grids メニューにおいて"No"を選んで下さい。
なおメインシートの Monitor グリッドの各配色はプラットフォームの Engine Monitor グリッドにまた Monitor
グリッドの指定 Case の色は Cases グリッドの Case 色と同じ色になります。

HELP
Help

Shortcut : F1

Help は gem 内で常に F1 キーでも見れます。

Malt Homepage

Shortcut : None

Malt Homepage メニューは PC がインターネットに接続されていれば MALT のホームページ(http://www.kagaku.com/malt/)を表示します。
About

Shortcut : None

About メニューは gem のバージョン情報と著作権情報を表示するアバウトボックスを表示します。

Error Message References
エラーメッセージ
Abort‑‑Too Many Loop in a convergence cycle
計算が内部ルーチンから抜け出せない。
これはアルゴリズム上致命的な状況ですので別の初期条件で計算して下さい。
Can not be changed to GAS.
CP (Change Phase)コマンドで気相種に変更することはできません。
Compound n Invalid number
ｎ番目の化合物の初期モル数の指定が不適切な表記です。
Compound n is out of consideration.
ｎ番目の化合物はこの温度では考慮外となっています。従って初期モル数を設定することはできません。
Compound n Partial Pressure Settings are Invalid under Gibbs Mode.
ｎ番目の化合物について：分圧設定はヘルムホルツモードでのみ可能です。
Compound n This Phase cannot be set Partial Pressure.
分圧設定は気相種のみについて可能です。
MALT I/F Error<FunctionName#n>ErrorCode=m
MALT とのインターフェースエラーです。
以下のいずれのケースであっても科学技術社にご連絡下さい。
For reference only.
MALT I/F Error<FunctionName#n>ErrorCode=m
FunctionName :Initialize
GetThermoData
GetStoichiometry
GetNameRangePhase#n : n is code identifier in the program.
m : ErrorCode
0 : Normal
3 : MALT has not yet any compound handle, failure of initialization
4 : not initialized yet
5 : compound handle is not specified
6 : the compound handle set is zero or more than the number of available compounds
7 : the compound handle set is different from the currently specified handle
8 : there is an error in specifying temperature
9 : specified temperature is out of range (for the case of PhaseNo=0; specifying stable phases)
10 : specified temperature range number is out of range (for the case of no existence of specified number
by CL)
11 : there is an error in number of calculation temperatures or in number of compounds set by CH
12 : the size of data buffer area is too small

Malt Interface File is not Opened yet
gem はプロジェクトファイルも mcd ファイルも開いておらず MALT Direct によるデータ獲得もしていません。

Mass Balance Error
これは現在の系の設定では質量保存則の制約により反応できない状況をいいます。たとえば H2O(gas)、
H2O(condensed) 、OH(gas)の３種の化合物からなる系を考え OH の初期値として１mol 与えたとします。この場
合質量保存則を満たしながら OH の１部が H2O となることはできませんからこの反応は成立しません。
No Reaction
系のすべての化合物が他とまったく反応できません。これは自明の系についてのみ生じるものです。
Number of Mixture Phase can not exceed 30
混合相の数は３０を越えられません。減らして下さい。
R cannot be used in the first case'R' は前回の case の計算結果を意味しますので Case1 で初期モル数として'R' (or 'r') を指定することはできません。
Range Error n1<Parameter's Name<n2
その名前のパラメーターは n1 から n2 までの値の範囲でなければなりません。
Size mismatchあるグリッドの選択範囲の内容をコピーし別の選択範囲にペーストしようとするときペースト先行数はコピー
元行数の倍数かまたは１でなくてはならず、かつ列数も同様の条件を満たしている必要があります。この条件が満たされていない場合表示されます。
Some Compounds are fixed.
たとえば系にアルゴンガス等のほかと反応しない化合物が含まれる場合この警告がでます。それで OK ならば計算を続行します。
This phase can not be specified.
CP (Change Phase) コマンドでは気相種を指定することはできません。
あるいは PP (Partial Pressure) コマンドでは気相種しか指定することはできません。
Wrong format of matrix
あるグリッドの選択範囲の内容をコピーし別の選択範囲にペーストしようとするときクリップボード上において TAB および CRLF により数えた全セル数が行数の倍数でない場合に表示されます。これはコピー元がグリッドでないような場合に起こりますがエクセルなどで選択範囲をコピーしたときでも右側に空白が多く並ぶときなどは、そのような形式になっていることがありこのメッセージが出てしまいます。このようなときは１行ずつあるいは 1 列ずつコピーペーストして下さい。
Zero for the Element 'ElementName'.
'ElementName'で表された元素を含むすべての化合物の初期値が０です。この警告が出ても OK ならば計算を続行します。
Zero System
すべての化合物の初期値が０です。

Algorithm in gem
The Algorithm used in gem for calculating the minimum point of G,
Gibbs energy of the system.
A unique algorithm has been developed for gem in order to solve chemical equilibrium problems in general.
This algorithm is mainly based on the gradient projection method with aids of some concepts in linear
programming. This algorithm neither needs any estimated initial values other than derived values from the
input quantities for reactant mole numbers, temperature and pressure (or volume), nor passes unreasonable
states in which mass balance equations will not be satisfied. Therefore, this leads to excellent stability infinding the solution.
1. The problem
Let the system consist of n compounds and m elements. Then, the problem can be described as:
Minimize the Gibbs energy of the systemnnn
G = ∑(gi/RT)Xi + ∑Xi ln (Xi P/ ∑Xj )
i=1
i=k
j=K

subject to(1)where xi: the quantity of the i-th compound (mol)the 1st to (k-1)th compounds are condensed,
and the rest of compounds are gaseous.
P: Pressure (atm)
T: Temperature(K)
R: Gas constantgi:Standard Gibbs formation energy of the i-th compound at temperature T
ln : natural logarithm

a11x1+a12x2+…+a1nxn=b1
a21x1+a22x2+…+a2nxn=b2
…

(2)

…

am1x1+am2x2+…+amnxn=bm

and

xi ≥0 i=1, ..., n
(3)
where
aji: stoichiometry coefficient of the i-th compound for the j-th element

We will use vector notation, and use primes (') to indicate the transposes of vectors and matrices.
Equations (2) can be written as

AX'=B
where
X = [x1,x2, …, xn]
A=

A1
A2 =
.

Am

(2)

a11, a12, …, a1na21, a22, …, a2n…

…

am1, am2, …, amn

B is constant vector which is given by initial quantities in the system.

The steepest descent vector of G is-gradG = − [∂G/∂xi]
We will use this vector and find the minimum point of G under the constraints of(2) and (3). Here, we assume the G is convex in all area defined by (2) and (3).
2. The gradient projection method
If we project the vector -gradG into the space that satisfies (2), the moving point along that direction isalways satisfying the mass-balance law. Let {Ai} be the space spanned by the vectors A1, ..., Am, and S be
the space which satisfies (2), then {Ai} and S are the orthogonal complement of each other. In other words,
if we subtract the components which belong to {Ai} from -gradG, the resultant vector belongs to S. Hence
we first transform the vector series Ai into the orthogonal vectors Li by the Gram-Schmidt
orthogonalization.
Then, we obtain the vector Q as a result of the subtraction of the Li components from -gradG.
3. One stage of calculation for convergence
The initial point of calculation x0 is given as the quantities of input materials, and we derive the vector Q
as above mentioned. The next problem is how far the point should move along that direction. We canderivec = QQ '/QHQ ' where H=[∂2G/∂xi∂xj](4)and adopt X= X0+cQ as the next point based on the ordinary principle of the steepest descent method.
This point is, however, either over-going or short-going in general. In order to examine which situation isthe case, we make the inner product of -gradG at X and Q. If the inner product is negative, the point isover-going, so that we will adopt some inner point between X and X0. If positive, we will go farther.
In the present algorithm, an inter(extra)polating coefficient for each case is given as functions of c, Q and r,
which will be described later. By successively applying this method, we finally obtain the point on thisdirection as the next point where the norm of the inner product is less than an appropriate threshold value.
4. Linear programming
In principle, the gradient projection method is the core of this algorithm. However, we cannot always
move along the direction of Q because of non-negative constraints (3). Moreover, if we handle all variables
equally at a calculation stage, there would be some problems arisen from the fact that each variable has
the value of quite different order.
In order to avoid this problem, our program has employed some concepts utilized in the linear
programming. In the linear programming, the movement of point on the convex polyhedron is restricted
such as the point should go to the adjacent point only at a calculation stage. That is, the space in which thepoint is movable in a calculation stage is restricted within one dimensional space including the point.
In our program, the space is being restricted in one dimensional subspace of S. Actually, we make one
calculation stage under the condition that (n-m-1) variables out of n variables are regarded to be fixed as
constant.
In the next stage, the variable which has the smallest value in the resultant variables is fixed and we take

into account the oldest variable which has been fixed earlier.
Initially, the bigger variable will be served earlier.
For the non-negative constraints, let

r=min{xi/|qi| : qi<0} where [qi]=Q(5)

and when r is smaller than c in (4), we use this r value instead of c in order to avoid negative variables. In
the case of r=0, no calculation is made at the stage and the variable xi which is 0 and qi <0 will be fixed in
the next stage.
This calculation is iterated until the difference of each variable over n-m successive stages becomes lessthan 1/10000 of the value.
To confirm that the point satisfies the condition of minimum, the program outputs the norm of the
projected gradG (for i : xi >0 ) on S. The smaller value indicates that the solution can be regarded as more
precise.

Miscellaneous
収束の困難な場合
gem におけるギブズモードでは、アルゴリズムの性格上、気相種がまさに出現しようとしているがまだ出現できないという状況では収束が非常に遅い場合があります。これは平衡蒸気圧がほぼ等しい気相種が数多くある場合特にはなはだしいと予想されます。
このような臨海的状況に対してはヘルムホルツモードによって平衡蒸気圧を求めそれらの和が外圧をこえるかど
うかにより気相種が出現するかしないかを判定して下さい。この場合、指定体積を十分小さくとり固相種が気化しつくさないようにして計算しなくてはならないことに注意して下さい。
いずれにしろギブズモードの計算過程において気相種すべてが０になった場合、gem は方式上困難な局面に立たされます。一応の回避策はとられていますが、完全とはいえないため、このような結果を得た場合はヘルムホルツモードによる検証をすべきと思われます。
もしヘルムホルツモードにより気相種の出現が予想されるのにギブズモードではすべて０となってしまうケースに遭遇した場合は科学技術社までご連絡下さい。今後の参考とさせていただきます。
混合相についても同様の収束困難な状況がギブズモードでもヘルムホルツモードでも生じる可能性があります。このような場合計算打ち切り回数 Number for Too Many Rounds (デフォルトは 100)を増やしてみることもできます。
もうひとつの方法は温度、圧力、モル数などの諸条件を少しふらしてみることです。その前後の結果からその付近
で何が起こっているかを知ることができます。

小数点について (for some of European users)
gem 内では小数点として常にピリオドが用いられています。コンマの代わりにピリオドを用いて下さい。