密度是分子动力学模拟中最基础也是最容易出错的物理量之一。在均匀体系中,密度计算直截了当——总质量除以总体积;但在非均匀体系(界面、纳米孔、液滴)中,密度的空间分布才是真正有价值的分析目标。LAMMPS提供了多种密度计算工具,关键在于选择合适的统计方法和空间分辨率。

对于体相液体或固体,密度可以直接从模拟盒子尺寸和原子质量推算:
variable rho equal mass(all)/(vol*1.66054)
thermo_style custom step temp v_rho
这里mass(all)返回所有原子总质量(原子质量单位),vol返回盒子体积(ų),除以1.66054是将g/mol·Å⁻³转换为g/cm³。
这种全局密度计算简单直接,但有两个前提:体系必须已达到平衡,且盒子体积在NPT系综下已收敛。在NVT系综中,密度是输入参数而非输出,通常需要在NPT下先确定平衡密度,再切换到NVT做生产模拟。
界面体系的核心分析是密度沿某一方向的分布。LAMMPS用compute chunk和fix ave/chunk组合实现:
以水-气界面为例,沿z方向统计氧原子密度:
# 分bin设置:z方向每0.5Å一个bin
compute chunks all chunk/atom bin/1d z lower 0.5 units box
# 统计每个bin内氧原子数密度
# group oxygen type 1(水氧原子类型为1)
compute chunks_ox oxygen chunk/atom bin/1d z lower 0.5 units box
fix density_profile oxygen ave/chunk 100 10 1000 chunks_ox &
density/mass file rho_z.txt
输出文件rho_z.txt包含每行:bin编号、z坐标中心、质量密度(g/cm³)。
界面密度剖面的典型形态:液相区密度恒定(约1.0 g/cm³),过渡区密度从90%降到10%(界面层),气相区密度趋近零。界面厚度定义为密度从90%降至10%的z区间,SPC/E水在298K下的界面厚度约3.5-4.0 Å。
对于球形对称体系(液滴、纳米颗粒周围的溶剂化层),需要径向密度分布:
compute rdf all rdf 100 1 1
fix gr all ave/time 100 10 1000 c_rdf[*] file rdf.txt mode vector
g(r)本身不是密度而是对均匀分布的归一化因子,要获得实际数密度n(r):
n(r) = ρ_bulk * g(r)
其中ρ_bulk是体相数密度(atoms/ų)。
NPT模拟中密度是动态量,收敛判断需要注意几个要点:
NPT中盒子体积自由涨落,密度标准差与体系大小相关:
小体系的密度涨落是物理性的,不代表模拟不稳定。但如果密度平均值在长时间内持续漂移(>1 ns趋势),说明力场参数或恒温恒压器设置有问题。
fix 1 all npt temp 298.0 298.0 100.0 iso 1.0 1.0 1000.0
Nosé-Hoover恒温恒压器(fix npt)是标准选择。阻尼参数tdamp建议100-200步(100-200 fs),pdamp建议500-2000步。pdamp太短会导致盒子剧烈振荡,太长则平衡慢。
对于力场给出明显偏离实验密度的体系(如TIP3P水在1 atm下平衡密度约0.98 g/cm³而非1.00),这是力场本身的系统偏差,不应该通过调节压力来”修正”。
有时一维密度剖面不够,需要二维甚至三维密度分布。LAMMPS支持二维分bin:
compute chunks2d all chunk/atom bin/2d x lower 1.0 y lower 1.0 units box
fix 2d_map all ave/chunk 100 10 1000 chunks2d density/mass file rho_xy.txt
输出一个二维密度网格,可以用Origin、Python matplotlib或OVITO做等高线图。典型应用:
在平板型界面模型中,z方向周期性意味着有两个界面(上下各一个)。统计密度时需要确认只取一个界面区域,否则两个界面的数据叠加导致密度剖面变形。
bin太窄(<0.5Å)会导致每个bin内原子数太少,统计噪声大;bin太宽(>2Å)会抹平界面细节。经验值:液态体系0.5-1.0Å,固态体系1.0-2.0Å。
LAMMPS的fix ave/chunk支持density/mass(质量密度)和density/number(数密度)。多组分体系中两者不等价——质量密度受重原子主导,数密度对轻原子更敏感。分析溶剂化层结构时通常用数密度(可以分辨不同原子类型的空间分布),分析宏观性质时用质量密度。
fix ave/chunk的参数Nevery Nrepeat Nfreq决定了统计方式。100 10 1000表示每100步采样一次,重复10次,每1000步输出一个平均值。如果Nfreq太小(如100),统计窗口太短,密度剖面噪声很大。建议Nfreq至少等于Nrepeat*Nevery,且总统计时间覆盖至少100 ps。
Gromacs模拟计算:从建模到自由能的完整经验指南
GROMACS分子动力学模拟:生物分子实战经验全分享
材料拉伸计算:有限元方法与力学性能分析
GROMACS分子动力学模拟:从力场选择到自由能计算的完整工作流
GROMACS计算自由能:FEP全流程参数优化与膜蛋白体系的特殊处理
分子动力学模拟GROMACS完整流程:力场选择、平衡与轨迹分析方法
GROMACS计算自由能:膜蛋白-配体FEP结合能中电荷-范德华解耦与BAR收敛
分子动力学模拟计算:GROMACS蛋白质-配体复合物稳定性验证全流程
LAMMPS计算密度:从均匀体相到界面密度分布
LAMMPS计算原子应力:从Virial公式到应力分布可视化
LAMMPS计算表面张力:从力学定义到多方法对比
LAMMPS模拟计算:从输入文件到结果分析的全流程经验
LAMMPS计算势函数:力场选择与参数标定实战经验
LAMMPS计算自由能:自由能微扰与积分方法
径向分布函数理论计算:RDF的计算方法与应用
LAMMPS粗粒化建模:粗粒化分子动力学方法
模拟计算分子动力学:从入门到精通的实战经验
MS分子动力学模拟:Forcite模块实战经验指南
VASP计算分子动力学模拟:AIMD实战经验全分享
均方根偏差计算:RMSD在分子模拟中的应用
VASP怎么计算:从输入文件到结果分析的完整入门指南
分子动力学计算模拟:力场选取、系综控制与结果验证的实践指南
VASP计算结合能:从参数设置到结果验证的完整流程
vasp计算自由能:振动熵贡献与准谐近似的精度路径