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:22]
koudai
quantumespresso:構造緩和 [2018/03/05 01:20]
koudai [格子定数の構造緩和]
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|構造緩和の各ステップで、原子に加わる力の変化がこの値よりも小さくなったとに収束したと判断る。こちらも収束を見るのを忘れないように|
  
 また、relax計算の際は&ionsという項目が必要です。 ここに必要に応じて構造緩和計算のオプションを書き加えますが、今はデフォルトのままとします。 また、relax計算の際は&ionsという項目が必要です。 ここに必要に応じて構造緩和計算のオプションを書き加えますが、今はデフォルトのままとします。
  
-原子位置について、原点にあるSiは動いてほしくないので、座標の最後に0 0 0を付け加えます。 他にも動いてくな原子があれば、同様に書き加えます。+原子位置について、原点にあるSiは動いてほしくないので、座標の最後に0 0 0を付け加えます。 
 +第3成分だけ動いてしい場合は0 0 1とします。 
 +何も指定していなければ1 1 1となります(すべての方向に動ける) 
  
 実行は次のようにします。 実行は次のようにします。
Line 59: Line 61:
 結果は次のようになります。 結果は次のようになります。
  
-    si.relax.out +<file - si.relax.out>
 (略) (略)
 Begin final coordinates Begin final coordinates
Line 69: Line 70:
 End final coordinates End final coordinates
 (略) (略)
 +</file>
  
 原子位置が(0.25,0.25,0.25)付近に動いたことが確認できます。 原子位置が(0.25,0.25,0.25)付近に動いたことが確認できます。
- 
-格子定数の構造緩和 † 
  
-今度は格子定数の構造緩和を行います。 Siの格子定数はボーア半径単位で10.2程度ですが、ここから少しずらして構造緩和をさせてみます。 
  
-    si.vc-relax.in+====== 格子定数の構造緩和 ======
  
 +今度は格子定数の構造緩和を行います。 Siの格子定数はボーア半径単位で10.2程度ですが、ここから少しずらして構造緩和をさせてみます。
 +
 +<file - si.vc-relax.in>
 &control &control
    calculation='vc-relax'    calculation='vc-relax'
Line 103: Line 105:
 K_POINTS automatic K_POINTS automatic
   6 6 6 1 1 1   6 6 6 1 1 1
 +</file>
  
 今度はcalculation='vc-relax'とします。 また、新しい項目&cellが必要です。 今度はcalculation='vc-relax'とします。 また、新しい項目&cellが必要です。
Line 108: Line 111:
 実行は次のようにします。 実行は次のようにします。
  
-    $ pw.x < si.vc-relax.in > si.vc-relax.out+  $ pw.x < si.vc-relax.in > si.vc-relax.out
  
 結果は次のとおりです。 結果は次のとおりです。
  
-    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 133: Line 135:
 End final coordinates End final coordinates
 (略) (略)
 +</file>
 +
 +もともと基本並進ベクトルが格子定数を単位として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を実行しましょう。
 +  * vc-relax計算で構造緩和を行うとき、計算に必要なパラメータは最初の格子定数と原子位置の計算から出したものを使い続けます。計算が正しいか確認するため、入力ファイルを得られたパラメータでもう一度vc-relax計算をすると良いでしょう。
 +  * 結果がエネルギーのカットオフやk点数に対してちゃんと収束しているか必ず確認しましょう(得られた構造に対してエネルギーのカットオフやk点数を増やしてもう一度構造緩和してみる)。
 +  * 構造緩和の結果、結晶が別の対称性になってしまう場合、プログラムが以下のエラーを出して止まってしまいます。その場合は&systemに対称性を考慮しないというオプションnosym=.true.を加えてください。
 +
 +  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 +      Error in routine checkallsym (2):
 +      not orthogonal operation
 +  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 +
 +
 +
 +====== 金属の場合 ======
  
-もともと基本並進ベクトルが格子定数を単位としてa(1)=(-0.5, 0, 0.5)だったのが(-0.510132378, 0.000000000, 0.510132378)に拡大していま。 そため構造緩和によって得られた格子定数はボーア半径を単位として10.0*0.510132378/0.5=10.20・・・となります。 +金属場合はFermi面の情報必要ですの
-↑ +
-注意 †+
  
-    実はvc-relax計算は原子位置の緩和も同時に行っていますが、ほとんどの場合はうまくいかないのでrelax計算と組み合わせる必要があります。 +  occupations='tetrahedra_opt'
-    vc-relax計算で構造緩和を行うとき、計算に必要なパラメータは最初の格子定数と原子位置の計算から出したものを使い続けます。計算が正しいか確認するため、入力ファイルを得られたパラメータでもう一度vc-relax計算をすると良いでしょう。 +
-    構造緩和の結果、結晶が別の対称性になってしまう場合、プログラムが以下のエラーを出して止まってしまいます。その場合は&systemに対称性を考慮しないというオプションnosym=.true.を加えてください。+
  
-    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +を使用してください。 
-        Error in routine checkallsym (2): +このときのk点は、原点を含む 
-        not orthogonal operation +  K_POINTS automatic 
-    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+    12 12 12 0 0 0 
 +などとします。
  
 +* http://qe-forge.org/pipermail/pw_forum/2017-October/114051.html
  
quantumespresso/構造緩和.txt · Last modified: 2024/03/30 23:58 by koudai