OpenCalphad を使ってみる2018年10月31日 | |
はじめにOpenCalphad を使ってみる。 OpenCalphad って?CALPHAD (CALculation of PHAse Diagrams) とは、物質の状態図 (phase diagram) を計算で求めること、あるいはその方法のことで、OpenCalphad はそれを行うためのオープンソースのソフトウェアである。 環境
セットアップOpenCalphad のパッケージは こちら からダウンロードできる。実行のためにはまずコンパイルする必要がある。コンパイルには gfortran が必要である。 $ unzip opencalphad-version5.zip $ cd opencalphad-master/ $ make -f Makefile-simple うまく行けば "oc5A" というファイルができる。 OpenCalphad を使ってみる起動とコマンド入力ここでは MSYS2 での利用を想定する。コンパイルされた実行ファイル (ここでは "oc3B.exe") を実行すると、OpenCalpha が起動する。 $ ./oc5A Open Calphad (OC) software version 5.004 , linked 2018-10-31 with command line monitor version 34 This program is available with a GNU General Public License. It includes the General Thermodynamic Package, version GTP-3.21, Hillert's equilibrium calculation algorithm version HMS-2.11, step/map/plot software version SMP-2.21 for GNUPLOT graphics, numerical routines extracted from from LAPACK and BLAS and the assessment procedure uses LMDIF from ANL (Argonne, USA) --->OC5: "--->OC5:" はプロンプトで、ここでコマンドを入力する。"?" を入力すると入力可能なコマンドが表示される。 --->OC5:? ABOUT EXIT MAP SELECT AMEND FIN NEW SET BACK HELP OPTIMIZE SHOW CALCULATE HPCALC PLOT STEP DEBUG INFORMATION QUIT DELETE LIST READ ENTER MACRO SAVE まず、終了は "EXIT" か "QUIT" あるいは "FIN" である。 --->OC5:exit Are you sure? /N/: y STOP Ha en bra dag 小文字で入力してよい。また、短縮してもよい。 --->OC5:q Are you sure? /N/: y STOP Have a nice day ただし、他のコマンドと区別できる限りで短縮できる。"e" だと "ENTER" と "EXIT" のどちらか確定できないので不可。 --->OC5:e Ambiguous command, available commands are: ABOUT EXIT MAP SELECT AMEND FIN NEW SET BACK HELP OPTIMIZE SHOW CALCULATE HPCALC PLOT STEP DEBUG INFORMATION QUIT DELETE LIST READ ENTER MACRO SAVE help コマンドでヘルプが表示される。 --->OC5:help fin >>> We should open a help window to display text: 1785 1790 %\section{Fin } Terminate the OC software in French, Au revoir. %=================================================================== TDB ファイルの読み込み計算には TDB ファイル (もともとは Thermo-Calc 用の熱力学データベースフォーマット) が必要である。OpenCalphad ディレクトリの macros ディレクトリの中にある。
TDB ファイルを読み込むには、OpenCalphad を起動するディレクトリにファイルをもってきておく。OpenCalphad のディレクトリはごちゃごちゃしているので、まっさらな作業ディレクトリで仕事をしたいところではあるが、OpenCalphad のディレクトリ ("ochelp.hlp" があるディレクトリ) 以外で起動するとヘルプが使えなくなってしまうようである。とりあえずここではヘルプはあきらめる。 $ mkdir work $ cp ../macros/steel1.TDB . $ ../oc5A ... --->OC5:r t steel1 Database has 6 elements: C CR FE MO SI V Give the elements to select, finish with empty line Select elements /all/:fe c Select elements /no more/: Selected 2 elements: FE C 3E reading a TDB file There are 9 bibliographic references REF283 'Alan Dinsdale, SGTE Data for Pure Elements, Calphad Vol 15(1991) p 317-425, also in NPL Report DMA(A)195 Rev. August 1990' REF190 'P. Gustafson, Scan. J. Metall. vol 14, (1985) p 259-267 TRITA 0237 (1984); C-FE' REF281 'Alan Dinsdale, SGTE Data for Pure Elements, NPL Report DMA(A)195 September 1989' REF267 'W. Huang, Metall. Trans. Vol 21A(1990) p 2115-2123, TRITA -MAC 411 (Rev 1989); C-FE-MN' REF319 'H. Du and M. Hillert, revision; C-Fe-N' REF113 'J-O Andersson, Calphad Vol 12 (1988), p 9-23 TRITA 0321 (1986); C-FE-MO' REF102 'J-O Andersson, Met. Trans A, Vol 19A, (1988) p 627-636 TRITA 0207 (1986); C-CR-FE' REF322 'Byeong-Joo Lee, unpublished revision (1991); C-Cr-Fe-Ni' REF275 'W. Huang, TRITA-MAC 441 (1990), Fe-Mn-V-C *' "r t steel1" は "read tdb steel1" の短縮形で、TDB ファイルを読み込むコマンドである。成分の入力を促されるので、ここでは "fe c" (Fe と C) を入力している。それ以上入力が必要ない場合は、そのまま Enter を入力する。 1点平衡計算1点平衡計算 (温度、圧力、組成を指定する計算) は以下のように行う。 --->OC5:set c t=1000 p=1e5 n=1 x(c)=0.2 --->OC5:c e 3Y Constitution of metastable phases set Gridmin: 233 points 0.00E+00 s and 0 clockcycles, T= 1000.00 Equilibrium calculation 14 its, 0.0000E+00 s and 2 clockcycles --->OC5:l ,, Output for equilibrium: 1, DEFAULT_EQUILIBRIUM 2018.10.31 Conditions .................................................: 1:T=1000, 2:P=100000, 3:N=1, 4:X(C)=0.2 Degrees of freedom are 0 Some global data, reference state SER ......................: T= 1000.00 K ( 726.85 C), P= 1.0000E+05 Pa, V= 6.9246E-06 m3 N= 1.0000E+00 moles, B= 4.7080E+01 g, RT= 8.3145E+03 J/mol GS= -3.63539E+04 J, GS/N= -3.6354E+04 J/mol, HS= 2.2171E+04 J, S= 585.247 J/K Some data for components ...................................: Component name Moles Mole-fr Chem.pot/RT Activities Ref.state C 2.0000E-01 0.20000 -1.5224E+00 2.1818E-01 SER (default) FE 8.0000E-01 0.80000 -5.0848E+00 6.1900E-03 SER (default) Some data for phases .......................................: Name Status Moles Volume Form.Units Cmp/FU dGm/RT Comp: BCC_A2.................. E 8.006E-01 5.85E-06 8.00E-01 1.00 0.00E+00 X: FE 9.99278E-01 C 7.21982E-04 GRAPHITE................ E 1.994E-01 1.08E-06 1.99E-01 1.00 0.00E+00 X: C 1.00000E+00 FE 0.00000E+00 "set c" は "set condition" の短縮形で、そのあと温度、圧力、モル数、C の組成を指定している。x(c) はモル分率である。質量分率にするには w(c) とすればよい。w%(c) だと wt% になる。 "c e" は "calculate equilibrium" の短縮形で、平衡計算を実行する。 "l" は "list" の短縮形で、続くカンマ 2 つは入力の省略である。結果を表示している。 状態図の計算--->OC5:set ax 1 x(c) 0 1 , --->OC5:set ax 2 t 500 2000 25 --->OC5:map ... "set ax" は "set axis" の略で、状態図計算のための独立変数を設定する。"map" で状態図計算を行う。 状態図の表示は次のように行う。 --->OC5:plot Horizontal axis variable /X(*,C)/: Vertical axis variable /T/: Note: give only one option per line! Options? /RENDER/: xr Possible answers are: APPEND GRAPHICS_FORMAT POSITION_OF_KEYS SCALE_RANGES AXIS_LABELS LOGSCALE QUIT TEXT FONT_AND_COLOR MANIPULATE_LINES RATIOS_XY TIE_LINES GIBBS_TRIANGLE OUTPUT_FILE RENDER TITLE Options? /RENDER/: sr Answer not understood, returning to upper level No such plot option --->OC5:plot Horizontal axis variable /X(*,C)/: Vertical axis variable /T/: Note: give only one option per line! Options? /RENDER/: sc For X or Y axis? /X/: x Default limits /N/: Low limit /0/: High limit /1/: 0.2 Note: give only one option per line! Options? /RENDER/: Limits set by user for x: 0.000000E+00 2.000000E-01 plot data used: 4 206 out of 1000 10000 Gnuplot command file: ocgnu.plt "plot" で状態図のプロットを行う。途中の "Options?" で "sc" と入力しているのは "scale_ranges" の短縮形で、ここでは X 方向 (C の組成方向) の表示範囲を設定している。"Options?" で "render" (デフォルトなので、Enter を入れればよい) を入力すると、gnuplot によって下図のようなグラフが表示される。 ![]() メッセージに出ているように、"ocgnu.dat" という名前でプロット用のデータが出力されているので、計算された状態図を値として参照することができる。 マクロ上記で入力したようなコマンドを、マクロという形でまとめて書いておくことができる。ファイルの拡張子は ".OCM" である。たとえば次のようなものである。 fe-c-map.OCM @$ Calculate Fe-C phase diagram set echo r t steel1 fe c set c t=1000 p=1e5 n=1 x(c)=0.2 c e l ,, @& set ax 1 x(c) 0 1 , set ax 2 t 500 2000 25 map @& plot x(*,c) t sc x n 0 0.2 render @$set inter "@$" の行はコメントである。"@&" では Enter が入力されるまで実行が一時停止される。その他はコマンドが羅列されているだけである。最初の "set echo" は入力されたコマンドを表示するためのものである (コメントも表示される)。最後の "set inter" は "set interactive" の短縮形で、OpenCalphad のコマンド入力状態で終了するためのものである。これがない場合は入力不足のエラーで終了する。そのまま終了してよい場合は "quit y" で終わらせるのがきれいかも。 マクロを実行するには "macro" コマンドを用いる。 --->OC5:macro fe-c-map マクロの書き方やその他の例については、OpenCalphad ディレクトリの macros ディレクトリの中にある ".OCM" ファイルが参考になる。 参考文献
古い | |
PENGUINITIS |