2019年客户甩给我一个任务——预测某种高强度聚乙烯纤维的拉伸断裂强度,实验测出来是3.2 GPa,要我算出个差不多的数字就行。我当时心想,拉伸模拟嘛,建个模型加个拉力跑MD不就完了?结果第一条应力应变曲线算出来断裂强度1.8 GPa,差了将近一倍。排查了三个月才找到原因——不是力场的问题,不是模型的问题,是拉伸速率的问题。

这个经历让我彻底意识到,拉伸分子动力学模拟远不是”加力→跑→看曲线”这么简单。速率、边界、应力计算方法、断裂判据,每一个环节都有可能把你的结果推向偏离实验的方向。这篇文章我把这些参数陷阱逐一拆解。
实验上的拉伸测试速率通常是10⁻³-10⁻¹ m/s,而MD模拟的拉伸速率一般在10⁶-10⁸ m/s——快了6-8个数量级。这个差距不是”可以接受的小偏差”,而是根本性的物理条件差异。
为什么这么快?因为MD的时间步长是1-2飞秒,总模拟时间通常在纳秒到微秒量级。要在100 ns内让一个10 nm长的样品拉伸到断裂(应变约10%),拉伸速率至少是10⁷ m/s。这个速率下,材料的响应机制和实验完全不同——实验上链段滑移和塑性变形有时间发生,MD的高速拉伸下这些慢过程来不及启动,材料倾向于以脆性断裂的方式响应。
我的经验是:对于聚合物体系,拉伸应变率控制在10⁸ m/s以下时,应力应变曲线的形状开始接近实验趋势;对于金属体系,10⁷ m/s以下才能观察到位错滑移而非纯粹的弹性断裂。但这只是相对改善,不是精确匹配。本质上,拉伸分子动力学模拟的速率限制是无法绕过的——你只能在”够慢以捕捉定性机制”和”够快以在合理时间内完成”之间找平衡。
具体操作上,我采用分阶段加载策略:前10%应变用较高速率(5×10⁷ m/s)快速建立预应力,然后降到1×10⁶ m/s慢速加载至断裂。两段速率的衔接处曲线会有一个应力突变,但后续的慢速段才是真正有物理意义的部分。这个策略比全程高速拉伸的结果可靠得多。
拉伸模拟的边界条件设置直接影响应力分布和断裂模式。我总结为四种方案:
方案一:固定一端、拉伸另一端。 最简单也最常用。左端原子固定(freeze),右端以恒定速率向右移动。应力计算取中间区域(排除两端边界效应)的平均Virial应力。适用场景:聚合物纤维、纳米线、单链拉伸。
方案二:应变控制加载。 不固定原子,而是周期性地改变盒子长度(LAMMPS中用fix deform命令)。所有原子随盒子变形,应力通过NPT系综的pressure输出读取。适用场景:块体材料、晶体拉伸、需要模拟均匀变形的场景。
方案三:应力控制加载。 给体系施加恒定的外力(或逐步增加的外力),观察应变响应。LAMMPS中可以用fix addforce或变量力实现。适用场景:蠕变模拟、应力松弛、时间依赖的力学行为。
方案四:混合边界。 中间区域用NPT自由变形,两端各留一层固定原子作为夹持端。这种方式最接近实验中的夹具拉伸,但设置复杂。适用场景:需要精确模拟实验拉伸几何的对比验证。
我80%的项目用方案一或方案二。方案一适合纳米尺度体系,方案二适合块体体系。方案四看起来更”物理”,但中间区域的应力计算需要额外处理边界层的影响,容易引入误差。选择的关键是:你的体系尺度决定边界条件,而不是反过来。
应力计算是拉伸分子动力学模拟中最容易出错的技术环节。MD中常用的Virial应力公式包含了动能贡献和势能贡献两部分:
σ_ij = (1/V) × Σ_k [m_k × v_k_i × v_k_j + Σ_{l≠k} r_kl_i × f_kl_j]
很多人直接用LAMMPS输出的pressure作为应力,但这个pressure是整个体系的体积平均Virial应力,包含了所有原子(包括固定原子)的贡献。固定原子的Virial贡献是虚假的——它们被约束住了,不应该参与应力统计。
正确做法是:只对非固定区域(middle region)的原子计算局部Virial应力,然后取空间平均。在LAMMPS中可以用compute stress/atom + compute reduce实现。这个细节如果不处理,对于聚合物体系可能导致应力偏差高达30%,对金属体系偏差约10-15%。
另一个细节:原子Virial应力中的动能项在高应变率下贡献显著(原子速度大),但在低应变率下几乎可以忽略。如果你的目标是和实验的”准静态”应力对比,应该把动能项从应力计算中排除,只保留势能贡献。LAMMPS的compute stress/atom默认输出包含动能项的总应力,需要手动分离。
聚合物体系:断裂通常表现为链段滑移、链断裂或空穴形成。应力应变曲线上断裂点对应应力峰值后的快速下降。但判断”何时断裂”需要看微观结构变化——应力峰值不一定是物理断裂点,可能是链段取向重排导致的应力硬化到软化转变。我的做法是结合应力曲线和RDF变化:当C-C键的RDF峰值突然降低(说明共价键断裂),同时应力曲线出现不可逆下降,才判定为真实断裂。
金属体系:断裂判据更复杂。延性断裂伴随位错增殖和空洞扩展,脆性断裂是晶面解理。位错的产生可以通过位错密度分析(DXA算法)实时监测。我做过一个铝单晶拉伸模拟,应变到8%时位错密度从0突然跳到10¹² m⁻²——这就是塑性变形开始的信号,应力曲线上的屈服点恰好出现在这个时刻。之后应力不升反降,但材料并没有”断”,而是进入塑性流动阶段。真正的断裂要到应变30-50%时空洞连通才发生。
所以拉伸分子动力学模拟的断裂判据不能只看应力曲线——必须配合微观结构分析才能给出物理上有意义的判断。
问题一:应力曲线的噪声。 Virial应力在原子尺度上的涨落极大,单帧的应力值可能波动±0.5 GPa。必须做时间平均——我通常取1000-5000帧的滑动平均,得到平滑的应力应变曲线。不做平均的曲线看起来像锯齿波,任何”峰值”都可能只是噪声。
问题二:重复性验证。 单次拉伸模拟的断裂应变可能偏差20%以上(取决于初始构型的随机性)。我做3-5次独立模拟(不同初始速度分配),取断裂应力和断裂应变的中位数作为代表值,而不是平均值——因为拉伸断裂是一个极端值事件,平均值会被异常高或异常低的单次结果拉偏。
问题三:尺寸效应。 聚合物纤维的直径从5 nm到50 nm,断裂强度可以差2倍——小尺度的表面效应更强,链端密度更高。金属单晶的截面尺寸从10 nm到100 nm,屈服强度差30-50%——小尺度下位错更容易逃逸到表面,导致”越小越强”的尺度效应。发表结果时必须标注模拟尺寸,并讨论尺寸效应的影响。
做了这些年拉伸分子动力学模拟,最大的收获不是算出了多少精确的断裂强度数字——说实话,和实验偏差30%-50%是常态。真正有价值的是机制层面的洞察:聚合物是链段滑移断裂还是共价键断裂?金属是延性还是脆性?断裂面在哪个晶面?这些定性结论才是MD模拟的独特贡献。
客户来找我做拉伸模拟,我第一句话就是”你是要精确数字还是要断裂机制?”如果要精确数字,我建议做实验;如果要断裂机制和参数趋势,MD能给出实验很难直接观察的东西——原子尺度的断裂过程。这大概就是拉伸分子动力学模拟最核心的价值定位。
GROMACS分子动力学模拟:从建模到轨迹分析完整流程
Gromacs代算 — 科研用户的GROMACS分子动力学外包服务选型与质量验收指南
高斯加速分子动力学模拟 — GaMD突破常规MD采样瓶颈的原理与实践
GROMACS计算自由能 — 从伞形采样到结合自由能的实战复盘
高斯分子动力学模拟 — 从Born-Oppenheimer MD到轨道动力学的方法复盘
Gromacs模拟计算:从建模到自由能的完整经验指南
GROMACS分子动力学模拟:生物分子实战经验全分享
材料拉伸计算:有限元方法与力学性能分析
分子动力学模拟势函数 — 从Lennard-Jones到机器学习势的选型艺术
LAMMPS计算表面张力 — 压力张量法与测试面积法的工程实践
LAMMPS分子动力学模拟 — 从in文件编写到后处理的全链路工程复盘
LAMMPS计算服务 — 从in文件定制到并行效率优化的全流程外包方案
分子动力学模拟拉伸 — 单轴拉伸应力-应变曲线的原子级获取
分子动力学模拟粗粒化 — 从全原子到MARTINI的映射策略与精度验证
分子结构预测 — AlphaFold3与MD联用的蛋白质动态构象系综采样
平衡分子动力学模拟 — NVT与NPT系综选择的十个常见误区
钙钛矿分子动力学模拟:力场参数化与相变分析的实战经验
vasp计算分子动力学模拟:从头算分子动力学方法与实战
生物分子动力学模拟:蛋白质/核酸/膜体系模拟方法
酶分子动力学模拟:催化残基运动与底物结合分析
AIMD分子动力学模拟:第一性原理MD计算方法与应用
平衡分子动力学模拟:NVT/NPT系综平衡策略与判据
AMBER分子动力学模拟:生物分子力场与tleap建模详解
薛定谔分子动力学模拟 — Schrödinger软件中Desmond模块的实战深度复盘