定義と単位¶
記号¶
以下の数学的な書式に関する規則は、このドキュメント全体で使用されています:
項目 |
記号 |
例 |
|---|---|---|
ベクトル |
太字・斜体 |
\({\mathbf{r}_i}\) |
ベクトルの長さ |
斜体 |
\(r_i\) |
私たちが「小文字」の添字 \(i\), \(j\), \(k\) および \(l\) を使用して、粒子 \(\mathbf{r}_i\) の位置ベクトルを表します。この表記を使用すると、次のようになります。
粒子 \(i\) に作用する力は、\(\mathbf{F}_i\) で表されます。
MD 単位¶
GROMACS は、関連する分子量に対して、ほとんどの値を1に近い値で生成する一貫した単位セットを使用します。これらの単位を「MD単位」と呼びます。このシステムにおける基本的な単位は、nm、ps、K、電子電荷(e)、および原子質量単位(u)です。詳細は:表 2 を参照してください。GROMACS で使用される値は、CODATAが推奨する2010年の基本的な物理定数の値(`NISTホームページ <http://nist.gov>`__を参照)に基づいています。
数量 |
シンボル |
ユニット |
|---|---|---|
長さ |
r |
\(\mathrm{nm = }10^{-9}\ m\) |
質量 |
m |
u (unified atomic mass unit) = \(1.660\,538\,921 \times 10^{-27}\ kg\) |
時間 |
t |
\(\mathrm{ps = }10^{-12}\ s\) |
充電 |
q |
e = elementary charge = \(1.602\,176\,565 \times 10^{-19}\ C\) |
温度 |
T |
K |
これらの単位と一致する単位のセットとして、以下が挙げられます(詳細は:numref:表 %s を参照)。
数量 |
シンボル |
ユニット |
|---|---|---|
エネルギー |
\(E,V\) |
\(\mathrm{kJ~mol}^{-1}\) |
強制 |
\(\mathbf{F}\) |
\(\mathrm{kJ~mol}^{-1}~\mathrm{nm}^{-1}\) |
圧力 |
\(p\) |
bar |
velocity |
\(v\) |
\(\mathrm{nm~ps}^{-1} = 1000\mathrm{~m~s}^{-1}\) |
双極モーメント |
\(\mu\) |
\(\mathrm{e\ nm}\) |
電気的ポテンシャル |
\(\Phi\) |
\(\mathrm{kJ~mol}^{-1}\mathrm{~e}^{-1} =\) \(0.010\,364\,269\,19\) Volt |
電場 |
\(E\) |
\(\mathrm{kJ~mol}^{-1}\mathrm{~nm}^{-1}\ \mathrm{e}^{-1} =\) \(1.036\,426\,919 \times 10^7\mathrm{~V m}^{-1}\) |
電気変換係数: \(f=\frac{1}{4 \pi \varepsilon_o}={138.935\,458}\) \(\mathrm{kJ}~\mathrm{mol}^{-1}\mathrm{nm}~\mathrm{ e}^{-2}\)。これは、機械的な量を電気的な量に変換する係数であり、次のように定義されます。
電気ポテンシャル \(\Phi\) と電気場 \(\mathbf{E}\) は、エネルギーと力の計算における中間的な量です。これらは GROMACS 内部では使用されません。評価に使用する場合は、使用する方程式と関連する単位の選択が必要です。通常の方法である、\(\Phi\) と \(\mathbf{E}\) を評価する式に因子 \(f\) を含めることを強く推奨します。
これらの定義により、\(q\Phi\) はエネルギーであり、\(q\mathbf{E}\) は力です。単位は、Table 3 に記載されているもので、電位に関しては約 10 mV です。したがって、1 nm の距離にある電子の電荷の電位は、\(f \approx 140\) 単位、つまり約 1.4 V になります。(正確な値:\(1.439\,964\,5\) V)
注意: これらの単位は互換性があります。これらの単位のいずれかを変更すると、不整合が生じる可能性が高いため、強く推奨されません!特に:Å を nm の代わりに使用した場合、時間の単位は 0.1 ps になります。エネルギーに \(\mathrm{kcal}~\mathrm{mol}^{-1}\) (= 4.184 \(\mathrm{kJ~mol}^{-1}\)) を使用した場合、時間の単位は 0.488882 ps になり、温度の単位は 4.184 K になります。ただし、これらのいずれの場合でも、電気的なエネルギーはすべて誤って計算されるため、nm を長さの単位として期待し、\(\mathrm{kJ~mol}^{-1}\) で計算されます。慎重な電荷の再調整によっても整合性を得られる可能性がありますが、このような混乱は厳密に避ける必要があります。
MD単位においては、通常の物理定数が異なる値(詳細は:numref:表 %s を参照)をとります。すべての量はモルあたりではなく、分子あたりで表されます。ボルツマン定数:math:`k`と気体定数:math:`R`は区別されません。その値は:math:`0.008,314,462,1mathrm{kJ~mol}^{-1} mathrm{K}^{-1}`です。
シンボル |
名前 |
値 |
|---|---|---|
\(N_{AV}\) |
アボガドロ数 |
\(6.022\,141\,29\times 10^{23}~\mathrm{mol}^{-1}\) |
\(R\) |
気体定数 |
\(8.314\,462\,1\times 10^{-3}~\mathrm{kJ~mol}^{-1}~\mathrm{K}^{-1}\) |
\(k_B\) |
ボルツマン定数 |
同じ |
\(h\) |
プランク定数 |
\(0.399\,031\,271~\mathrm{kJ~mol}^{-1}~\mathrm{ps}\) |
\(\hbar\) |
ディラック定数 |
\(0.063\,507\,799\,3~\mathrm{kJ~mol}^{-1}~\mathrm{ps}\) |
\(c\) |
光速 |
\(299,792.458~\mathrm{nm~ps}^{-1}\) |
単位を削減¶
レンナー・ジョーンズ (LJ) システムをシミュレーションする際には、特定の種類の原子に対して、例えば:math:`epsilon_{ii}=sigma_{ii}=m_i=k_B=1`と設定することで、相対的な単位を使用することが有益である場合があります。これは可能です。相対的な単位で入力を指定した場合、出力も相対的な単位で表示されます。ただし、*温度*は:math:`0.008,314,462,1`という相対的な単位で表示されます。これは、コード内で温度を評価する際にボルツマン定数が使用されているためです。したがって、:math:`T`ではなく、:math:`k_BT`が相対的な温度となります。|Gromacs|の温度:math:`T=1`は、相対的な温度:math:`0.008ldots`の単位を表します。もし1の相対的な温度が必要な場合は、|Gromacs|の温度を:math:`120.272,36`に設定する必要があります。
5 の表には、LJポテンシャルの値が示されています。
数量 |
シンボル |
SIとの関連 |
|---|---|---|
長さ |
r\(^*\) |
r \(\sigma^{-1}\) |
質量 |
m: |
m M⁻¹ |
時間 |
t \(^*\) |
t \(\sigma^{-1}~\sqrt{\epsilon/M}\) |
温度 |
T \(^*\) |
k \(_B\mathrm{T}~\epsilon^{-1}\) |
エネルギー |
E \(^*\) |
E \(\epsilon^{-1}\) |
強制 |
F \(^*\) |
F \(\sigma~\epsilon^{-1}\) |
圧力 |
P \(^*\) |
P \(\sigma ^3 \epsilon^{-1}\) |
Velocity |
v \(^*\) |
v \(\sqrt{M/\epsilon}\) |
密度 |
\(\rho^*\) |
N \(\sigma ^3~V^{-1}\) |
混合精度または倍精度¶
GROMACS は、単精度または倍精度でコンパイルできます。以前の GROMACS のドキュメントでは、単精度 を参照していましたが、実装では長年にわたり、多くの変数に対して倍精度を使用しています。すべての変数を単精度で使用すると、大幅な精度低下につながります。混合精度 では、すべての状態ベクトル(つまり、粒子座標、速度、および力)は単精度で保存されますが、重要な変数は倍精度です。典型的な例としては、バイラル(システム内のすべての力の合計)があり、その値は符号が異なります。さらに、コードの多くの部分で、合計の順序や数学的式の再構成に注意することで、演算に対して倍精度を使用することを回避しています。デフォルト構成では混合精度が使用されますが、cmake にオプション -DGMX_DOUBLE=on を追加することで、簡単に倍精度を有効にできます。倍精度は、実行しているアーキテクチャによって、混合精度と比較して 20 ~ 100% 遅くなる可能性があります。倍精度を使用すると、メモリ使用量が増加し、入力ファイル、エネルギーファイル、およびフル精度の軌跡ファイルはほぼ 2 倍になります。
混合精度でのエネルギーは、最後の桁まで正確ですが、力の最後の1桁または2桁は有意ではありません。バイラルは、原子の和における各要素のサイズよりもわずかに大きいだけで、力の精度よりも低くなります(参照:virial)。ほとんどの場合、これは問題ではありません。なぜなら、バイラルの変動は平均よりも2桁大きい可能性があるからです。クーロン相互作用のカットオフを使用すると、エネルギー、力、バイラルに大きな誤差が生じます。反応場または格子和法を使用する場合でも、これらの誤差は、単精度での部分的な使用による誤差と同等またはそれよりも大きくなります。MDはカオス的なため、非常に類似した初期条件を持つ軌跡は急速に分岐し、混合精度では、単精度よりも分岐が速くなります。
ほとんどのシミュレーションでは、混合精度で十分な精度が得られます。しかし、一部のケースでは、より高い精度(例えば、倍精度)が必要になる場合があります。
通常のモード解析、共役勾配法またはL-BFGS最適化、およびヘッセ行列の計算と対角化
長期的なエネルギー効率、特に大規模システムの場合