binplotを使用した二元状態図

 Thermo-Calc TDB ファイルを使用して二元状態図を計算する手順を説明します。

Al-Zn (S. Mey, 1993)

 Al-Zn 状態図には、FCC相の溶解度ギャップが含まれています。

a52a821acd194f7bb79863129608e7a3

 参考文献: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()
_images/BinaryExamples_20_0.png

課題

  • Moodle上で提出する。

  • JupyterNotebook形式(*.ipynb)で提出する。

  • 学籍番号、氏名を忘れずに記載する。

  • コードを実装するにあたって考えた過程や工夫したポイント、動作確認の方法等を記述してあれば評価時に考慮します。

moodleで配布した講義資料内にはAl-Mg_Zhong.tdbNI_AL_DUPIN_2001.TDBalfe_sei.TDBnbre_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)

894a41d08f4a47f3baca2070e83e1a60

 参考文献:Y. Zhong, M. Yang, Z.-K. Liu, CALPHAD 29 (2005) 303-311 doi:10.1016/j.calphad.2005.08.004

Al-Ni (Dupin, 2001)

c4eefc38a1294debb2524bea5b236156

Components and conditions can also be stored as variables and passed to binplot.

  1. Dupin, I. Ansara, B. Sundman, CALPHAD 25(2) (2001) 279-298 doi:10.1016/S0364-5916(01)00049-9

Al-Fe (M. Seiersten, 1991)

9dce60828c4542e1bc6de9fa3c2b8642

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

[ ]: