User Tools

Site Tools


wien2k:scf計算

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
wien2k:scf計算 [2017/10/28 00:16]
koudai
wien2k:scf計算 [2020/03/31 14:48]
koudai [k点数の変更]
Line 3: Line 3:
   * [[https://ja.wikipedia.org/wiki/%E7%82%AD%E5%8C%96%E3%83%81%E3%82%BF%E3%83%B3|炭化チタン - Wikipedia]]   * [[https://ja.wikipedia.org/wiki/%E7%82%AD%E5%8C%96%E3%83%81%E3%82%BF%E3%83%B3|炭化チタン - Wikipedia]]
  
-====== 準備 ======+第一原理計算の基本的な流れは 
 + 
 +  - 結晶構造データの用意 
 +  - 計算方法の設定 
 +  - 実際の電子状態計算(self-consistent field計算、SCF計算) 
 +  - 各種物理量の計算 
 + 
 +となります。 
 +ここでは3番目までの方法を解説します。 
 + 
 + 
 + 
 +====== SCF計算 ====== 
 + 
 +===== 結晶構造データの作成 =====
  
 WIEN2kでは結晶構造はcase.structというファイルに保存されます。 WIEN2kでは結晶構造はcase.structというファイルに保存されます。
Line 9: Line 23:
  
 作業ディレクトリTiCを作成し、その中で作業します。 作業ディレクトリTiCを作成し、その中で作業します。
 +作業ディレクトリ名は必ずプロジェクト名と同じにします。
 ターミナルを立ち上げて、次のように入力します。 ターミナルを立ち上げて、次のように入力します。
  
Line 16: Line 31:
 </code> </code>
  
-structファイルの作り方は、プログラムmakestructを使って自分で結晶構造を入力する方法と、結晶構造の統一フォーマットであるCIFファイルを変換する方法の2通りがあります。+structファイルの作り方は、プログラムmakestruct_lapwを使って自分で結晶構造を入力する方法と、結晶構造の統一フォーマットであるCIFファイルを変換する方法の2通りがあります。
 既知の物質を調べる場合、結晶構造は論文か物質科学系のデータベースサイトを参照すると良いでしょう。 既知の物質を調べる場合、結晶構造は論文か物質科学系のデータベースサイトを参照すると良いでしょう。
  
Line 24: Line 39:
  
  
-===== makestructを使う方法 =====+==== makestruct_lapwを使う方法 ====
  
 基本的には質問に答えていくだけで完了します。 基本的には質問に答えていくだけで完了します。
-SPHERE RadIIやRMTの設定はとりあえず無視で+SPHERE RadIIやRMTの設定はとりあえずデフォルトのままにします
  
 <code> <code>
-makestruct+makestruct_lapw
  
 ************************************************ ************************************************
Line 102: Line 117:
 </code> </code>
  
-init.structというファイルができます(この他にもいろいろできますが、今は無視)ので、適当なに変更しておきます。+init.structというファイルを (プロジェクト).struct に変更しておきます。
  
 <code> <code>
Line 109: Line 124:
  
  
-===== CIFファイルからstructファイルを生成する方法 =====+==== CIFファイルからstructファイルを生成する方法 ====
  
-実際にWIEN2kを使った第一原理計算を行うときは、対話形式でstructファイルを作成するよりもCIFファイルから生成することが多くなると思います。 +実際にWIEN2kを使った第一原理計算を行うときは、対話形式でstructファイルを作成するよりも、結晶構造データの統一フォーマットであるCIFファイルから生成することが多くなると思います。 
-上記のサイトからCIFファイルをダウンロードし、作業ディレクトリに保存します。+上記のサイトからCIFファイルをダウンロードし、ファイル名をTiC.cifに変更して作業ディレクトリに保存します。
  
 用意ができたら、プログラムcif2structを使ってstructファイルに変換します。 用意ができたら、プログラムcif2structを使ってstructファイルに変換します。
  
 <code> <code>
-cif2struct 5910091.cif+cif2struct TiC.cif
 </code> </code>
  
-5910091.structというファイルができますので適当な名前に変更しておきます。+これで入力ファイルTiC.structができます。 
 +ただしこのままだとマフィンチン半径$R_{\rm MT}$が正く設定されいないので計算します。
  
 <code> <code>
-mv 5910091.struct TiC.struct+setrmt_lapw TiC
 </code> </code>
  
 +マフィンチン半径が正しく設定された入力ファイルTiC.struct_setrmtというファイルができるので、さきほどの入力ファイルに上書きします。
 +
 +<code>
 +$ mv -f TiC.struct_setrmt TiC.struct
 +</code>
 +
 +
 +===== 計算の設定の初期化 =====
 +
 +SCF計算に入る前に、計算の設定の初期化をおこないます。
 +ここではk点数とRKmaxを設定しましょう。
 +k点数やRKmaxを増やせば計算の精度はあがりますが、計算時間もかかるようになります。
 +最終的にほしい物理量がこれらのユーザー側が設定した量に対して収束しているか確認する必要があります。
 +
 +なお、RKmaxは波動関数のカットオフを決めます。原子の種類によって必要な大きさが異なるので、選び方は http://susi.theochem.tuwien.ac.at/reg_user/faq/rkmax.html を参照してください。
 +
 +ここではk点数を1000に、RKmaxを7.5にしてみましょう。
 +
 +<code>
 +$ init_lapw -b -numk 1000 -rkmax 7.5
 +</code>
 +
 +ここでフラグ -b はバッチモードで、これをつけることで指定のもの以外はすべてまとめてデフォルトの値に設定されます。
 +
 +オプションの意味は次のとおりです
 +
 +^オプション^初期値^説明^
 +|-rkmax|7.0|RKmax|
 +|-numk|1000|k点数|
 +
 +
 +他の設定はフラグ-hにより参照できます。
 +
 +<code>
 +$ init_lapw -h
 +</code>
 +
 +
 +===== SCF計算の実行 =====
 +
 +これで準備が整いましたので計算を実行します。
 +run_lapw を使用します。
 +
 +<code>
 +$ run_lapw -cc 0.0001 -ec 0.00001 -i 100
 +</code>
 +
 +^オプション^初期値^説明^
 +|-cc|なし|電荷の収束。単位はe。指定しなければ電荷の収束はチェックされないが、見ておいたほうが無難|
 +|-ec|0.0001|エネルギーの収束。単位はRy。デフォルトだと少し荒い|
 +|-i|40|SCF計算を行うときの、繰り返し回数の最大値。40回だと足りないこともあるので少し多めに。|
 +
 +他のオプションはフラグ-hで確認できます。
 +
 +<code>
 +$ run_lapw -h
 +</code>
 +
 +実行後、いろいろなファイルができますが、計算の経過や重要な情報は TiC.scf で確認できます。
 +
 +  $ grep ":ENE" TiC.scf     # 全エネルギー
 +  $ grep ":FER" TiC.scf     # フェルミ準位。単位は Ry です。
 +  $ grep ":GAP" TiC.scf     # エネルギーギャップ。金属の場合は0になります。
 +
 +これで電子状態が得られましたので、これをもとに状態密度やバンド分散などを計算することになります。
 +
 +
 +====== k点数の変更 ======
 +
 +計算の収束を見るために、k点数を変更したいとします。
 +再び init_lapw を走らせると全ての設定が初期化されますので、k点数だけ変更するために x_lapw kgen を使います。
 +
 +<code>
 +$ x_lapw kgen
 +  NUMBER OF K-POINTS IN WHOLE CELL: (0 allows to specify 3 divisions of G)
 +2000
 + length of reciprocal lattice vectors:   1.342   1.342   1.342  12.599  12.599  12.599
 +          72  k-points generated, ndiv=          12          12          12
 +KGEN ENDS
 +0.0u 0.0s 0:05.99 0.6% 0+0k 0+304io 0pf+0w
 +</code>
 +
 +再び計算を実行するには、フラグ-NIをつけて run_lapw を実行します。
 +<code>
 +$ run_lapw -cc 0.0001 -ec 0.00001 -i 100 -NI
 +</code>
 +
 +あるいは計算履歴を削除して
 +<code>
 +$ rm *.broyd*
 +$ run_lapw -cc 0.0001 -ec 0.00001 -i 100 -NI
 +</code>
 +でも可能です。
 +
 +全エネルギーやフェルミ準位(半導体の場合はエネルギーギャップの大きさ)が、k点数に対して収束しているか必ず確認しましょう。
 +
 +
 +
 +
 +
 +
 +====== SCF計算結果の保存 ======
 +
 +計算の入出力ファイルを残しておきたい場合は save_lapw を使用します。
 +例えばk点を増やして計算する際に、k点数を1000で計算したときの入力ファイルや結果を k1000 という名前のディレクトリに保存しておきたい場合は次のようにします。
 +
 +<code>
 +$ save_lapw -d k1000
 +</code>
 +
 +また、この保存したファイルを復活させる場合は次のようにします。-fは同じ名前のファイルがあった時に、強制的に上書きするオプションです。
 +<code>
 +$ restore_lapw -d k1000 -f
 +</code>
 +====== ジョブの一時停止 ======
 +
 +ジョブを一旦止めたい時には、作業ディレクトリに.stopという名前の空のファイルを置けばよいようになっています。
 +
 +<code>
 +$ touch .stop
 +</code>
 +
 +この空のファイルは、ジョブが止まった後に自動的に削除されます。
 +====== プログラム名について ======
 +
 +プログラム名の最後に _lapw をつけていましたが、これを省略しても良いようになっています。
 +例えば x_lapw は単に x だけで実行可能です。
wien2k/scf計算.txt · Last modified: 2023/04/23 19:47 by koudai