微纳尺度力学仿真,这个词听起来像是个“高精尖”的科研专属话题,但实际上,任何一个和芯片封装、MEMS器件、纳米材料、薄膜涂层打交道的人,都会在某一个时间节点被它拦腰挡住。刚接触时我也觉得这不过是把宏观仿真软件里的尺寸改小一点,把网格加密一些,真正跑起来才发现完全不是那么回事:原子层面的离散性、表面效应、尺寸依赖的材料参数,每一项都在冲击着宏观力学的基本假设。这篇内容,想把材料力学在微纳尺度下做仿真这件事掰开揉碎讲清楚,适合正在做微纳结构研究的、被实验重复性折磨的研究生,也适合刚入职半导体或精密制造行业、需要评估微小结构可靠性的工程师。
1. 先把“微纳尺度力学仿真”这件事拆开看清楚
1.1 微纳尺度下,宏观力学概念为什么“失灵”
在材料力学的课堂里,我们从虎克定律开始,把材料当成一种连续介质,用弹性模量、泊松比、屈服强度这些参数去描述它的行为。这个框架在毫米级别以上都相当可靠,因为在这个尺度下,材料内部成千上万的原子统计平均的结果,掩盖了单个原子的随机涨落。但当尺寸缩小到微米甚至纳米,情况完全不同了。
举个容易理解的例子:一根直径1毫米的铜丝和一根直径20纳米的铜纳米线,它们在外力下的表现截然不同。宏观的铜丝几乎不表现尺寸效应,你测出来的弹性模量与块体材料一致。而纳米线的弹性模量可能明显偏离块体数值,甚至会随着直径变化而变化。这个现象背后的原因是,纳米线的表面原子占比大幅增加,表面原子所处的化学环境、配位数和内部原子不同,导致表面具有很高的表面能,进而通过表面弛豫、表面重构等方式影响整个结构的力学响应。
我在做金属纳米线拉伸模拟的初期,曾经直接用宏观参数去设定纳米线的弹塑性行为,结果应力-应变曲线完全对不上实验数据,后来才意识到问题出在忽略表面效应上。这个误区在微纳尺度仿真中非常普遍,因为人类的本能会去用熟悉的知识框架去套不熟悉的现象。
1.2 连续介质假设的崩溃
连续介质力学的基础是“质点”概念。它假设物质是连续的、均匀的,一点处的密度和应力都有定义。这个假设隐含了一个前提:单位体积内的原子数量足够多,以至于热涨落没有被感知,统计平均是稳定的。
当一个结构的尺寸减小到几个纳米,比如一个直径3纳米的铜纳米线,它内部沿直径方向大约只排列了不到20个原子。这时候“应力”这个概念本身就变得模糊了。应力在连续介质力学中的定义是单位面积上的内力,但在原子尺度下,力是离散地作用在单个原子上的。此时,你必须用原子应力(Virial应力)的概念去定义应力,而原子应力本身是依赖温度、原子速度的高频涨落量。
这也解释了为什么微纳尺度力学仿真不能简单地在有限元软件中把网格尺寸缩小就行了。当结构的特征尺寸小于100纳米,尤其是小于10纳米时,你几乎必然要引入分子动力学或其他原子级模拟手段,把每一个原子看作一个牛顿质点,用势函数来描述它们之间的作用力。
1.3 微纳尺度仿真的完整图谱
做微纳尺度力学仿真,市面上主流的技术路线大概有四类。第一类是分子动力学(Molecular Dynamics),也就是我后面文章里主要展开的方法,它把时间和空间尺度放在纳米到微米、皮秒到微秒区间,用牛顿力学驱动原子运动,适合研究塑性变形、位错运动、断裂萌生这类微观机制。第二类是蒙特卡洛方法,它不关注时间演化,而是通过概率采样研究原子构型稳定性和热力学性质。第三类是有限元法,适合微米级别以上的结构,通过把表面效应通过引入界面单元等方式做近似。第四类是多尺度耦合,比如同时使用宏观有限元描述远处的弹性区域,在裂纹尖端或接触区域切换原子模型。
我需要坦白讲,初学者最容易掉进去的坑就是一上来就选择最“炫酷”的多尺度耦合方案,结果在耦合边界上花了三个月还没有产出。正确的方式是先确认你关心的力学问题的特征尺度:如果涉及的塑性变形区尺寸在几纳米,就用纯分子动力学,完全不需要耦合宏观。如果你只是关心封装结构的整体应力分布,那传统有限元加一个修正的表面弹性模型就足够了。
2. 方法选型背后的真实逻辑:为什么分子动力学是主力
2.1 分子动力学的基本原理和适用边界
分子动力学的原理,一句话概括就是:把一堆原子放进一个盒子,给定势函数和初始速度,然后用牛顿第二定律去数值积分每一个原子的运动轨迹。它的核心要素有两个:原子间的相互作用势(力场)和时间积分算法。
这里需要强调一个点:分子动力学的空间尺度上限是有限制的。因为计算量至少与原子数的二次方成正比(如果你用Ewald求和处理长程相互作用),即便有GPU加持,目前常规的分子动力学模拟能做到的体系尺寸也就在几十到几百纳米的量级。你不可能用分子动力学去模拟一个完整的芯片封装件的受力过程,原子数会到几十亿个,算力不允许。
所以分子动力学真正的发挥区间,是当一个微型结构中出现了局域的微观机制——比如交变载荷下微裂纹的萌生、双相材料中的位错运动、纳米压痕过程中的位错成核——你关心的是这个局部区域内部发生了什么,而不仅仅是宏观的位移与应力。这时候分子动力学可以把物理本质清晰地呈现出来,这也是实验很难观测到的部分。
2.2 有限元处理微纳问题的局限性
有限元方法的核心是人为设定单元间的本构关系,这个本构关系是从试验或理论推导中得到的宏观平均响应。在微纳尺度下,这个本构关系往往和宏观有着明显差异。比如硅的弹性模量在几百纳米厚度下有软化或硬化的趋势,但是这个趋势没有一个统一的、可以给有限元直接使用的本构模型。
我见过不少人在ANSYS或Abaqus中把几百纳米厚的薄膜设置为各向同性弹性材料,然后计算其变形。这样做得到的结果,只能是一种粗糙的一阶近似。因为薄膜的各向异性、晶粒取向分布、界面应力传递机制全部被抹平了,这些恰恰在微纳尺度扮演极其重要的角色。不是说有限元不能用,而是说你必须清楚地知道你在舍弃什么。如果你做的结构尺寸在1微米以上,晶粒尺寸远小于结构尺寸,使用等效各向异性弹性常数加表面修正的有限元模型仍有意义;但当研究对象的特征尺寸与晶粒尺寸、位错平均间距处于同一量级时,连续介质假设已经失效了。
2.3 多尺度耦合:想法很好,代价明显
多尺度耦合方法的思路很直接:你感兴趣的关键区域用原子级精度描述,其余远场区域用连续介质模型描述,中间通过某种过渡区域衔接。听起来很完美,实现起来却有大量陷阱。
以耦合方法中典型的准连续方法为例,它在原子区和连续区之间通过专门“内聚力模型”衔接,但你在实际操作中经常会遇到边界上波的反射问题、虚反射干扰、力学状态不均一的问题。调试这些问题的难度相当高,没有几个月专门时间和较好的数学力学功底,很容易卡住。
所以我个人建议的策略是:先做纯粹的原子级模拟,把微观机制搞清楚,再把机制总结成语义化的结论,例如某种塑性变形从什么临界应力开始,多大尺寸下位错开始从表面发射。这些结论可以以修正项的方式反馈到宏观有限元模型中。这种做法看起来“朴素”,却往往比强行耦合更有效、更能出成果。
3. 实操拆解:从建模到后处理的完整流程
3.1 初始构型:从哪里获取原子坐标
很多人拿到微纳尺度力学仿真任务,第一步就卡住:怎么得到纳米线或纳米薄膜的初始构型?最简单的方法是直接从晶体数据库中获取块体单晶的晶格常数和原子基矢,比如铜的面心立方结构,晶格常数约为0.3615纳米。知道晶格常数后,用编程脚本按周期性重复构建一个矩形盒子,也就是超胞。
还有一种方法是从Materials Studio、OVITO这类可视化工具中导入实验表征得到的构型数据。3D打印金属微观组织、离子注入损伤区域的初始构型(这些一般从TEM观测和能谱数据重建而来),在Materials Studio中可以做初步处理再导出。需要注意的是,从实验数据中读取原子坐标或者区标坐标时必须仔细审查原子类型、空间群是否匹配,否则后面的力场参数会完全对不上。
3.2 边界条件和表面取向的选择
在分子动力学里,边界条件不是简单的“固定面”和“自由面”,而是周期性边界与非周期性边界的组合。做纳米线拉伸时,常见的设置是:拉伸方向为自由边界或固定边界,另外两个方向设置自由表面。模拟一个真实的纳米线,它本质上是有自由表面的独立结构,所以仿真盒子在垂直于拉伸轴的平面内要留出足够真空层,通常真空层厚度超过势函数截断半径的两倍,一般取2到3纳米起步。
这样做是为了避免邻近镜像原子之间的虚拟相互作用。我遇到过一个问题:当真空层不够厚时,纳米线表面原子会与自己在镜像盒子中的对应原子产生吸引力,导致表面应力数据出现严重偏差,影响到后续的表面能计算。这个坑极其隐蔽,因为不仔细看可视化结果根本发现不了。
晶向选择也值得单独说明,因为不同的晶向会直接影响变形机制。面心立方金属沿[100]方向拉伸时,塑性变形主要依赖位错的滑移和孪生,但不同初始结构取向也会观察到形成层错等缺陷的差异;沿[110]或[111]方向拉伸时,因为Schmid因子不同、滑移系激活概率不同,塑性模式会出现显著差别。所以如果你在做某个特定取向纳米线的研究,必须确保初始构型是按这个取向装的。
3.3 力场选择:决定了仿真可信度的生命线
势函数是分子动力学仿真里最核心的东西,相当于有限元里的本构关系。很多人练手时习惯用LJ势(Lennard-Jones势),它计算快、形式简单,适合稀有气体或一些简单模型。但如果你用它去模拟金属,几乎注定得到错误结果,因为LJ势完全无法描述金属键的方向性和多体效应。
对于金属材料,目前公认可靠性较高的是嵌入原子势(EAM势)和改进型嵌入原子势(MEAM势)。EAM势把原子能量表达为“对势项+嵌人项”的结合,能够较好地复现金属的层错能、弹性常数和空位形成能。做拉伸、压痕、位错这一类模拟,EAM基本是首选。举个例子,铁的原子间相互作用,你能找到多套成熟的Fe势函数参数,但每一套适用的温度范围、应力状态都是有差异的。大家在选势函数时,一定要看它的拟合目标和你模拟的工况是否匹配——是拟合了室温性质还是高温性质?是拟合了平衡态还是高压态?拟合了面心立方还是体心立方?这些细节直接决定了结果的可靠度。
硅和碳这类共价键材料,需要用Tersoff势或AIREBO势。Tersoff势可以描述共价键的方向性,而AIREBO势在碳材料(包括石墨烯和碳纳米管)中被广泛使用。这里还想提醒一点:不要忽视势函数文件里的参数单位。LAMMPS的势函数有好几种单位制,metal单位制下的能量单位是电子伏特,实单位制下是卡路里每摩尔,一个参数写错整个计算就废了。
3.4 弛豫:让原子从“人造状态”回到“自然状态”
你构建的初始晶格是一个理想的、零开尔文下的完美晶格,而实际材料总是有表面弛豫和热涨落的。所以在任何加载之前,必须对体系进行能量最小化和热力学弛豫。
能量最小化,我习惯用共轭梯度法,让体系对所有原子坐标的梯度为零,使结构下降到势力场中的局域极小状态。这相当于“拍照定妆”:把初始人为摆放的位置修正为势能最低的自然形态。能量最小化之后,再进行高温弛豫或常温弛豫。
高温弛豫时要注意,体系温度应该逐步升高,不要直接从300K猛地跳到800K。温度骤升会让原子获得极大动量,可能直接把结构打散。我的标准做法是分阶梯升温:从10K到100K到300K再到目标温度,每个温度点跑5万步左右让体系充分均匀,再进入统计阶段。当初我偷懒省掉了100K这一步,结果模拟纳米线直接崩断了,后来排查发现不是物理问题,纯粹是热冲击让纳米线发生了非物理的熔化。
3.5 加载方式与加载速率:别让“拽”变成了“扯”
弛豫完成后进入加载阶段。分子动力学中常用的加载方式有三种:恒应变率加载,就是固定一端原子层,另一端以恒定速度整体移动,速度除以样品长度就是名义应变率;恒应力加载,通过控制外力实现真实恒应力环境;以及应变控制加载,每一步按设定应变增量调整盒子长度。
这里我要重点讲一个困扰许多人的操作,就是这个“拉伸速度”该怎么定。宏观实验中材料的拉伸应变率通常是每秒(10^{-4})到(10^{-2})量级,但分子动力学模拟受时间尺度限制,能跑到的应变率往往在每秒(10^{6})到(10^{10})量级。这个东西有清晰的物理及方法论影响:应变率太高,位错来不及萌生和滑移,应力会被过度抬高,结果容易失真;应变率过低,计算资源又不够,模拟完不成。
我自己的经验是:先跑几个不同应变率的系列模拟,比如(10^{7})、(10^{8})、(10^{9})每秒,把应力-应变曲线放在一起对比。如果你发现强度和塑性应变区间随应变率变化不剧烈,或者是成某种可外推的规律,就可以选择一个合适的值;如果差异非常大,说明你已经进入了非物理的高应变率区域,必须调低。这个检验环节虽然费时间,但能让你避开大量后续的“数据解释困境”。
3.6 后处理:从轨迹文件里提取力学指标
模拟跑完,LAMMPS会生成包含原子坐标、速度、力等信息的轨迹文件。后处理的核心工作是提取应力-应变曲线、计算结构演化指标、可视化变形模式和缺陷演化。
应力方面,最常见的做法是使用原子Virial应力。Virial应力定义中包含原子的速度贡献(动能项)和原子间相互作用贡献(势能项),所以本质上它是对热运动的瞬时响应,需要做时间平均消除热噪声。在LAMMPS中,通常每100步输出一次应力,再对几千个时间步做滑动平均。我曾经看到有人直接把原始输出的每帧应力连起来画图,曲线的锯齿非常严重,这是没有做平均处理,属于新手常见问题。
应变的话,如果用的是恒应变率加载模式,名义应变可以直接由拉伸位移除以初始长度得到。但如果体系发生了显著的非均匀变形,名义应变就不足以反映局部真实变形了。更好的方式是提取局部应变场,计算方式可以先构建一个Voronoi单元划分,然后根据每个单元的形变梯度张量求解格林-拉格朗日应变。OVITO里有一个很好的工具叫Atomic Strain,可以自动完成这项计算,建议直接拿来用。
4. 关键仿真参数的设定逻辑和常见陷阱
4.1 时间步长的数学约束
分子动力学中,每步积分的时间长度就是时间步长。时间步长的选择受限于体系中最快的运动模式——通常是氢原子的振动或某些轻原子的高速运动。但对于金属体系,限制因素是原子振动的最高频率。典型金属中原子振动周期在0.1皮秒量级,为保证积分稳定,时间步长至少要低于振动周期的十分之一,一般设置在1飞秒左右。
如果体系中含有氢原子或氢键这类轻原子,时间步长要降到0.5飞秒甚至0.25飞秒。你一定不能为了节省计算时间把时间步长拉大,那是效率提升了、稳定性崩坏的开端。我常看到有人在Instagram或社区里晒出时间步长设为5飞秒跑金属模型,然后得出非常诡异的“新相变机制”,这基本就是时间步长过大导致的高频数值噪声累积。
4.2 温度控制的系综选择
做完能量最小化后,进入热力学采样阶段。NVE系综(微正则系综)中原子数、体积和总能量固定,系统不与外界交换热量;NVT系综(正则系综)保持原子数、体积和温度固定,通过恒温器控制温度;NPT系综则连压力或应力也控制住。加载拉伸一般选择NVT,因为在拉伸过程中体积会变化,但压力不能完全控制——如果你用NPT并控制压力为零,体系会向侧向收缩,这与现实的单轴拉伸条件存在本质差异。
温度控制器的选择也有讲究。Nose-Hoover恒温器是LAMMPS中最常用的,适合NVT系综。但要注意,Nose-Hoover恒温器对体系希望达到的平衡时间参数有敏感关联,耦合时间常数设置不当会引入虚假振荡。做高速冲击或剧烈变形时,也有用朗之万恒温器的做法,它能模拟原子尺度上热浴的随机摩擦效应,不过需要明确知道它只是热浴的近似。
4.3 应变率效应的处理
高应变率下,材料的强度会被不均匀地放大。这是文献里反复报道的事实。你若在分子动力学中用每秒(10^{9})的应变率去拉伸铜纳米线,你会发现其强度是实验值的2到3倍。这个现象有两个部分构成:一是物理上存在的高应变率效应(位错运动来不及跟上);二是纯粹的非物理速度效应(加载波传递速度超过了应力波速度)。
从实用的角度讲,你需要尽量选择尽可能低的应变率,但同时又要保证模拟在可接受的时间窗口内完成。一条经验规则是:确保加载速度不高于声速的0.01到0.1倍。铜的纵波声速约为4700米每秒,一条长20纳米的纳米线,其声速穿越时间约为皮秒量级。如果端部移动速度过快,你会看到形变集中在加载端,另一端摸不着头脑,这说明应力波还没来得及传导。
4.4 体系尺寸与统计收敛性
纳米线直径和晶粒尺寸直接决定仿真的可信度。原子级模拟与宏观实验一个很大的不同在于,你无法通过“无限大”体系来做收敛性验证。你把纳米线直径从5纳米增加到10纳米,强度可能下降10%到20%;继续增加到20纳米,可能再下降几个百分点。这个过程不应有断崖式变化。
所以在正式跑计划之前,建议先做一组尺寸收敛性测试:同一温度、同一应变率下,跑4到5组不同尺寸的纳米线,看强度和变形模式是否趋于稳定。如果直径变大了位错形核机制都变了(比如从表面逐步形核变为内部均匀形核),那你必须意识到你做的只是一个特定尺寸下的个案,而不是普遍规律,写论文时要格外小心。
5. 高频踩坑实录与问题排查技巧
5.1 坑一:弛豫时原子飞出盒子
现象:能量最小化过程中原子坐标不断出现NaN(不是一个数字)或某一原子的速度失控。
排查思路:第一步检查势函数文件中的截断半径是否大于盒子尺寸(或大于真实截断半径)。第二步检查初始构型中是否有两个原子放置在极近位置,特别是当原子坐标由脚本按周期性排布产生时,边界处的原子间距可能因四舍五入误差而变得异常小。第三步检查时间步长是否过大,超大时间步会让原子越过能量势垒导致灾难性崩溃。
我记忆里有一次调了两天的bug,最后发现是ATC势文件中把单位制写错了。那种把类似物理量用错了单位的错误通常会体现为原子位置在几百步内指数级发散。之后我每次使用新势函数文件,都会先跑一个小体系做50步测试,看总体能量是否单调减小,再做正式运转。
5.2 坑二:应力-应变曲线异常抖动
现象:输出的应力-应变曲线像锯齿一样剧烈震荡,平均之后只剩一条毛刺很重的线,塑性平台也看不出来。
不要急着怀疑物理机制,先排查统计噪声。应力计算中包含动能贡献项,而温度控制下原子速度在不停涨落。一般来说用Virial应力输出时,需要做两个层面的平滑:一个是时间窗口平滑,另一个是体积累计平均。如果这两步都做了还是“抖”,就要考虑以200步或500步为一个统计窗口,在每一窗口内先对原子速度做个再平均。这条曲线还抖的话,检查是不是体系厚度只有几个原子层,由于表面原子占比过高导致应力波动本质上偏大。
5.3 坑三:出现了非晶化或熔化
现象:温度明明不高(比如300K),但体系在拉伸过程中突然大量非晶化,或者整体熔化,结构FCC配位数迅速降低。
问题多半出在高温弛豫阶段升温过快。如果体系直接从293K迅速升到800K,原子获得巨大动能,而弛豫时间不足,体系就会“跳到”一个非物理高温状态。另外加载应变率太高也会导致局部热点。高应变率加载下剧烈塑性变形会产生大量热量,如果体系是绝热的、无法及时散热的,局部温升可能超过熔点。此时你可以使用LAMMPS的热浴命令对体系进行额外控温,把塑性功产生的热量及时带走。
5.4 坑四:结果对初始随机种子极度敏感
现象:同样的边界条件和参数,仅仅是换了初始原子随机速度的种子,最终的缺陷结构、变形路径就会完全不同,算出来的屈服强度差20%。
这其实是表面力场的混沌特性,不代表出错了。但如果你想得到统计意义上有代表性的结果,不能只跑一次。我建议对每种条件至少跑3到5个独立随机种子,把结果做统计处理,看平均值和方差。许多发表论文里的“一个特定结构”结果,本质上只是单次模拟样本,可重复性极差。为了让自己心定,可以固定随机种子记录到日志,避免踩到“种子魔咒”。
5.5 高频问题速查表
| 现象 | 大概率原因 | 首要排查手段 |
|---|---|---|
| 能量发散 | 原子重叠或力场单位错误 | 检查单位设置与截断距离,极小体系试跑 |
| 应力严重偏大 | 应变率过高或未做统计平均 | 降低应变率一个数量级并延长统计平均 |
| 出现非晶化 | 升温过快或恒温器失控 | 阶梯升温,检查温度输出与实际设定温度是否一致 |
| 变形集中在加载端 | 加载速度超过声速阈值 | 降低加载速率或缩短样品长度 |
| 结果对种子敏感 | 体系小面临着重大热力学涨落 | 采用多重独立模拟并做统计平均 |
| 表面污染影响结果 | 真空层过薄导致镜像相互作用 | 将真空层加厚至3纳米以上并验证 |
5.6 一个贯穿始终的避坑建议
把整个模拟工作流视作一条生产流水线:输入文件、初始结构、力场、边界、加载、后处理,任何一环都不可依赖“默认值”。我在日常推进项目时,习惯为每一类体系维护一份“配置模板”,里面记录着经过验证的时间步长、恒温器参数、加载速率和尺寸范围。开发新模型时,先拿一个小体系检查流程是否跑通,再放大体系规模,这样可以避免在计算资源上过度透支。
6. 工具链的取舍与工作流沉淀
6.1 LAMMPS为主力,后处理用OVITO
LAMMPS是目前学术界和工业界使用最广泛的大规模分子动力学软件,开源、文档详尽、能跑GPU加速。它本身不绘制可视化结果,只负责核心模拟计算。OVITO(Open Visualization Tool)是我日常离不开的可视化与后处理配套工具,它能直接读取LAMMPS轨迹文件,帮助分析位错(通过位错提取算法DXA,也就是Dislocation Extraction Algorithm)、识别晶体结构(用CNA、CSP等),以及导出原子应变场与应力场分布。
实际操作中,入口级建议是:先用LAMMPS自带的基础命令把日志和dump文件格式搞清楚,再用OVITO来处理可视化。千万不要只盯着动画看,那只是感受物理图像的方式,真正定量的机制判断必须依赖对位错线长度、表面原子比例、缺陷原子配位数等指标的数值提取。
6.2 一个可靠的最小工作流
我给新手整理一套最小可用的执行路径:
第一步,用LAMMPS构建超胞并弛豫,输出势能-时间变化曲线,确认势能收敛。 第二步,以弛豫后的状态为起点,输出可选温度和加载轴方向上的应力-应变响应。 第三步,在不同应变率下对比初始屈服应力,确定一个可接受的率效应范围。 第四步,在确定的工作条件下,保持同一应变率,开展至少3个独立随机种子模拟,对结果做平均。 第五步,用OVITO识别缺陷形核路径,并将特定时刻的原子快照与应力应变曲线的关键拐点对应起来。
这套流程可以覆盖绝大多数材料力学相关的微纳尺度仿真需求。
6.3 计算资源的经验估算
很多刚起步的人会问:纳米线拉伸模拟需要什么样的服务器?对于一套含有50万个原子的铜纳米线拉伸模型,在单张GPU卡(比如NVIDIA A100级别)上用EAM势函数跑100万步,通常需要十来个小时到一两天。而一个真实的原子级拉伸实验,如果跑得太粗,往往信息密度不够;跑得太细,又特别吃资源。所以建议先在原子数较少的情况下,把参数定准,再切换到GPU版本进行批量生产。
如果你使用的是普通八核CPU节点,那么把原子数控制在5万以内是比较合适的。超过50万原子的大体系,没有GPU加速,基本只能过夜慢慢跑。对于计划性不强的项目,资源估算失误往往成为拖慢进度的隐形杀手。
7. 我最后想说的几件实在事
做微纳尺度力学仿真,本质上是在用计算手段去逼近“看不见的力学”。它不是一个可以快速上手的“工具”,而是一种结合了统计物理、经典力学和计算数学的复合能力。
我最深的体会是:不要贪多求全。刚开始的时候,把有限元、分子动力学、耦合算法全都学一遍,什么都懂一点点,但什么都不精通,是最低效的路线。反而是锁定一个具体问题,比如“直径5纳米的金属纳米线拉伸塑性”,仅用一件工具把它算透,把相关机制谈清楚,就已经超过多数人。
另外特别想说:仿真结果再漂亮,也要警惕自己的认知偏差。模拟结束后,去找一两篇相同体系的实验文献,把强度、弹性模量、塑性机制对比一下,哪怕数量级一致,也能极大提升你对结果的信任度。做仿真最有成就感的一刻,并不是曲线完美得几乎能上期刊封面,而是你终于用计算解释了实验中一直说不清的那个变形机制。那一刻你会觉得之前所有为参数熬过的夜、为bug掉过的头发,都是值得的。