User Tools

Site Tools


quantumespresso:構造緩和

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
quantumespresso:構造緩和 [2020/03/24 11:22]
koudai [擬ポテンシャルについて]
quantumespresso:構造緩和 [2020/11/18 21:02]
koudai [擬ポテンシャルについて]
Line 15: Line 15:
 格子定数はそのままに、単位胞内の原子の位置を緩和させます。 Siの単位胞内における原子の位置は、格子定数を単位として安定な構造で(0,0,0)と(0.25,0.25,0.25)にありますが、原子を少しずらした点において構造緩和をさせてみます。 格子定数はそのままに、単位胞内の原子の位置を緩和させます。 Siの単位胞内における原子の位置は、格子定数を単位として安定な構造で(0,0,0)と(0.25,0.25,0.25)にありますが、原子を少しずらした点において構造緩和をさせてみます。
  
-<file - si.relax.in>+<file - Si.relax.in>
  
 &control &control
    calculation='relax'    calculation='relax'
-   prefix='si+   prefix='Si
-   pseudo_dir='./' +   pseudo_dir='./pseudo/' 
-   outdir = './'+   outdir = './tmp/'
    etot_conv_thr = 1.d-5    etot_conv_thr = 1.d-5
    forc_conv_thr = 1.d-4    forc_conv_thr = 1.d-4
Line 46: Line 46:
  
 ^変数^初期値^説明^ ^変数^初期値^説明^
-|etot_conv_thr|1.d-4|構造緩和の各ステップで、エネルギーの変化がこの値よりも小さくなったときに収束したと判断する。初期値のままだと粗いので小さくする。+|etot_conv_thr|1.d-4|構造緩和の各ステップで、エネルギーの変化がこの値よりも小さくなったときに収束したと判断する| 
-|forc_conv_thr|1.d-3|構造緩和の各ステップで、原子に加わる力の変化がこの値よりも小さくなったときに収束したと判断する。こちらも初期値だと粗いので小さくする。|+|forc_conv_thr|1.d-3|構造緩和の各ステップで、原子に加わる力の変化がこの値よりも小さくなったときに収束したと判断する|
  
 +DFTで求められる程度の原子位置の精度なので、多くの場合は収束の厳しさはここで指定した値で十分です。
 また、relax計算の際は&ionsという項目が必要です。 ここに必要に応じて構造緩和計算のオプションを書き加えますが、今はデフォルトのままとします。 また、relax計算の際は&ionsという項目が必要です。 ここに必要に応じて構造緩和計算のオプションを書き加えますが、今はデフォルトのままとします。
  
Line 58: Line 59:
 実行は次のようにします。 実行は次のようにします。
  
-  $ pw.x < si.relax.in > si.relax.out+  $ pw.x < Si.relax.in > Si.relax.out
  
 結果は次のようになります。 結果は次のようになります。
  
-<file - si.relax.out>+<file - Si.relax.out>
 (略) (略)
 Begin final coordinates Begin final coordinates
Line 83: Line 84:
 Siの格子定数はボーア半径単位で10.2程度ですが、ここから少しずらして構造緩和をさせてみます。 Siの格子定数はボーア半径単位で10.2程度ですが、ここから少しずらして構造緩和をさせてみます。
  
-<file - si.vc-relax.in>+<file - Si.vc-relax.in>
 &control &control
    calculation='vc-relax'    calculation='vc-relax'
-   prefix='si+   prefix='Si
-   pseudo_dir='./' +   pseudo_dir='./pseudo/' 
-   outdir = './'+   outdir = './tmp/'
    etot_conv_thr = 1.d-5    etot_conv_thr = 1.d-5
    forc_conv_thr = 1.d-4    forc_conv_thr = 1.d-4
Line 116: Line 117:
 実行は次のようにします。 実行は次のようにします。
  
-  $ pw.x < si.vc-relax.in > si.vc-relax.out+  $ pw.x < Si.vc-relax.in > Si.vc-relax.out
  
 結果は次のとおりです。 結果は次のとおりです。
  
-<file - si.vc-relax.out>+<file - Si.vc-relax.out>
 (略) (略)
      crystal axes: (cart. coord. in units of alat)      crystal axes: (cart. coord. in units of alat)
Line 147: Line 148:
 ===== 注意 ===== ===== 注意 =====
  
-  * vc-relax計算は原子位置の緩和も同時に行っています。ほとんどの場合は同時緩和はうまくいかないので、先にrelax計算を行った上でvc-relaxを実行しましょう。+  * vc-relax計算は原子位置の緩和も同時に行っています。同時緩和はうまくいかないことがあるので、先にrelax計算を行った上でvc-relaxを実行しましょう。
   * vc-relax計算で構造緩和を行うとき、計算に必要なパラメータは最初の格子定数と原子位置の計算から出したものを使い続けます。結果が変わらなくなるまでvc-relax計算を繰り返してください。   * vc-relax計算で構造緩和を行うとき、計算に必要なパラメータは最初の格子定数と原子位置の計算から出したものを使い続けます。結果が変わらなくなるまでvc-relax計算を繰り返してください。
 +  * ecutwfcやk点数は多めに必要ですので、これらのパラメタについて収束を確認するようにします。
   * conv_thrが大きいと、出力ファイルに"SCF correction compared to forces is large: reduce conv_thr to get better values"と注意が出てくるので小さくしましょう。   * conv_thrが大きいと、出力ファイルに"SCF correction compared to forces is large: reduce conv_thr to get better values"と注意が出てくるので小さくしましょう。
-  * 構造緩和の結果、結晶が別の対称性になってしまう場合、プログラムが以下のエラーを出して止まってしまいます。その場合は&systemに対称性を考慮しないというオプションnosym=.true.を加えてください。+  * 構造緩和の結果、結晶が別の対称性になってしまう場合、プログラムが以下のエラーを出して止まってしまいます。その場合は&systemに対称性を考慮しないというオプションnosym=.true.を加えてください(ただし計算時間が非常に増大します)
 <code> <code>
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Line 163: Line 165:
 ====== 金属の場合 ====== ====== 金属の場合 ======
  
-金属の場合はフェルミの情報が必要ですので、&systemに+金属の場合はフェルミ準位の情報が必要ですので、&systemに
  
-  occupations='tetrahedra_opt'+  occupations='smearing', smearing='mp', degauss=0.02
  
 を追加してください。 を追加してください。
 +degaussの値はk点数に応じて適切な値を入れてください。
 +
 +また、k点数が十分たくさんとれる場合は
 +
 +  occupations='tetrahedra_opt'
 +
 +を使用することもできます。
 +
  
 * http://qe-forge.org/pipermail/pw_forum/2017-October/114051.html * http://qe-forge.org/pipermail/pw_forum/2017-October/114051.html
Line 175: Line 185:
 ====== 擬ポテンシャルについて ====== ====== 擬ポテンシャルについて ======
  
-一般に構造最適化で得られた格子定数は、PZ型などのLDA計算では過小評価され、PBE型などのGGA計算では過大評価されます。 +  * 一般に構造最適化で得られた格子定数は、PZ型などのLDA計算では過小評価され、PBE型などのGGA計算では過大評価されます。 
-最近ではPBEを改善したPBESOLという交換相関ポテンシャルが実験の格子定数をよく再現するうことで使われることが多いです。+  最近ではPBEを改善したPBESOLという交換相関ポテンシャルが実験の格子定数を比較的よく再現しま。 
 +    * 格子定数を求めのはろいろな困難があるの、実際の運用では格子定数は測定値を使用し、内部座標についてのみ最適化を行うことが多いです。
quantumespresso/構造緩和.txt · Last modified: 2024/03/30 23:58 by koudai