This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
quantumespresso:構造緩和 [2018/03/05 01:19] koudai [原子位置の構造緩和] |
quantumespresso:構造緩和 [2020/06/27 15:11] koudai [原子位置の構造緩和] |
||
---|---|---|---|
Line 2: | Line 2: | ||
構造緩和計算により、結晶の安定な構造を求めます。 | 構造緩和計算により、結晶の安定な構造を求めます。 | ||
- | |||
構造緩和には次の2通りの方法があります。 | 構造緩和には次の2通りの方法があります。 | ||
- | - 格子定数はそのままで、単位胞内の原子の位置についての構造緩和 | + | - 格子定数はそのままで、単位胞内の原子の内部座標の最適化 |
- | - 単位胞内の原子位置はそのままで、格子定数についての構造緩和 | + | - 内部座標とともに格子定数も変化させる構造緩和 |
通常は2つを繰り返すことで、安定な結晶構造を探します。 | 通常は2つを繰り返すことで、安定な結晶構造を探します。 | ||
Line 31: | Line 30: | ||
/ | / | ||
& | & | ||
+ | | ||
/ | / | ||
&ions | &ions | ||
Line 45: | Line 45: | ||
構造緩和計算では、calculation=' | 構造緩和計算では、calculation=' | ||
- | |etot_conv_thr|1.d-4|構造緩和の各ステップで、エネルギーの変化がこの値よりも小さくなったときに収束したと判断する。実際の計算ではデフォルトの値から徐々に小さくしていって得られた原子位置の収束を見る。| | + | ^変数^初期値^説明^ |
- | |forc_conv_thr|1.d-3|構造緩和の各ステップで、原子に加わる力の変化がこの値よりも小さくなったときに収束したと判断する。こちらも収束を見るのを忘れないように。| | + | |etot_conv_thr|1.d-4|構造緩和の各ステップで、エネルギーの変化がこの値よりも小さくなったときに収束したと判断する。初期値のままだと粗いので小さくする。| |
+ | |forc_conv_thr|1.d-3|構造緩和の各ステップで、原子に加わる力の変化がこの値よりも小さくなったときに収束したと判断する。こちらも初期値だと粗いので小さくする。| | ||
+ | DFTで求められる程度の原子位置の精度なので、だいたいはここで指定した値で十分です。 | ||
また、relax計算の際は& | また、relax計算の際は& | ||
Line 77: | Line 79: | ||
====== 格子定数の構造緩和 ====== | ====== 格子定数の構造緩和 ====== | ||
- | 今度は格子定数の構造緩和を行います。 Siの格子定数はボーア半径単位で10.2程度ですが、ここから少しずらして構造緩和をさせてみます。 | + | 今度は格子定数の構造緩和を行います。 |
+ | 先に原子位置の緩和を行ってください。 | ||
+ | |||
+ | Siの格子定数はボーア半径単位で10.2程度ですが、ここから少しずらして構造緩和をさせてみます。 | ||
<file - si.vc-relax.in> | <file - si.vc-relax.in> | ||
Line 93: | Line 98: | ||
/ | / | ||
& | & | ||
+ | | ||
/ | / | ||
&ions | &ions | ||
Line 137: | Line 143: | ||
</ | </ | ||
- | もともと基本並進ベクトルが格子定数を単位としてa(1)=(-0.5, | + | もともと基本並進ベクトルが格子定数を単位としてa(1)=(-0.5, |
+ | そのため、構造緩和によって得られた格子定数はボーア半径を単位として 10.0 * 0.510132378 / 0.5 = 10.20... となります。 | ||
===== 注意 ===== | ===== 注意 ===== | ||
- | * 実はvc-relax計算は原子位置の緩和も同時に行っています。ほとんどの場合はうまくいかないので、先にrelax計算を行ってからvc-relaxを実行しましょう。 | + | * vc-relax計算は原子位置の緩和も同時に行っています。ほとんどの場合は同時緩和はうまくいかないので、先にrelax計算を行った上でvc-relaxを実行しましょう。 |
- | * vc-relax計算で構造緩和を行うとき、計算に必要なパラメータは最初の格子定数と原子位置の計算から出したものを使い続けます。計算が正しいか確認するため、入力ファイルを得られたパラメータでもう一度vc-relax計算をすると良いでしょう。 | + | * vc-relax計算で構造緩和を行うとき、計算に必要なパラメータは最初の格子定数と原子位置の計算から出したものを使い続けます。結果が変わらなくなるまでvc-relax計算を繰り返してください。 |
- | * 結果がエネルギーのカットオフやk点数に対してちゃんと収束しているか必ず確認しましょう(得られた構造に対してエネルギーのカットオフやk点数を増やしてもう一度構造緩和してみる)。 | + | * conv_thrが大きいと、出力ファイルに"SCF correction compared to forces is large: reduce conv_thr to get better values" |
* 構造緩和の結果、結晶が別の対称性になってしまう場合、プログラムが以下のエラーを出して止まってしまいます。その場合は& | * 構造緩和の結果、結晶が別の対称性になってしまう場合、プログラムが以下のエラーを出して止まってしまいます。その場合は& | ||
+ | < | ||
+ | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||
+ | Error in routine checkallsym (2): | ||
+ | not orthogonal operation | ||
+ | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||
+ | </ | ||
- | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||
- | Error in routine checkallsym (2): | ||
- | not orthogonal operation | ||
- | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||
Line 155: | Line 164: | ||
====== 金属の場合 ====== | ====== 金属の場合 ====== | ||
- | 金属の場合はFermi面の情報が必要ですので、 | + | 金属の場合はフェルミ面の情報が必要ですので、& |
occupations=' | occupations=' | ||
- | を使用してください。 | + | を追加してください。 |
- | このときのk点は、原点を含む | + | |
- | K_POINTS automatic | + | |
- | 12 12 12 0 0 0 | + | |
- | などとします。 | + | |
* http:// | * http:// | ||
+ | |||
+ | |||
+ | ====== 擬ポテンシャルについて ====== | ||
+ | |||
+ | 一般に構造最適化で得られた格子定数は、PZ型などのLDA計算では過小評価され、PBE型などのGGA計算では過大評価されます。 | ||
+ | 最近ではPBEを改善したPBESOLという交換相関ポテンシャルが実験の格子定数をよく再現するということで、構造最適化計算に使われることが多いです。 |