分子動力学を行う場合でも、原子の位置を固定してまず電子系をその
原子配置での基底状態に波動関数を収束させる。このプログラムでは、
全て分子動力学の手法を使ってそれを実行する。
つまり、力学変数の運動の自由度を、運動方程式にしたがって運動さ
せるのだが、運動方程式に速度に比例する摩擦を導入して系からエネルギーを
除いてゆく。その摩擦の度合を指定するパラメーターがFRICE
である。
(ちなみに原子系の摩擦の度合を指定しているのがFRICPである。)
elemetal.sh
またはelesimple.sh
にその主要な手順が書き
込まれている。収束させるときに適切な
, FRICEなどの値は、
系によって異なるが、
=10, FRICE=0.10程度がよい。
FRICEについては、収束してきたら小さな値に変えてさらに収束させ
るとよいが、必ずしもその必要性はない。
上記のファイルをそのまま使っても多くの場合収束するはずであるが、
時間刻
と摩擦係数に関係するパラメターFRICE(TMETAL
が.true.の時は、FRICHも関係する)が、かみ合っていないときは、
収束が異常に遅くなることがある。そのような時は、摩擦係数を変えて試して
みて、速く収束する値を見つけておくとよい。
少々系が変化してもその値が有効な場合が多い。FRICEは、0.10程度、
FRICHについては、0.05程度が目安である。
電子系の収束は、波動関数の運動エネルギーEKINCの
大きさでおおよそ
判断することができる。常にこの値が減少して行けば収束していることを
示している。この値が、小さなクラスターの場合、10
程度でそれ以上
減少しないことが起こる場合がある。このときは、収束しない原因がある。
大抵の場合、10
程度まで収束する。さらに固有値の収束を期待するときは、
さらにFRICEを小さくして、電子系の収束をおこなう。10
程度
なると縮退すべき固有値の縮退している様子が数値を見ただけでも容易に
判断できるようになる。
電子系の収束では、収束した波動関数ファイルwfs.2と
収束させた最後の標準出力screenを確保しておけばよい。
ある程度自動的に計算を実行するために、スクリプトex_opte.shが
用意されている。