SLABGEN

スラブの構造を作成しSTATEフォーマットで出力するフォートランプログラム群。 限られた対称性の高い結晶の表面にしか対応していないため、 必要に応じてプログラムを追加する必要があります。 複雑な表面の作成にはより一般的な結晶構造作成ソフトや結晶構造可視化ソフト(Materials studio、Avogadro、VESTAなど)を用いるのが良いでしょう。

コンパイル方法

STATEのユーティリティは以下にあるとする。

${HOME}/STATE/tools

slabgen-20190129.tgzをダウンロードし、ユーティリティのディレクトリで以下のようにファイルを展開すると、SLABGENというディレクトリが得られる。

gzip -c slabgen-20190129.tgz | tar xvf -

あるいは

tar zxvf slabgen-20190129.tgz

SLABGEN以下のディレクトリ構造は以下のようになっている。

README   example/ src/     work/
  • README
  • example: 計算方法(README)と計算方法
  • 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を使ったスラブの作り方の例が記載されている。

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS