binplotを使用した二元状態図¶
Thermo-Calc TDB ファイルを使用して二元状態図を計算する手順を説明します。
Al-Zn (S. Mey, 1993)¶
Al-Zn 状態図には、FCC相の溶解度ギャップが含まれています。
参考文献:S. an Mey, Zeitschrift für Metallkunde 84(7) (1993) 451-455.
まず必要なライブラリを読み込みます。マジック変数 %matplotlib inline
は Jupyter ノートブックでのみ使用します。(https://ipython.readthedocs.io/en/stable/interactive/magics.html)
[1]:
%matplotlib inline
import matplotlib.pyplot as plt
from pycalphad import Database, binplot
import pycalphad.variables as v
binplot¶
状態図は binplot
を使用して計算することができます。現在のバージョンでは、不変反応 (二元状態図上の三相領域) は自動的に検出されないため描画されません。
binplot
を実行する際、4つの引数を指定する必要があります。
binplot(database, components, phases, conditions)
1. database
: TDB ファイル¶
TDB ファイル(Thermo-Calc)は現在の作業ディレクトリに配置してください。Jupyter ノートブックを使用している場合、作業ディレクトリはそのノートブックが保存されているディレクトリです。作業ディレクトリを確認するには、次のコマンドを実行します。
import os
print(os.path.abspath(os.curdir))
TDBファイルは文献等で入手することができます。Thermodynamic DataBase Database (TDBDB) には利用可能な多くのデータベースが掲載されており、元の論文やTDBファイルへのリンクもあります。
この例ではデータベースをalzn_mey.tdb
としています。
[2]:
# Load database
db_alzn = Database('alzn_mey.tdb')
2. component
: 元素のリスト¶
次に計算に用いる元素のリストを指定します。この例ではアルミニウム(AL)、亜鉛(ZN)、空孔(VA)を指定しています。
[3]:
comp_alzn = ['AL', 'ZN', 'VA']
3. phases
: 相のリスト¶
次に計算で考慮する相を選択します。この例では考慮する相をLIQUID
, FCC_A1
, HCP_A3
としています。
[4]:
# choose the phases that will be considered
phases_alzn = ['LIQUID', 'FCC_A1', 'HCP_A3']
alzn_mey.tdb
にどのような相が含まれているか確かめるには、メモ帳などのテキストエディタで alzn_mey.tdb
を開き、PHASE
で始まっている行を確認してください。LinuxかMacを使っている場合には、以下のようにしても相の情報が得られます。
[5]:
!grep PHASE alzn_mey.tdb
$ PARAMETERS FOR LIQUID PHASE
PHASE LIQUID % 1 1.0 !
PHASE FCC_A1 % 1 1.0 !
PHASE HCP_A3 % 1 1.0 !
alzn_mey.tdb
にはLIQUID、FCC_A1、HCP_A3相が含まれています。これらの相をphases_alzn
として取り込むには以下のようにします。
4. conditions
: 状態変数¶
状態図を作成する際に、独立に自由に変えられる変数(温度 T ,圧力 P ,成分の濃度等)を状態変数といい、その数を系の自由度と呼びます。平衡計算を行うには自由度がゼロになるまで設定する必要があります。温度は K(ケルビン),圧力は Pa(パスカル),全原子数 N は mol(モル)を単位としています。濃度にはモル分率 X(『el』) や質量分率 W(『el』) が用いられます。ここで 『el』 には元素名を書きます。
ここでは以下の状態変数について指定します。
v.X(『ZN』):Znの組成
v.T:温度
v.P:圧力
v.N:モル数
状態変数 : 数値の組み合わせで指定します。数値にはスカラー、一次元配列、範囲を指定する(start, stop, step)
が使用できます。
以下の例では、
Znの組成を
(0,1,0.02)
とし、0から1までの範囲を0.02ステップ温度は
(300, 1000, 10)
とし、300 Kから1000 Kまで10 Kステップ圧力は101325 Pa(1気圧)
全原子数として1モル
が指定されています。
[6]:
cond = {v.X('ZN'):(0,1,0.02), v.T: (300, 1000, 10), v.P:101325, v.N: 1}
binplot
で状態図を作図します。データベース、元素、相、状態変数の順に指定しています。
[7]:
# Compute the phase diagram and plot it
binplot(db_alzn, comp_alzn , phases_alzn, cond)
plt.show()

課題¶
Moodle上で提出する。
JupyterNotebook形式(*.ipynb)で提出する。
学籍番号、氏名を忘れずに記載する。
コードを実装するにあたって考えた過程や工夫したポイント、動作確認の方法等を記述してあれば評価時に考慮します。
moodleで配布した講義資料内にはAl-Mg_Zhong.tdb
、NI_AL_DUPIN_2001.TDB
、alfe_sei.TDB
、nbre_liu.tdb
が含まれている。
Al-Mg_Zhong.tdb
:Al-Mg2元系の熱力学データベース
NI_AL_DUPIN_2001.TDB
:Ni-Al2元系の熱力学データベース
alfe_sei.TDB
:Al-Fe2元系の熱力学データベース
nbre_liu.tdb
:Nb-Re2元系の熱力学データベース
各熱力学データベースを読み込み2元系状態図を作成せよ。温度範囲の下限は室温(300 K)、上限は全組成領域で液相が安定になる任意の温度とする。
Al-Mg (Y. Zhong, 2005)¶
参考文献:Y. Zhong, M. Yang, Z.-K. Liu, CALPHAD 29 (2005) 303-311 doi:10.1016/j.calphad.2005.08.004
Al-Ni (Dupin, 2001)¶
Components and conditions can also be stored as variables and passed to binplot.
Dupin, I. Ansara, B. Sundman, CALPHAD 25(2) (2001) 279-298 doi:10.1016/S0364-5916(01)00049-9
Al-Fe (M. Seiersten, 1991)¶
Removing tielines
Nb-Re (Liu, 2013)¶
X.L. Liu, C.Z. Hargather, Z.-K. Liu, CALPHAD 41 (2013) 119-127 doi:10.1016/j.calphad.2013.02.006
[ ]: