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計算 [2018/04/20 23:48]
koudai [CIFファイルからstructファイルを生成する方法]
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番目までの方法を解説します。 
 + 
 + 
 +====== 結晶構造データの作成 ======
  
 WIEN2kでは結晶構造はcase.structというファイルに保存されます。 WIEN2kでは結晶構造はcase.structというファイルに保存されます。
Line 9: Line 20:
  
 作業ディレクトリTiCを作成し、その中で作業します。 作業ディレクトリTiCを作成し、その中で作業します。
 +作業ディレクトリ名は必ずプロジェクト名と同じにします。
 ターミナルを立ち上げて、次のように入力します。 ターミナルを立ち上げて、次のように入力します。
  
Line 16: Line 28:
 </code> </code>
  
-structファイルの作り方は、プログラムmakestructを使って自分で結晶構造を入力する方法と、結晶構造の統一フォーマットであるCIFファイルを変換する方法の2通りがあります。+structファイルの作り方は、プログラムmakestruct_lapwを使って自分で結晶構造を入力する方法と、結晶構造の統一フォーマットであるCIFファイルを変換する方法の2通りがあります。
 既知の物質を調べる場合、結晶構造は論文か物質科学系のデータベースサイトを参照すると良いでしょう。 既知の物質を調べる場合、結晶構造は論文か物質科学系のデータベースサイトを参照すると良いでしょう。
  
Line 24: Line 36:
  
  
-===== makestructを使う方法 =====+===== makestruct_lapwを使う方法 =====
  
 基本的には質問に答えていくだけで完了します。 基本的には質問に答えていくだけで完了します。
Line 30: Line 42:
  
 <code> <code>
-makestruct+makestruct_lapw
  
 ************************************************ ************************************************
Line 112: Line 124:
  
 実際に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> 
 +$ setrmt_lapw TiC 
 +</code> 
 + 
 +マフィンチン半径が正しく設定された入力ファイルTiC.struct_setrmtというファイルができるので、さきほどの入力ファイルに上書きします。 
 + 
 +<code> 
 +$ mv -f TiC.struct_setrmt TiC.struct 
 +</code> 
 + 
 + 
 +====== 計算設定の初期化 ====== 
 + 
 +SCF計算に入る前に、計算の設定の初期化をおこないます。 
 +ほとんどの場合はデフォルトのままよいですがここではk点数だけを設定しましょう。 
 +k点数を増やせば計算の精度はあがりますが、計算時間もかかるようにります。 
 +最終的ほしい物理量がk点数に対して収束しているか、確認する必要があります。 
 + 
 +<code> 
 +$ init_lapw -b -numk 1000 
 +</code> 
 + 
 +ここでオプション-bはバッチモードで、これをつけることで指定のもの以外はすべてまとめてデフォルトの値に設定されます。 
 +他の設定はオプション-hにより参照できます。 
 + 
 +<code> 
 +$ init_lapw -h 
 +</code> 
 + 
 + 
 +====== SCF計算の実行 ====== 
 + 
 +これで準備が整いましたので、計算を実行します。 
 +プログラムrun_lapwを使用します。 
 + 
 +<code> 
 +$ run_lapw -ec 0.0001 -cc 0.0001 -i 100 
 +</code> 
 + 
 +ここでオプション-ecはエネルギーの収束で、オプション-ccは電荷の収束です。 
 +デフォルトはエネルギーの収束しか見ませんが、電荷の収束も見ておいたほうが無難です。 
 +また、オプション-iで最大何回までSCF計算を行うかを指定できます。 
 + 
 +他のオプションはオプション-hで確認できます。 
 + 
 +<code> 
 +$ run_lapw -h 
 +</code> 
 + 
 +実行後、いろいろなファイルができますが、計算の経過や重要な情報はTiC.scfで確認できます。 
 +今回は金属なのでフェルミエネルギーが出力されています。 
 +半導体であればエネルギーギャップがわかります。 
 + 
 +これで電子状態が得られましたので、これをもとに状態密度やバンド分散などを計算することになります。 
 + 
 + 
 +====== k点数の変更 ====== 
 + 
 +計算の収束を見るために、k点数を変更したいとします。 
 +再びプログラムinit_lapwを走らせると、すべの設定が初期化されますので(今はすべてデフォルトなのでさほど問題ないですが)、k点数だけ変更するためにプログラムx_lapwを使います。 
 + 
 +<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> 
 + 
 +再び計算を実行するには、TiC.broydXを削除してからrun_lapwを実行します。 
 + 
 +<code> 
 +$ rm *.broyd* 
 +$ run_lapw -ec 0.0001 -cc 0.0001 
 +</code> 
 + 
 +、case.broydXを削除せずにrun_lapwを実行した場合は、60秒後に自動で削除してSCF計算がスタートします(その間にジョブのキャンセルが可能です)。 
 + 
 + 
 +====== ジョブの一時停止 ====== 
 + 
 +ジョブを一旦止めたい時には、作業ディレクトリに.stopという名前の空のファイルを置けばよいようになっています。
  
 <code> <code>
-mv 5910091.struct TiC.struct+touch .stop
 </code> </code>
  
wien2k/scf計算.txt · Last modified: 2023/04/23 19:47 by koudai