LoginSignup
0
2

More than 1 year has passed since last update.

PythonでMDことはじめ Vol. 1

Last updated at Posted at 2022-10-06

0. はじめに

分子動力学法(Molecular Dynamics, MD)への止まない興味の記録を残します。
ぶっちゃけると、PythonでMDシミュレーションプログラムを作るのは非合理的です。計算量が膨大になるため、いかに計算を効率化するか、並列化するかが重要です。そのような分野で実行速度の遅いPythonなどの言語を勧めることはできません。
当方完全に素人ですので、間違い、アドバイスがあればご教示いただけると大変助かります。

1. MDとは

簡単に言うと、原子(分子)間の力を計算し、ニュートンの運動方程式に基づいて速度・位置を計算することでミクロな挙動をシミュレートする、というイメージです。
MDシミュレーションにおいて理解する必要があるのは

  1. 原子間の力を決定するポテンシャル
  2. 速度・位置の計算をするための数値積分

の二つだと考えています。

2. 主なポテンシャル

MDの有名なポテンシャルとしてはレナードジョーンズポテンシャル(Lennerd-Jones Potential, LJ Potential)が挙げられます。二つの原子間の距離$r$のみの関数としてポテンシャルエネルギー・力を計算するモデルです。
三体間ポテンシャルで有名なTersoffポテンシャルや、量子力学からポテンシャルを算出するab initio分子動力学(AIMD)というものもあります。

3. 主な数値積分法

オイラー法、ルンゲクッタ法、Leap-frog法、速度Verlet法などがあります。

-1. 次回予告

次回はLJポテンシャルの実装と可視化をやっていきます。
リンクはこちら:point_right:https://qiita.com/PlusF/items/e356ce5ebcbad530c0d5

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2