電子状態計算用結晶モデリングツール XtalEdit (まてりあ 43(5) 2004 に

電子状態計算用結晶モデリングツール XtalEdit (まてりあ 43(5) 2004 に掲載予定)
(株)日本総合研究所 空剛史, 後藤隆一,奥野幸洋
大阪大学理学研究科 小谷岳生
アリゾナ州立大学 Mark van Schilfgaarde
連絡先:[email protected]
近年,無償のものから高価なものまで,様々な固体電子状態(周期境界条件)計算のプ
ログラムが入手可能になり[1],材料の研究開発においても利用される例が増えつつあ
る. しかし,それらを用いるには乗り越えるべき多くの難点があり[2],まだまだ単純な
ブラックボックスとして利用できるようになっていないのが現状である.それらの難点
のうち,まず問題になるのが「結晶モデリング」である.価値ある情報を取り出すには,
実験で得た結晶構造データで計算するのみでなく,さまざまな人工的な「結晶モデル」
を作り,それらに対する計算結果を比較検討する必要がある.例えば,結晶中に不純物
を導入した状態を考えたり,ある特定原子のみを変位させたり,あるいは表面や界面を
つくって計算する必要がある(このような場合,大きい周期境界条件(SuperCell)が使
われる.たとえば,固体 Si では Si 原子 64 個からなる SuperCell を考え,そのうち原
子1個を不純物に置き換えたりする).
XtalEdit は,この結晶モデリングを容易にするためのソフトである.また現時点で
は AkaiKKR, ABINIT, LMF, Abred 等[1]の計算用入力ファイルの import/export をサ
ポートしている.XtalEdit は従来の同種のツールにない以下のような特徴をもってい
る.
1. 結晶モデルをノートや教科書にあるような数式を用いて代数的に記述できる(以下
csy1 形式と呼ぶ).そのため,結晶を変形したり,不純物を入れたりなどの操作が
容易であるし確実である.XtalEdit の「文法」は便利なスクリプト言語 Python[3]
を「拡張」したものであり,非常にフレキシブルである.
2. 原子位置が指定されていれば空間群の生成元を計算できる.一方,生成元が指定さ
れていれば,等価な原子位置を再現することなどもできる.また全ての空間群に対
するワイコフ位置のテンプレートが添付されている.これらの機能により,空間群
に関して大した知識がなくても,それを操ることが可能である.
3. 簡便な可視化ツールが用意されている.たとえば ABINIT や AkaiKKR の入力ファ
イルを import し,それを描画したりも容易である.
4. Supercell ベクトルを指定して,もとのセルからスーパーセルを作る機能がある.
原子位置の座標変換もできる.
5. さらに,その csy1 を簡便に書くための色々なツールやサンプル,ヒストリ機能等の
ユーザー環境が用意してある.
まだ機能不足の点も多いが現機能だけでもかなりのことができるし,多くの場合にお
いて他のソフトより優位な点も多いはずである.ワープロでなく TeX のようなソフト
である.多くの人に利用してもらいそのフィードバックを受けよりよいものにしていき
たいと考えている.ダウンロードはホームページ[4]から可能である.なお XtalEdit に
開発に当たっては,(株)日本総研および芝野真次マネージャーから多大な支援を受けて
います。(次ページに XtalEdit 操作法あり)
[1]http://www.geocities.co.jp/Technopolis/4765/INTRO/yogo.html#EK1
[2]http://sham.phys.sci.osaka-u.ac.jp/~kkr/DOC/cmdtxt1.pdf の P.3―4.
[3] http://www.python.jp/
[4].XtalEdit はオープンソースのフリーウエアである.
http://sham.phys.sci.osaka-u.ac.jp/~kkr/XtalEdit/
なお残念ながら共著者に加わってもらえなかったが福本一郎氏(日本総研)が多大な寄与をされたことを明記しておきま
す.
XtalEdit の GUI は EditWindow, ResultWindow, Button からなる.具体的な操作は,以
下の手順 A.B.C.の単純な繰り返しで行える.
A. EditWindow に csy1 形式で結晶を記述する.
B. ボタンを選んで押す.すると EditWindow の内容がボタンで指定されたプログラムモ
ジュールに送られ,その結果が EditWindow と ResultWindow に送り返される.同時
にモジュールは外部の描画プログラムを起動したりすることもできる.例えば,空間
群のボタンなら,空間群の生成元が付加され EditWindow に書き加えられる.あるい
は,SuperCell の基底ベクトルを csy1 ファイルに書き加えてから,SuperCell ボタン
を押すと SuperCell 化された csy1 ファイルが EditWindow に上書きされる.
C. 再度 EditWindow 内の内容を Edit しさらに B を繰り返す.
ボタンセッティングなどはユーザーが自由にカタマイズできる(GUI 部分とモジュール
は完全に独立している). 各モジュールは python で書かれており自分用のモジュールを
書いたり,fortran や他の描画ツールなどとの結合も容易である.