这是本文档旧的修订版!
版本:P-2019.03
在本教程中,您将以液态甲醇为例学习如何采用分子动力学(MD)模拟计算不同液体的粘度。理解粘度对许多工业化学过程的设计至关重要,因为粘度描述了液体的流动。本教程演示了您将如何利用 QuantumATK 工具模拟简单液体的粘性。该方法也可以应用于许多更为复杂和混合的液体。
为了模拟液体甲醇的行为,我们采用经典的分子动力学生成分子的运动轨迹。这些轨迹提供了统计计算液体综合性能所需的必要信息。本教程还演示了如何设置和使用为这类分子问题创建的特定键合力场。
粘度是液体中的分子相互通过时摩擦力的量度。有许多方法可以估算这种摩擦[1],但常用的一种方法是 Einstein 关系式,其中粘度 $\eta$ 可以表示为[2]:
$$\begin{split}\eta = \lim_{t \to \infty} \frac{V}{2tk_BT}\left<\left( \int_0^t \tau_{\alpha\beta}(t') dt' \right)^2 \right>\end{split}$$
这里积分的量是压力张量的非对角线元素。标注的 $\alpha$ 和 $\beta$ 指代这些元素。此处其他的量代表的是时间 $t$、温度 $T$、体积 $V$ 和玻尔兹曼常数 $k_B$。
另外一种计算粘度的方法是通过 Green-Kubo 关系式[3]:
$$\begin{split}\eta = \frac{V}{k_BT} \int_0^\infty \left< \tau_{\alpha\beta}(t_0) \tau_{\alpha\beta}(t) \right> dt\end{split}$$
这里尖括号中的数量是压力张量的自相关函数。由于该自相关函数在长时间尺度下会衰减为零,因此积分收敛可以得出流体粘度。
这两个方程都可以产生相似的结果。对于具有大量数据点的轨迹,Green-Kubo 表达式可能在计算上消耗过大。计算自相关函数尺度 $O(N^2)$ 中 $N$ 就是数据点的数量。Einstein 关系式的尺度仅仅只是 $O(N)$。由于计算粘度需要查看大量数据点,因此将把重点放在 Einstein 关系式上。
压力张量本身是由原子运动和原子与模拟中的边界条件相互作用两部分组成。压力张量可以表示为:
$$\tau_{\alpha\beta} = \sum_i m_i v_{i,\alpha} v_{i,\beta} - \frac{dE}{d\varepsilon_{\alpha\beta}}$$
在这里,$m_i$ 是原子 $i$ 的质量,$v_{i,\alpha}$ 是原子 $i$ 在笛卡尔坐标 $\alpha$ 方向的粘度,$E$ 是系统的能量,随应力 $\varepsilon_{\alpha\beta}$ 变化会有差异。
经典力场的原理是用被设计为近似总能量的简单函数代替计算上消耗过大的电子结构计算。这种方法可以确保有效地模拟更大的系统,远远超出了电子结构计算所能实现的。该方法的主要挑战之一是为替换函数拟合参数,以便它们能够准确地预测能量。
一种方法是将分子分成许多化学类型。然后使用这些类型找到不同类型交互作用的特定参数。例如,乙烷中的 sp3 碳将与苯环中的 sp2 碳具有不同的关联势。由于将根据类型的定义排除一些组合,这就限制了需要找到参数的数量。因为参数适用于特定的原子类型和函数,这些势的类型通常会更准确。相对地,这些势往往更难以设置,因为每个原子的化学类型需要被结构指定。这种类型的势也不能模拟反应,因为需要原子连接来确定化学类型。
在本教程中,您将使用 OPLS-AA 力场模拟甲醇[4]。OPLS-AA 力场为这些类型使用了具有特定拟合势的原子类型。本教程将介绍如何使用这些类型的力场设置计算。