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計算 [2019/02/13 15:20]
koudai [makestruct_lapwを使う方法]
wien2k:scf計算 [2021/07/14 21:47]
koudai
Line 14: Line 14:
  
  
-====== 結晶構造データの作成 ======+ 
 +====== SCF計算 ====== 
 + 
 +===== 結晶構造データの作成 =====
  
 WIEN2kでは結晶構造はcase.structというファイルに保存されます。 WIEN2kでは結晶構造はcase.structというファイルに保存されます。
Line 36: Line 39:
  
  
-===== makestruct_lapwを使う方法 =====+==== makestruct_lapwを使う方法 ====
  
 基本的には質問に答えていくだけで完了します。 基本的には質問に答えていくだけで完了します。
Line 121: Line 124:
  
  
-===== CIFファイルからstructファイルを生成する方法 =====+==== CIFファイルからstructファイルを生成する方法 ====
  
-実際にWIEN2kを使った第一原理計算を行うときは、対話形式でstructファイルを作成するよりもCIFファイルから生成することが多くなると思います。+実際にWIEN2kを使った第一原理計算を行うときは、対話形式でstructファイルを作成するよりも、結晶構造データの統一フォーマットであるCIFファイルから生成することが多くなると思います。
 上記のサイトからCIFファイルをダウンロードし、ファイル名をTiC.cifに変更して作業ディレクトリに保存します。 上記のサイトからCIFファイルをダウンロードし、ファイル名をTiC.cifに変更して作業ディレクトリに保存します。
  
Line 134: Line 137:
 これで入力ファイルTiC.structができます。 これで入力ファイルTiC.structができます。
 ただし、このままだとマフィンチン半径$R_{\rm MT}$が正しく設定されていないので計算します。 ただし、このままだとマフィンチン半径$R_{\rm MT}$が正しく設定されていないので計算します。
 +拡張子の.structは不要です。
  
 <code> <code>
Line 146: Line 150:
  
  
-====== 計算の設定の初期化 ======+===== 計算の設定の初期化 =====
  
 SCF計算に入る前に、計算の設定の初期化をおこないます。 SCF計算に入る前に、計算の設定の初期化をおこないます。
Line 160: Line 164:
 $ init_lapw -b -numk 1000 -rkmax 7.5 $ init_lapw -b -numk 1000 -rkmax 7.5
 </code> </code>
 +  * ここでフラグ -b はバッチモードで、これをつけることで指定のもの以外はすべてまとめてデフォルトの値に設定されます。
 +  * 最後に init_lapw finished ok と出たらうまく行っています。このメッセージが出てこなかった場合、どこかで問題が起こっているので修正します。
 +  
 +オプションの意味は次のとおりです
  
-ここでオプション -b はバッチモードで、これをつけることで指定のもの以外はすべてまとめてデフォルトのに設定されます。 +^オプション^初期^説明^ 
-他の設定はオプション -h により参照できます。+|-rkmax|7.0|RKmax| 
 +|-numk|1000|k点数| 
 + 
 + 
 +他の設定はフラグ-hにより参照できます。
  
 <code> <code>
Line 169: Line 181:
  
  
-====== SCF計算の実行 ======+===== SCF計算の実行 =====
  
 これで準備が整いましたので計算を実行します。 これで準備が整いましたので計算を実行します。
Line 175: Line 187:
  
 <code> <code>
-$ run_lapw -ec 0.00001 -cc 0.0001 -i 100+$ run_lapw -cc 0.0001 -ec 0.00001 -i 100
 </code> </code>
  
-ここでオプション -ec はエネルギーの収束で、オプション -cc 電荷の収束です +^オプション^初期値^説明^ 
-デフォルトエネルギーの収束か見ませんが、電荷の収束見ておいたほうが無難です。 +|-cc|なし|電荷の収束。単位e。指定なければ電荷の収束はチェックされないが、見ておいたほうが無難
-また、オプション -i で最大何回までSCF計算を行うかを指定きます+|-ec|0.0001|エネルギーの収束単位はRy。デフォルトだと少し荒い| 
 +|-i|40|SCF計算を行うときの、繰り返し回数の最大値。40回だと足りないこともあるの少し多めに|
  
-他のオプションはオプション-hで確認できます。+他のオプションはフラグ-hで確認できます。
  
 <code> <code>
Line 189: Line 202:
  
 実行後、いろいろなファイルができますが、計算の経過や重要な情報は TiC.scf で確認できます。 実行後、いろいろなファイルができますが、計算の経過や重要な情報は TiC.scf で確認できます。
- +<code> 
-  $ grep ":ENE" TiC.scf     # 全エネルギーを確認します。 +$ grep ":ENE" TiC.scf     # 全エネルギー 
-  $ grep ":FER" TiC.scf     # フェルミ準位を確認します。単位は Ry です。 +(略) 
-  $ grep ":GAP" TiC.scf     # エネルギーギャップを確認します。金属の場合は0になります。+:ENE  : ********** TOTAL ENERGY IN Ry =        -1783.96056300 
 +$ grep ":FER" TiC.scf     # フェルミ準位。単位は Ry です。 
 +(略) 
 +:FER  : F E R M I - ENERGY(TETRAH.M.)=   0.7492912035 
 +$ grep ":GAP" TiC.scf     # エネルギーギャップ。金属の場合は0になります。 
 +(略) 
 +:GAP (global)   :    0.0    Ry =     0.0   eV (metal) 
 +</code>
  
 これで電子状態が得られましたので、これをもとに状態密度やバンド分散などを計算することになります。 これで電子状態が得られましたので、これをもとに状態密度やバンド分散などを計算することになります。
 +
 +
 +===== SCF計算の再実行 =====
 +
 +SCF計算を再度実行したい場合は、ブロイデン法の履歴を削除してから再実行します。
 +(電子密度の分布は前回の計算のものが引き継がれます)
 +
 +<code>
 +$ rm *.broyd*
 +$ run_lapw -cc 0.0001 -ec 0.00001 -i 100
 +</code>
 +
 +フラグ-NIをつけて再実行することも可能ですが、計算条件を変更する場合は使えません。
 +
 +<code>
 +$ run_lapw -cc 0.0001 -ec 0.00001 -i 100 -NI
 +</code>
  
  
Line 200: Line 237:
  
 計算の収束を見るために、k点数を変更したいとします。 計算の収束を見るために、k点数を変更したいとします。
-再び init_lapw を走らせると全ての設定が初期化されますので、k点数だけ変更するために x_lapw kgen を使います。+再び init_lapw を走らせると全ての設定や計算結果が初期化されますので、k点数だけ変更するために x_lapw kgen を使います。
  
 <code> <code>
Line 212: Line 249:
 </code> </code>
  
-再び計算実行するには TiC.broydX を削除してから run_lapw を実行します。+計算の再実行は上で述べたようブロイデン法の履歴を削除してから行います。 
 +最初は少ないk点数(10くらい)から初めて、徐々に増やしていきましょう。 
 +k点数に対して全エネルギーやフェルミ準位(半導体の場合はエネルギーギャップの大きさ)をプロットしてみて、収束しているかどうか必ず確認しましょう。 
 + 
 + 
 + 
 + 
 + 
 + 
 +====== 計算結果の保存 ====== 
 + 
 +計算の入出力ファイルを残しておきたい場合は save_lapw を使用します。 
 +例えばk点を増やして計算する際に、k点数を1000で計算したときの入力ファイルや結果を k1000 という名前のディレクトリに保存しておきたい場合は次のようにします。
  
 <code> <code>
-rm *.broyd* +save_lapw -d k1000
-$ run_lapw -ec 0.00001 -cc 0.0001+
 </code> </code>
  
-case.broydX 削除ずに run_lapw を実行した場合は、60秒後自動で削除してSCF計算がスタートします(そブのキャセルが可能です。 +また、この保存したファイル復活さ場合は次のようにします。-fは同じ名前ファイルがあった時、強制的に上書きするオプションです。 
- +<code> 
-全エネルギーやフェルミ準位(半導体の場合はギャップ)が、k点数に対して収束しているか必ず確認しましょう。+$ restore_lapw -d k1000 -f 
 +</code>
 ====== ジョブの一時停止 ====== ====== ジョブの一時停止 ======
  
Line 230: Line 279:
 </code> </code>
  
 +この空のファイルは、ジョブが止まった後に自動的に削除されます。
 ====== プログラム名について ====== ====== プログラム名について ======
  
 プログラム名の最後に _lapw をつけていましたが、これを省略しても良いようになっています。 プログラム名の最後に _lapw をつけていましたが、これを省略しても良いようになっています。
 例えば x_lapw は単に x だけで実行可能です。 例えば x_lapw は単に x だけで実行可能です。
 +
 +
 +====== エラーや警告への対処 ======
 +
 +===== atom 1 has a large sphere , consider setting HDLOs and/or larger LVNS =====
 +
 +init_lapw を実行したとき、lstartの段階でこのようなメッセージが出たときは、オプション -LVNS X (Xは4から10までの整数)をつけて、エラーが消えるまでXを増やしてください。
 +<code>
 +$ init_lapw -b -numk 1000 -rkmax 7.5 -lvns 5
 +</code>
 +
wien2k/scf計算.txt · Last modified: 2023/04/23 19:47 by koudai