レナード-ジョーンズポテンシャル
レナード-ジョーンズポテンシャルは、原子間または分子間の相互作用を表現するための一般的なポテンシャルエネルギーモデルです。
このポテンシャルは、2つの粒子(原子や分子)間の距離に依存しており、分子動力学シミュレーションや物理化学で広く使用されています。
レナード-ジョーンズポテンシャル $ ( V(r) ) $は次の式で表されます:
$$
V(r) = 4 \epsilon \left[ \left( \frac{\sigma}{r} \right)^{12} - \left( \frac{\sigma}{r} \right)^6 \right]
$$
ここで、各パラメータの意味は以下の通りです:
- $( r ) $: 分子間の距離(原子核間の最短距離からの距離)
- $( \sigma ) $: レナード-ジョーンズポテンシャルがゼロになる距離であり、分子間の最小距離を表す
- $( \epsilon ) $: ポテンシャルエネルギーの深さを決定する定数(吸引力または斥力の強さを示す)
- $( V(r) ) $: $( r ) $の関数として定義されるポテンシャルエネルギー
このポテンシャルエネルギー関数は、$( r ) $に対して典型的な二重極を持ちます。
距離$ ( r ) $が$ ( \sigma ) $以下の範囲では、ポテンシャルエネルギーは正の値を持ち、原子や分子が斥力を受けます。
一方、距離$ ( r ) $が$ ( \sigma ) $を超えると、ポテンシャルエネルギーは負の値を取り、原子や分子は引力を感じます。
レナード-ジョーンズポテンシャルは、分子間の相互作用を表す一般的な近似式であり、原子や分子の結合エネルギー、結合距離、相互作用の性質を理解するために広く用いられます。
物理学や化学の分野で、分子の構造や性質を研究する際に重要な役割を果たします。
ソースコード
以下は、レナード-ジョーンズポテンシャルを解いてグラフ化するPythonコードの例です。
1 | import numpy as np |
このコードでは、lennard_jones_potential
関数で与えられた距離$ ( r ) $に対するレナード-ジョーンズポテンシャルを計算し、numpy.linspace
を使用して一定の範囲内で距離$ ( r ) $を生成します。
その後、計算されたポテンシャルエネルギーをグラフ化しています。
グラフでは、距離$ ( r ) $がレナード-ジョーンズポテンシャルの影響を受ける範囲を示すために、ポテンシャルがゼロになる距離$ ( \sigma ) $が赤色の破線で示されています。
[実行結果]
ソースコード解説
ソースコードを詳しく説明します。
1. ライブラリのインポート
1 | import numpy as np |
numpy
は数値計算のためのライブラリであり、配列や数学関数を効率的に扱うことができます。matplotlib.pyplot
はグラフ描画ライブラリであり、このプログラムではレナード-ジョーンズポテンシャルのグラフ化に使用されます。
2. レナード-ジョーンズポテンシャル関数の定義
1 | def lennard_jones_potential(r, epsilon, sigma): |
lennard_jones_potential
関数は、与えられた距離r
に対するレナード-ジョーンズポテンシャルエネルギーを計算します。r
は粒子間の距離で、epsilon
はポテンシャルエネルギーの深さを表し、sigma
はポテンシャルエネルギーがゼロになる距離を表します。term1
とterm2
はレナード-ジョーンズポテンシャルの計算に使用される項です。potential_energy
はレナード-ジョーンズポテンシャルの値を計算し、その値を返します。
3. パラメータの定義
1 | epsilon = 1.0 # Depth of the potential energy well |
epsilon
とsigma
はレナード-ジョーンズポテンシャルのパラメータであり、それぞれポテンシャルエネルギーの深さとゼロになる距離を表します。
4. 距離の範囲の生成
1 | r_values = np.linspace(0.9, 3.0, 100) # Range of distances to evaluate |
np.linspace
関数を使用して、$0.9$から$3.0$までの範囲を等間隔で$100$点に分割した距離の配列r_values
を生成します。
5. レナード-ジョーンズポテンシャルの計算
1 | lj_potentials = lennard_jones_potential(r_values, epsilon, sigma) |
- 先ほど定義した
lennard_jones_potential
関数を使用して、各距離r_values
に対するレナード-ジョーンズポテンシャルエネルギーを計算し、lj_potentials
に格納します。
6. プロットの作成と表示
1 | plt.figure(figsize=(8, 6)) |
matplotlib.pyplot
を使用してグラフを描画します。plt.plot
で距離r_values
に対するレナード-ジョーンズポテンシャルエネルギーをプロットします。- 軸ラベルやタイトルを設定し、水平線と垂直線を追加しています。
plt.show()
でグラフを表示します。
このプログラムは、レナード-ジョーンズポテンシャルを計算し、距離に対するポテンシャルエネルギーの振る舞いを視覚化するためのものです。
グラフ解説
[実行結果]
このグラフは、レナード-ジョーンズポテンシャル(Lennard-Jones potential)を示しています。
レナード-ジョーンズポテンシャルは、原子間または分子間のポテンシャルエネルギーを表す一般的なモデルであり、分子動力学シミュレーションや物理化学で広く使用されています。
以下は、グラフの詳細説明です:
X軸(Distance (r)):
分子間の距離 $( r ) $を表します。
この距離は、原子間の最小距離から離れるにつれて増加します。
単位は任意の長さの単位(例えば、アングストロームなど)です。
Y軸(Potential Energy (V)):
レナード-ジョーンズポテンシャル $( V(r) ) $を表します。
このポテンシャルエネルギーは、分子間の距離 $( r )$ に対して計算され、分子間相互作用のエネルギーを示します。
単位はエネルギーの単位(例えば、エレクトロンボルトなど)です。
Lennard-Jones Potential Curve:
グラフ上の曲線は、レナード-ジョーンズポテンシャル $( V(r) ) $の値を$ ( r ) $の範囲で表します。
曲線は$ ( r ) $が大きくなるにつれてゼロに収束し、$( r ) $が小さいと急激に増加します。
Sigma (σ)の破線:
赤色の破線は、レナード-ジョーンズポテンシャルがゼロになる分子間の最小距離 $( \sigma ) $を示します。
この距離において、ポテンシャルエネルギーは最小値を持ちます。
グラフの特徴:
レナード-ジョーンズポテンシャル曲線は、分子間の距離に応じてポテンシャルエネルギーがどのように変化するかを示します。
$( r ) $が$ ( \sigma ) $以下の範囲では斥力が支配的で$、( r ) $が大きくなると引力が支配的になります。
曲線の形状は、分子間の相互作用に関する基本的な特性を示しています。
このグラフは、物理化学や分子動力学シミュレーションなどで、原子や分子間の相互作用を理解するための重要なツールとして使用されます。