はじめに
結晶表面のシミュレーションを行う際、表面を模したクラスター、あるいは周期スラブ(薄膜)を用いるのが一般的です。特に金属表面を取り扱う際には金属的性質を模しやすいことから周期スラブを用いることが一般的になっています。有料のソフトを探し出すとキリがありませんが()、ここではスラブモデルの構造と第一原理計算に必要な入力ファイルの作成方法を幾つか簡単に紹介します。
マニュアル作成
古典的な方法(1)
格子定数を決定した後、表面ユニットセルとスラブ厚から原子座標を手で計算します。初歩的な結晶学の知識が必要になりますが、勉強にはなります。Ashcroft & Merminなどを読めば良いでしょう。求めた格子ベクトル(周期系DFTコードの場合)と座標を入力ファイルに自分で書き込みます。単位に注意しましょう。
古典的な方法(2)
自分で求めた座標を元にプログラムを書いてプログラムのフォーマットに合わせてスラブの格子ベクトルと座標を生成する。
プログラムの利用
例えば以下に示すプログラムを利用してスラブの座標を得ることができます。
VESTA
以下のチュートリアルが参考になります。
Burai
BuraiはQuantum-ESPRESSOのためのGUIで、無償で利用が可能です。スラブモデルだけではなくスーパーセルの作成機能もあります。
macOS Sonoma(Apple M3)で最新のJavaを利用すると起動すらしませんでした。
CatKit Slab Generator
CatKit Slab Generator
SUNCATで開発されているウェブインターフェース。原子であれば吸着系の構造も作成してくれるようです。
ASE
Atomic simulation environment (ASE)を利用してスラブモデルを作成することが可能です。Bulding things/Surfacesや例を参考にすると良いでしょう。
MateriAppsページにあるASEを用いた表面構造の作成も参考になります。
pymatgen
Materials Project WorkshopのWorking with Surfaces and Interfacesが参考になります。
Winmostar
WinmostarはWindows上で動作する有料のソフトウェアです。リーズナブルな価格で高機能です。私はメインでMacを使っているのであまり詳しくはないですが。
slabgen
私が書いたスラブモデル作成用fortranプログラム。単純な構造の単原子固体の表面に対応。必要に応じて計算できる表面を追加中。プログラムはgitlabより以下のコマンドを実行することによりダウンロード可能です。
git clone https://gitlab.com/ikutaro/slabgen.git
プログラムをビルドするためにはソースディレクトリに移動
cd slabgen/src
makefile
のコンパイラを編集します。以下はgfortranの例です。
FC=gfortran
FFLAGS=-O2
LD=gfortran
LDFLAGS=
その後make
を実行します。
make
slagenコマンド群へのコマンドサーチパスを設定した後にslabgen/example
以下のREADME.md
を読んでプログラムを使ってみましょう。使い方はリンクも参照して下さい。計算可能な表面はslabgen/README.md
を参照して下さい。