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:構造緩和 [2018/02/22 20:33]
koudai [注意]
quantumespresso:構造緩和 [2020/11/18 21:01]
koudai [擬ポテンシャルについて]
Line 2: Line 2:
  
 構造緩和計算により、結晶の安定な構造を求めます。 構造緩和計算により、結晶の安定な構造を求めます。
- 
 構造緩和には次の2通りの方法があります。 構造緩和には次の2通りの方法があります。
  
-  - 格子定数はそのままで、単位胞内の原子の位置について構造緩和 +  - 格子定数はそのままで、単位胞内の原子の内部座標最適化 
-  - 単位胞の原子位置はそのままで、格子定数についての構造緩和+  - 内部座標とともに格子定数も変化させる構造緩和
  
 通常は2つを繰り返すことで、安定な結晶構造を探します。 通常は2つを繰り返すことで、安定な結晶構造を探します。
Line 16: 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 31: Line 30:
 / /
 &electrons &electrons
 +   conv_thr = 1.0d-8
 / /
 &ions &ions
Line 44: Line 44:
  
 構造緩和計算では、calculation='relax'を指定します。 関連するオプションの意味は次の通りです。 構造緩和計算では、calculation='relax'を指定します。 関連するオプションの意味は次の通りです。
-etot_conv_thr 構造緩和の各ステップで、エネルギーの変化がこの値よりも小さくなったときに収束したと判断する。デフォルトは1.d-4だが、経験的にはもう少し厳しいほうが良い。 
-forc_conv_thr 構造緩和の各ステップで、原子に加わる力の変化がこの値よりも小さくなったときに収束したと判断する。デフォルトは1.d-3だが、経験的にはもう少し厳しいほうが良い。 
  
-エネルギーのカットオフecutwfcは普段よりも多めにとってお+^変数^初期値^説明^ 
 +|etot_conv_thr|1.d-4|構造緩和の各ステップで、エネルギーの変化がこの値よりも小さくなったとき収束した判断する| 
 +|forc_conv_thr|1.d-3|構造緩和の各ステップで、原子に加わる力の変化がこの値よりも小さくなたとに収束したと判断る|
  
 +DFTで求められる程度の原子位置の精度なので、多くの場合は収束の厳しさはここで指定した値で十分です。
 また、relax計算の際は&ionsという項目が必要です。 ここに必要に応じて構造緩和計算のオプションを書き加えますが、今はデフォルトのままとします。 また、relax計算の際は&ionsという項目が必要です。 ここに必要に応じて構造緩和計算のオプションを書き加えますが、今はデフォルトのままとします。
  
-原子位置について、原点にあるSiは動いてほしくないので、座標の最後に0 0 0を付け加えます。 他にも動いてくな原子があれば、同様に書き加えます。+原子位置について、原点にあるSiは動いてほしくないので、座標の最後に0 0 0を付け加えます。 
 +第3成分だけ動いてしい場合は0 0 1とします。 
 +何も指定していなければ1 1 1となります(すべての方向に動ける) 
  
 実行は次のようにします。 実行は次のようにします。
  
-  $ 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 75: Line 79:
 ====== 格子定数の構造緩和 ====== ====== 格子定数の構造緩和 ======
  
-今度は格子定数の構造緩和を行います。 Siの格定数はボーア半径単で10.2程度ですが、ここから少しずらして構造緩和をさせてみます+今度は格子定数の構造緩和を行います。 
 +先に原子位置の緩和を行ってくだ
  
-<file - si.vc-relax.in>+Siの格子定数はボーア半径単位で10.2程度ですが、ここから少しずらして構造緩和をさせてみます。 
 + 
 +<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 91: Line 98:
 / /
 &electrons &electrons
 +   conv_thr = 1.0d-8
 / /
 &ions &ions
Line 109: 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 135: Line 143:
 </file> </file>
  
-もともと基本並進ベクトルが格子定数を単位としてa(1)=(-0.5, 0, 0.5)だったのが(-0.510132378, 0.000000000, 0.510132378)に拡大しています。 そのため、構造緩和によって得られた格子定数はボーア半径を単位として10.0*0.510132378/0.5=10.20・・・となります。+もともと基本並進ベクトルが格子定数を単位としてa(1)=(-0.5, 0, 0.5)だったのが(-0.510132378, 0.000000000, 0.510132378)に拡大しています。 
 +そのため、構造緩和によって得られた格子定数はボーア半径を単位として 10.0 * 0.510132378 / 0.5 = 10.20... となります。
  
 ===== 注意 ===== ===== 注意 =====
  
-  * 実はvc-relax計算は原子位置の緩和も同時に行っていますが、ほとんどの場合はうまくいかないのでrelax計算と組み合わせる必要があり。 +  * vc-relax計算は原子位置の緩和も同時に行っています。同時緩和はうまくいかないことがあるので、先にrelax計算を行った上でvc-relaxを実行ししょう。 
-  * vc-relax計算で構造緩和を行うとき、計算に必要なパラメータは最初の格子定数と原子位置の計算から出したものを使い続けます。計算が正しいか確認するため、入力ファイルを得らパラメでもう一度vc-relax計算をすると良いでしょう。 +  * vc-relax計算で構造緩和を行うとき、計算に必要なパラメータは最初の格子定数と原子位置の計算から出したものを使い続けます。結果が変わらなくなるまでvc-relax計算を繰り返てくださ。 
-  * 構造緩和の結果、結晶が別の対称性になってしまう場合、プログラムが以下のエラーを出して止まってしまいます。その場合は&systemに対称性を考慮しないというオプションnosym=.true.を加えてください。+  * ecutwfcやk点数は多に必要ですのでらのパラメタについて収束確認するようにします。 
 +  * conv_thrが大きと、出力ファイルに"SCF correction compared to forces is large: reduce conv_thr to get better values"と注意が出てくるの小さくしましょう。 
 +  * 構造緩和の結果、結晶が別の対称性になってしまう場合、プログラムが以下のエラーを出して止まってしまいます。その場合は&systemに対称性を考慮しないというオプションnosym=.true.を加えてください(ただし計算時間が非常に増大します) 
 +<code> 
 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
 +    Error in routine checkallsym (2): 
 +    not orthogonal operation 
 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
 +</code>
  
-  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
-      Error in routine checkallsym (2): 
-      not orthogonal operation 
-  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
  
  
Line 152: Line 165:
 ====== 金属の場合 ====== ====== 金属の場合 ======
  
-金属の場合はFermi面の情報が必要ですので、+金属の場合はフェルミ準位の情報が必要ですので、&systemに 
 + 
 +  occupations='smearing', smearing='mp', degauss=0.02 
 + 
 +を追加してください。 
 +degaussの値はk点数に応じて適切な値を入れてください。 
 + 
 +また、k点数が十分たくさんとれる場合は
  
   occupations='tetrahedra_opt'   occupations='tetrahedra_opt'
  
-を使用してください。 +を使用することもできます。 
-ときのk点は、原点を含む +
-  K_POINTS automatic +
-    12 12 12 1 1 1 +
-などとします。+
  
 * http://qe-forge.org/pipermail/pw_forum/2017-October/114051.html * http://qe-forge.org/pipermail/pw_forum/2017-October/114051.html
  
 +
 +
 +====== 擬ポテンシャルについて ======
 +
 +  * 一般に構造最適化で得られた格子定数は、PZ型などのLDA計算では過小評価され、PBE型などのGGA計算では過大評価されます。
 +  * 最近ではPBEを改善したPBESOLという交換相関ポテンシャルが実験の格子定数をよく再現するということで、構造最適化計算に使われることが多いです。
 +    * 格子定数を求めるのはいろいろな困難があるので、実際の運用では格子定数は測定値を使用し、内部座標についてのみ最適化を行うことが多いです。
quantumespresso/構造緩和.txt · Last modified: 2024/03/30 23:58 by koudai