スラブの構造を作成しSTATEフォーマットで出力するフォートランプログラム群。 限られた対称性の高い結晶の表面にしか対応していないため、 必要に応じてプログラムを追加する必要があります。 複雑な表面の作成にはより一般的な結晶構造作成ソフトや結晶構造可視化ソフト(Materials studio、Avogadro、VESTAなど)を用いるのが良いでしょう。
STATEのユーティリティは以下にあるとする。
${HOME}/STATE/tools
slabgen-20190101.tgzをダウンロードし、ユーティリティのディレクトリで以下のようにファイルを展開すると、SLABGENというディレクトリが得られる。
gzip -c slabgen-20190101.tgz | tar xvf -
あるいは
tar zxvf slabgen-20190101.tgz
SLABGEN以下のディレクトリ構造は以下のようになっている。
README example/ src/ work/
srcに移動しmakefileを環境に合わせて編集する。例えばgfortranを使用する場合
FC=gfortran FFLAGS=-O2 LD=gfortran LDFLAGS=
を指定する。
make
を実行することでプログラムのビルドが完了する。
プログラムのパスが通っていることを前提とする。パスが設定されていない場合、$HOME/.bashrcで
export PATH=${PATH}:${HOME}/STATE/tools/SLABGEN/src
を追加し
source ~/.bashrc
を実行する。なおホームディレクトリにbash_profileが存在しない場合は上記が機能しない。その場合、
/.bash_profileを作成し、以下を記入する。
if [ -f ~/.bashrc ]; then . ~/.bashrc fi
以下ではexample/以下の例を用いてプログラムの使い方を記述する。
example/cu.in:
Cu 6.83119688 23 14 1 1
1行目:元素名
2行目:バルク結晶の格子定数
3行目:スラブの原子層数
4行目:真空の原子層数(真空層の厚みを等価な原子層数の数で表現)
5行目:表面ユニットセルの次元:プリミティブセルの場合は1 1を、p(2x2)セルの場合は2 2などと入力
fcc(111)スラブを作成する場合、以下を実行
genslab_fcc111
入出力名を聞かれるので、入力ファイル名にはcu.inを出力ファイル名にはcu.outを指定する。
cu.outに格子ベクトル(Supercell Lattice vectors)や表面をz=0、あるいはスラブの中心をz=0にした原子位置がSTATEフォーマットで出力されるので、必要に応じてコピーして使用する。
幾つかのプログラムではQuantum-ESPRESSO用フォーマットでも原子位置が出力可能となっている。その場合
genslab_fcc111 -pw
と-pwというオプションを追加することでatpsというファイルが生成される。 atpsには格子ベクトルのデータ(ibrav, celldm)、および原子位置が記述されている。 またスラブの構造を確認するために元素名に応じたxyz (およびxsf)ファイルも生成される。今の例ではCu23.xyzとCu23.xsfが生成されるのでXCrySDenやVESTAで可視化し確認を行う。
以下のサイトにはVESTAを使ったスラブの作り方の例が記載されている。