분자 역학에서 핵 에너지 파생물을 계산하는 방법은 무엇입니까?

Aug 21 2020

분자 역학에서 에너지는 결합, 각도 및 비틀림 에너지의 합계와 정전기 용어로 작성되는 경우가 많습니다.

$V = \sum_{bonds} K_r (r-r_{eq})^2 +\sum_{angles}K_{\theta}(\theta -\theta_0)^2 +\sum_{dihedrals}V_n/2 [1+cos(n\phi -\gamma)] + \sum_{i<j}[\frac{A_{ij}}{R_{ij}^{12}} + \frac{B_{ij}}{R_{ij}^{6}} + \frac{q_1 q_2}{\epsilon R_{ij}}]$

이것은 평가하기가 매우 쉽지만 원자력 파생물 (그라데이션)은 데카르트 좌표계로 작성해야하기 때문에 더 복잡합니다.

이 참조 :

스트레칭, 굽힘 및 비틀림 에너지에 대한 1 차 및 2 차 미분 행렬 요소, Kenneth J. Miller, Robert J. Hinde 및 Janet Anderson, Journal of Computational Chemistry, vol 10, 63-76, 1989, https://www.onlinelibrary.wiley.com/doi/abs/10.1002/jcc.540100107

결합, 각도 및 비틀림에 대한 원자력 파생물을 계산하기위한 수학을 설명하지만 다소 복잡합니다.

예를 들어 표 V를 이해하지 못합니다.

이것을 높은 수준으로 구현하는 오픈 소스 코드가 있습니까?

이 코드를 사용하여 텍스트를 보완하고 교육 목적으로 사용하고 싶습니다.

답변

6 GeoffHutchison Aug 21 2020 at 22:12

결합, 각도, 비틀림 등의 기여도를 반복하고 각 원자의 기울기를 합산합니다.

Open Babel을 위해이를 구현할 때 MMFF94 그라디언트에 대한 통찰력을 제공하는 매우 멋진 논문을 발견했습니다.

Andreas Moll BALLView 박사 : 분자 뷰어 및 모델링 도구

  • 결합-고조파 전위는 다음과 같이 이어집니다. $$ S_{i j} \frac{\hat{\mathbf{d}_{\mathrm{jj}}}}{\left|\mathbf{d}_{\mathrm{ij}}\right|} $$

  • 각도 벤드, 예 : $$ B_{i j k} \frac{\hat{\mathbf{d}}_{\mathrm{ij}} \times \hat{\mathbf{d}}_{\mathrm{ki}} \times \hat{\mathbf{d}}_{\mathrm{ij}}}{\left|\mathbf{d}_{\mathrm{ij}}\right|} $$

  • 비틀림, 예 : $$ T_{i j k l} \frac{-\hat{\mathbf{d}}_{\mathrm{ij}} \times \hat{\mathrm{d}}_{\mathrm{jk}}}{\sin (\phi)^{2}\left|\mathbf{d}_{\mathrm{ij}}\right|} $$

Open Babel의 코드는 여기에서 찾을 수 있습니다 : forcefield.cpp

기본적으로 특정 상호 작용에서 각 원자에 대한 힘을 얻는 것은 일련의 교차 곱과 정규화입니다.

OpenMM은 여기에 구현 된 것처럼 보입니다 . 접근 방식이 상당히 유사합니다.

5 SusiLehtola Aug 21 2020 at 19:52

일반적으로 힘 평가는 접근 방식 (QM 또는 MM)에 관계없이 데카르트 좌표에서 발생합니다. QM 코드에서 힘은 내부 좌표로 투영 될 수 있으며, 이는 일반적으로 기하학에 따라 달라집니다 . 예를 들어 J. Chem. Phys. 110, 4986 (1999) ; 이로 인해 약간의 비용이 발생하더라도 QM 계산 감소로 상쇄되는 것 이상입니다. 또한 고체는 내부 좌표에서 최적화 될 수 있습니다 . Chem. Phys. 레트 사람. 335, 321 (2001) . (AFAIK 분자 역학 코드는 기하학 최적화를 위해 내부 좌표를 사용하지 않지만 착각 할 수 있습니다.)

역장에 대한 기울기 및 헤세 행렬에 대한 방정식은 약간 복잡하지만 간단합니다. 아직 데카르트 공간에 있기 때문입니다. 표 V는 코사인에 대한 다중 각도 공식의 도우미 표입니다.

$\begin{aligned}\cos \phi_{ijkl} &= \cos \phi_{ijkl} \\ \cos 2\phi_{ijkl} &= -1 + 2 \cos^2 \phi_{ijkl} \\ \cos 3\phi_{ijkl} &= -3\cos \phi_{ijkl} + 4 \cos^3 \phi_{ijkl} \\ \cos 4\phi_{ijkl} &= 1 -8\cos^2 \phi_{ijkl} + 8 \cos^4 \phi_{ijkl} \end{aligned}$

등등 $\cos 5\phi_{ijkl}$$\cos 6\phi_{ijkl}$. 그들은 (비틀림 운동에 관한 섹션의) 본문에서 이러한 삼각 정체성을 사용하면 정의되지 않은 값을 피할 수 있다고 말합니다.$\phi_{ijkl}=0$$\phi_{ijkl}=\pi/2$ 나눈 파생 상품에 대해 $\sin \phi_{ijkl}$.

그러나 단순하고 매우 이해하기 쉬운 코드를 의미하는 높은 수준의 구현을 기대하고 있다면 운이 좋지 않다고 생각합니다. 힘의 평가는 MD 코드의 주요 병목이므로 아마도 크게 최적화되어있을 것입니다. 모든 코드.

당신의 잠재력은 매우 간단하며 조화 결합과 각도 스트레칭, 2 면체 및 Lennard-Jones 항으로 구성되어 있으므로 거의 모든 분자 역학 코드에서 사용할 수 있습니다. (비 결합 영역 사이의 정전기 상호 작용을 모델링하는 데 일반적으로 포함되는 쿨롱 용어가 실제로 누락되었다고 생각합니다.)

GROMACS 는 더 잘 알려진 오픈 소스 분자 MD 코드 중 하나이며 빠릅니다. 그것은 평범한 C로 쓰여졌습니다. 나중에 C ++을 받았을 수도 있습니다. 저는 10 년 동안 소스 코드를 보지 않았습니다.