1/r の発散の防止について

提供: ComplexRI: Manual
2026年5月26日 (火) 04:13時点におけるHirano (トーク | 投稿記録)による版 (ページの作成:「== 方針 ==  ポテンシャル等 <math> f \left( \frac{1}{r} \right) </math> で定義される関数は、<math>r \ll 1 </math> において発散を生じる…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

方針

 ポテンシャル等  で定義される関数は、 において発散を生じる。 これを防ぐため、 へ置き換えることを考える。 とし、 微分を考えると、


となっている。 つまり、例えば、LJポテンシャルなら、


相互作用テンソルなら、


である。 従って、 及びその微分をあらかじめ計算しておくことで、プログラムの変更を最小限にして の発散を阻止することができる。 また、長距離部分のカットオフも同様の方法で組み込むことができる。

ξの形状

 微分の計算のしやすさから、



と置くのが良い。 この関数形では、  において ξ が0でないが、エネルギーの基準点を



と補正することにより、トラジェクトリー計算には影響がない。(多項式の次数を上げることで とすることも可能だが、その場合、ξ の高次の微分でスイッチング関数の影響が無視できなくなる。)


  は、4回微分が連続という条件を課すことで、



となる。 なお、 である。(導出はファイル:Switch.nb 参照。 関数の形状や微分形もこちらを参照。 3階微分はやや波うちが大きいが、 を大きく取ることで改善される。)

switch.nb

上の および の形をプロットする mathematica スクリプトである。スウィッチの境界は A, A としている。実行したプロット結果は、Kikkawa et al. J. Am. Chem. Soc. 2015, 137, 8022-8025 の Supporting Information 中の Figure S3 にも記載されている。