SLABGEN †スラブの構造を作成しSTATEフォーマットで出力するフォートランプログラム群。 限られた対称性の高い結晶の表面にしか対応していないため、 必要に応じてプログラムを追加する必要があります。 複雑な表面の作成にはより一般的な結晶構造作成ソフトや結晶構造可視化ソフト(Materials studio、Avogadro、VESTAなど)を用いるのが良いでしょう。 ソースの入手 †STATEのユーティリティは以下に置くものとします。 ${HOME}/STATE/tools 最新版のソースはGitLabのリポジトリから以下のようにクローンします。 git clone https://gitlab.com/ikutaro/slabgen.git SLABGEN クローンするのが困難、あるいは無理だった場合、リポジトリからソースファイルをダウンロードしてユーティリティのディレクトリで以下のようにファイルを展開することで、SLABGENというディレクトリが得られます。 gzip -c slabgen-master.tar.gz | tar xvf - ;mv slabgen-master SLABGEN あるいは tar zxvf slabgen-master.tgz; mv slabgen-master SLABGEN を実行して展開します。 ビルド †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 実行例: Cu(111) †以下ではexample/以下の例を用いてプログラムの使い方を記述します。 Cu 6.83119688 23 14 1 1 1行目:元素名 genslab_fcc111 入出力ファイル名を聞かれるので、入力ファイル名にはcu.inを出力ファイル名にはcu.outを指定します。
cu.outに格子ベクトル(Supercell Lattice vectors)や表面をz=0、あるいはスラブの中心をz=0にした原子位置がSTATEフォーマットで出力されるので、必要に応じてコピーして使用します。 genslab_fcc111 -pw と-pwというオプションを追加することでatpsというファイルが生成されます。 atpsには格子ベクトルのデータ(ibrav, celldm)、および原子位置が記述されている。 またスラブの構造を確認するために元素名に応じたxyz (およびxsf)ファイルも生成されます。今の例ではCu23.xyzとCu23.xsfが生成されるのでXCrySDenやVESTAで可視化し確認を行う。 実行例: Graphene †グラフェンの構造を作成する場合は以下の入力ファイルとgenslab_grを使用します。 入力ファイル: gr.in C 4.658169680044d0 37.794522492515405 5 5 1行目:元素名 genslab_gr QEフォーマットの構造を生成したい場合、 genslab_gr -pw を実行します。 実行例: Armchair graphene nanoribbon †アームチェアグラフェンナノリボンを作成する場合、genagnrを使用します。 入力ファイル: gnr.in C 4.6553909370d0 18.897261246257703 1 5 1行目: 元素名 genagnr あるいは genagnr -pw を実行します。さらに端を水素で終端する場合 genagnr -h-term と"-h-term"をオプションとして追加し実行します。現在のところ端の炭素原子あたり一つの水素原子で終端することのみを想定しています。 実行例: RuO2(110) †Rutile(110)表面を作成する場合、genslab_rutile110を使用します。 入力ファイル RuO2 8.486574435396852D0 5.870247573118257D0 0.30478D0 3 6 1 1 1行目: 化合物名(実際にはRutile構造の化学式はMO2と仮定してMを認識して構造のファイルを作成します) genslab_rutile110 を実行します。Quantum-ESPRESSOフォーマットの構造を作成するには genslab_rutile110 -pw を実行します。 M_cus というキーワードを追加するとOが不足した、いわゆるM_cus構造が、 O_cus というキーワードを追加するとOが過剰の、いわゆるO_cus構造が出力されます。 その他の情報 †以下のサイトにはVESTAを使ったスラブの作り方の例が記載されています。 以下のサイトではpymatgenを利用した表面と界面の作り方が記述されています。 Buraiを使うことでスラブを作成することもできます。スラブはユニットセルの中心に作成されているようなので、ESM計算の際には注意が必要だと思います。 |