Stillinger-Weberポテンシャル

2.  力の計算コードを追記する。

ΛiΛj>i{V+=εf2(rij);Fi+=εf2(rij)rijrirjrij;Fj+=εf2(rij)rijrjririj}+ΛiΛjiΛkik>j{V+=εh(rij,rik,θjik);Fi+=εh(rij,rik,θjik)ri;Fj+=εh(rij,rik,θjik)rj;Fk+=εh(rij,rik,θjik)rk}

3体項の微分を実行すると

=ΛiΛj>i{V+=εf2(rij);Fi+=εf2(rij)rijrirjrij;Fj+=εf2(rij)rijrjririj}+ΛiΛjiΛkik>j{V+=εh(rij,rik,θjik);Fi+=εAjikrirjrijεBjikrirkrik;Fj+=εAjikrjririjεDjikrjrkrjk;Fk+=εBjikrkririjεDjikrkrjrjk}

ここで

Ajik=h(rij,rik,θjik)rij+h(rij,rik,θjik)cosθjikrijrikcosθjikrijrikBjik=h(rij,rik,θjik)rik+h(rij,rik,θjik)cosθjikrikrijcosθjikrijrikDjik=h(rij,rik,θjik)cosθjikrjkrijrik

である。

ポイントは、注目している項に関与しているすべての原子について力を計算することである。2体項ではf2(rij)によって生じる力を原子ijについて計算する。3体項ではh(rij,rik,θjik)から生じる力を原子i,j,kについて計算する。Cijkがなくなっているのが気になるかもしれないが、Cijkijが入れ替わったAjikに他ならず、ここで計算しなくてもh(rji,rjk,θijk)の項で計算されるから問題ない。

1つの原子に注目し、その原子にかかる力をすべて列挙しようとすると、3体項の場合h(rij,rik,θjik),h(rji,rjk,θijk),h(rki,rkj,θkji)といくつもの項を考えなければならず、見落としや重複のリスクが常につきまとう。ターム指向であれば、h(rij,rik,θjik)一つに注目すればよいので、ほぼ機械的に間違いなく記述できる。