关于约化单位
为什么采用约化单位
LAMMPS的单位制中有一种很独特, 很重要也很难理解的单位叫LJ unit, 有些文献里也叫reduced unit. 独特之处是它没有单位, 全都是无量纲的; 重要的是不管什么单位输入到LAMMPS中, 都要转化为LJ单位.
所以它很难理解. 纵使你翻遍百度, 都一个说得明明白白的解答. 这时候你就需要谷歌, 去美妙的英文互联网世界中寻找答案.
第一个讲得非常清楚的文章来自PumMa (opens new window)这个软件的说明. 2007年以前, 这个软件只用reduced unit,
直到2007年, 前端才开始支持SI单位制的输入, 不过实际计算还是使用reduced unit.
有这么几个原因. 从历史上看, 主要的原因是来自于物理化学中的对应原理. 翻翻你的课本, 找到临界状态那一章. 我们稍微回顾一下. 如果你有公式恐惧症, 这一段不看并不太影响后面的说明:
我们可以根据范德瓦尔斯方程求van der Waals气体的临界常数. 由于临界点是曲线的极大点、极小点和转折点三点重合, 所以有一阶二阶偏导均为0:
(∂V∂p)Tc=0
(∂V2∂2p)Tc=0
然后我们就能解出来临界压力, 临界体积和临界温度与两个常数a、b间的关系. 把这个关系带入范德瓦尔斯方程, 用临界量消掉a和b, 就得到:
两边同时除以pcVm,c, 有:
(pcp+Vm23Vm,c2)(Vm,cVm−31)=38TcT
定义:
p∗=pcp
V∗=Vm,cVm
T∗=TcT
称带星号的为对比压力(reduced pressure), 对比体积(reduced volumn)和对比温度(reduced temperature). 代入上式, 得:
(p∗+V∗23)(3V∗−1)=8
上式成为范德瓦尔斯对比状态方程式. 此式不含有因物质而异的常数, 且与物质的量无关. 它是一个普遍性的方程式. 任何范德华气体都可以满足上式, 且在相同的对比温度和对比压力下, 就有相同的比容积. 此时,
各物质状态成为对比状态(corresponding state), 这个定律也称之为对比状态定律(law of corresponding state). 试验数据证明, 凡是组成、结构、分子大小相近的物质能比较严格地遵守对比状态定律.
当这类物质处于对比状态时, 他们的许多特性, 如压缩性、膨胀系数、逸度系数、黏度、折射率之间都有简单的关系. 这个定律能比较好地确定结构相近的物质和某种性质, 反映了不同物质间的内部联系, 把个性和共性统一起来.
对比状态原理在工程上有广泛的应用. Guggenheim曾经说过:"对比状态原理确实可以看作范德华方程最有用的副产品, 它不仅在研究流体热力学性质方面取得了巨大的成功, 而且在传递方面的研究中, 也同样有一席之地."(J.Chem.
Phy. 1945,13,253)
通过上面照抄的傅献彩老师的物理化学的内容, 相信你可能已经对所谓"约化"有了个模模糊糊印象. 这个缘起大概给出了一个粗略的概念, 就是即便不同物质纷杂繁复, 但是一旦除以临界点的值, 就神清气爽.
虽然这个定律在多组分系统中失效, 但是暗示了一种解决问题的方式. 第二个使用约化单位的原因是, 我们可以把数据的数量级调到一个很舒服的位置. 比如相对原子质量就是一种约化的思想. 一个氢原子的质量是1.674⋅10−27千克,
经过C-12原子质量的六分之一的约化, 就成了清清爽爽的1了. 在程序数值计算中,还能大大减少计算带来的误差.
约化单位的选取
核心问题就是, 约化单位怎么约. 一个约化单位体系需要选定4个基本参数:
- 长度单位 σ∗
- 质量单位 m∗
- 能量单位 ϵ∗
- 电荷单位 q∗
这四个基本参数的选择决定了后面所有的其他单位. 比如说, 时间单位可以写成τ∗=σ∗√m∗/ϵ∗. 在Markvoort等人的脂质模型中, 采用了以下的这些约化因子:
Quantity | Reduced unit | SI unit |
Length | σ∗ | 1.9665kJ/mol=0.47kcal/mol |
Mass | m∗ | 0.45nm |
Energy | ϵ∗ | 56.11amu=93.173⋅10−27kg |
Charge | q∗ | 1e=1.602⋅10−29C |
Time | τ∗=σ∗√m∗/ϵ∗ | 2.4037ps |
Temperature | T∗=ϵ∗/kb | 236.51K |
Pressure | $ P∗=ε∗/σ∗3 | 358.35bar=3.58358∗107Pa |
Mass density | ρ∗=m∗/σ∗3 | 1022.5kg/m3 |
Number density | n∗=1/σ∗3 | 10.974nm−3 |
Permittivity | ε0∗=NA⋅q∗2/(σ∗ε∗) | 1.7469⋅10−8C2/Nm2 |
在这个模型中, 使用了1.3T∗的约化温度, 相当于实际的307K. 在这个系统中的大气压使用了0.00283P∗的约化温度. 用于积分的时间步长是0.005τ∗, 相当于实际中的12fs.
在原文中, 同样给出了一个转换工具, 即确定了四个基本参数, 就可以计算出其他的约化因子.
例如, 如果想要一个1fs的时间步长, 在约化单位下相对应的对应步长应该是1fs除以换算器右上角计算出来的数值(PumMa默认是2.404ps), 即τ∗=1/2404. 需要再次强调的是, 建模时基本单位的选取是自己决定的. 比如我认为我的室温就是305K, 那我温度的约化因子就选择305K, 那这个模型下任意一个温度, 例如405K就应当选为T∗=405K/305K. 比如说我在粗粒化过程中, 认为一个全原子下的亚甲基的质量是我的约化单位, m∗=14g/mol, 相对应我的甲基的约化质量应该是m∗=15/14. 至于如何自己决定, 这就是自己的物理直觉或者完全是方便起见.