圧力一定のもとでの構造最適化には、一般的には、3つ計算方法が考えられる。
第1の方法は、圧力一定の分子動力学を行う方法であり、第2の方法は、いくつかの
格子定数等の構造パラメータにて、エネルギーや圧力を計算して、それらの計算結果
を解析する方法である。この前者と後者を何らかの形で併用した方法が、第3の方法
である。第1の方法は、実際的には計算の単位胞を大きくとることが必要になってくる
ため、計算量が多いが、多くの構造パラメータを同時に最適化することができる。
ex_md.shにて実行することが可能である。
第2の方法は、小数の構造パラメータを精度よく最適化するのに使用される。
ex_optl.sh,ex_omega.shなど、いくつかのスクリプトで可能である。
第3の方法としては、単位胞内の原子位置を分子動力学を用いて最適化し、
格子定数については、静的に少しずつずらす方法で最適化する手続きが
よいと考えられる。
ex_optls.shを使用することができる。
ここでは、ex_optls.sh
を用いた構造最適化の手順を説明する。単位胞の原子位置について
自由度がない場合は、ex_optls.sh中で指定するパラメータsskipを
1に指定する(1.3.21参照)。
exlist.shに次のようなコマンド群を記述し計算を行う。
#-------------------------------------------------------------------------
# for task calculation
# edit
#-------------------------------------------------------------------------
cp ${rundir}/celldm0 ${rundir}/celldm
#
# optimization of lattice constants and atomic positions
#
${rundir}/ex_opte.sh
${rundir}/ex_opts.sh
${rundir}/ex_pf.sh
${rundir}/ex_optls.sh
${rundir}/ex_optls.sh
${rundir}/ex_optls.sh
.
.
(収束するまで繰り返し)
.
.
celldm0にはなるべく目的の圧力に近い格子定数を指定する。
それぞれのスクリプトは、これまで通り設定する必要がある。
いくつかの注意すべき点を次に挙げる。
ex_opts.shに関連して、ファイルjobsが消去されているか
どうかを確認する。
ex_pf.shでは、mvコマンドのコメントを付けてあるか、
およびnbeg=0と指定しているかを確認する。
ex_optls.shでは、設定圧力パラメータなどを指定する。
(パラメータに設定については、1.3.21を参照。)
固体酸素では、114GPaのとき
press=114.0, hstep=0.0003, epspres=0.1,
foreps=0.0005, atpstep=0.01
hstepを調整する。
計算する圧力があばれるときは、この値を1桁小さくするとよい。
また、高圧になるに従い、hstepとして小さな値を指定
するとよい。press=1920.0のときは, hstep=0.00005
程度が指定された。
収束したことを示すメッセージがcpvo.shの標準出力へ出力されば
計算終了である。
収束せず計算が最後までいったときは、スクリプトexlist.shに
ex_optls.shの繰り返しだけを記述して、計算を行えばよい。
例えば、
#-------------------------------------------------------------------------
# for task calculation
# edit
#-------------------------------------------------------------------------
#
# optimization of lattice constants and atomic positions
#
${rundir}/ex_optls.sh
${rundir}/ex_optls.sh
${rundir}/ex_optls.sh
.
.
(収束するまで繰り返し)
.
.
である。このときex_optls.sh内のパラメータを修正して
収束を速めることが可能である。celldm0のcpや
ex_opte.sh, ex_opts.sh, ex_pf.shの実行など
をコメントにして動作しないようにしておく必要がある。
途中で計算が失敗したたときは、少々複雑な再設定を行った後、計算を 続行することが可能である。 計算を継続するには、以下のファイルを1セットで残しておけばよい。
celldm ex_optls.sh scr.pre updatp.sh updlat圧力テンソルが収束したならば上記のファイルは必ずしも必要ないが、 計算精度を上げる必要がある場合があるので残しておくとよい。
圧力テンソルが収束したら、ファイルres.optls.convを残して
おけばよい。電子系の再計算が短時間で可能ならば波動関数wfs.optls.conv
は必ずしも残しておく必要はない。