- 博客(284)
- 资源 (1)
- 收藏
- 关注

原创 lammps一对一课程学习大纲
对于初学者来说,自学lammps入门会有些困难。大多数情况是,看视频学习觉得都能听懂,自己写in文件的时候却又无从下手。一个小小的错误可能也会困扰你好几天,如果有人指导,可能只需要几分钟就能解决。视频学习和一对一辅导相结合,哪怕是没有接触过lammps的新手,经过学习和1-2次辅导之后基本上就能够独立写出in文件。在学习lammps中遇到的lammps问题,基本上都能够很快的得到解决。...
2022-07-14 21:29:47
1938
原创 Ovito建模并正交化方法
选择菜单“Export File"导出data文件,文件类型选择“lammps data”,文件格式可以选择“atomic"、“charge”或“full”类型。保存data文件,用ovito重新打开Al2O3.data文件,发现box已经变成正交,但是左上角有一部分原子还在盒子外面。Ovito主要用于查看lammps模拟结果,一般不用于建模,但是对于晶粒来说,只要有cif文件,也可以使用ovito建模。导出之后,斜交模型就建好了,如果需要改正交,用记事本打开data文件,删掉红框内的这一行数据。
2025-05-28 14:49:24
23
原创 lammps后处理:堆垛层错和孪晶的数量统计
python调用ovito包可以免费实现ovito pro版本的功能,不需要安装ovito pro软件,如统计位错线长度、CNA结构、键角分布等,如需深入学习,可考虑报名python ovito后处理课程,或lammps一对一课程。lammps金属变形模拟中,可能会产生堆垛层错或者孪晶等结构,但是ovito免费版本无法统计这些结构的数量。使用python和ovito软件包,则可以方便的统计出这些结构的数量。大家好,我是小马老师。
2025-05-19 21:02:27
74
原创 lammps原子组速度的计算方法
在lammps摩擦、冲击、压痕等模拟过程中,涉及到某个原子组的整体移动,如果要输出这个原子组的整体移动速度,可以使用vcm()函数。下面是一个具体的使用案例,金刚石球在盒子内移动,输出移动过程中金刚石球在x方向的质心速度。vcm()是lammps自带的一个函数,返回原子组质心在设定方向的速度。其中,ID为group-ID,dim为方向,可设置x、y或者z方向。大家好,我是小马老师。
2025-05-08 18:46:57
62
原创 lammps后处理:python统计空位缺陷数量
python调用ovito包可以免费实现ovito pro版本的功能,不需要安装ovito pro软件,如统计位错线长度、CNA结构、键角分布等,如需深入学习,可考虑报名python ovito后处理课程,或lammps一对一课程。这种方法分析出来的数据统计起来不是很方便,如果使用python代码统计缺陷数据,就会方便的多。(3)安装matplotlib包。(2)安装ovito模块包。大家好,我是小马老师。(1)安装python。
2025-05-06 10:02:10
103
原创 使用DeepSeek计算扩散系数
以上文件为lammps模拟的水的msd数据,想通过以上数据获得扩散系数,数据从第三行整数开始,第一列为模拟步数,对应的时间为步数*timestep,timestep为0.1fs,这一列数据需要转换为秒,第四列数据为msd,单位为埃米的平方,需要转换为米的平方。需要以第一列数据为横坐标,第四列数据为纵坐标,绘制msd曲线,拟合曲线的斜率除以6就能得到扩散系数,扩散系数的单位为平方米每秒,请根据以上计算扩散系数。将MSD数据(Ų)转换为平方米(m²):MSD (m²) = MSD (Ų) × 10⁻²⁰。
2025-04-10 17:02:16
142
原创 lammps多晶正弦粗糙界面建模
其中,30可以理解为正弦曲线的幅度,150为正弦曲线的基准坐标值,80控制周期,改变参数多试试就能找到规律。很久之前介绍过lammps粗糙界面建模,主要是在lammps中进行一维和二维的正弦粗糙面建模。运行完成后,会生成final.data,这个模型即为上表面为正弦波动的粗糙界面。新建1.py文件,粘贴下面内容后,运行:python 1.py。多晶需要在atomsk中进行,因此上述的方法就不再适用。最近有学员咨询多晶模型的正弦粗糙界面建模应该如何实现。在cmd窗口按顺序运行以下命令创建多晶模型。
2025-03-28 11:09:13
124
原创 lammps实现逐级升温过程
要实现这种效果,可以把一个升温和恒温过程看成一个小周期,用两个npt和run命令实现,然后再设定循环重复这个周期。在lammps中,nvt或npt控温,只需要设置一个初始温度和终止温度,在运行过程中,温度的变化近似线性。逐级升温如下图所示,先有一个升温过程,达到一定温度后进行一段时间的恒温弛豫,然后重复升温和弛豫过程。温度变化曲线的斜率就是升温或者降温速率。
2025-03-02 14:49:15
176
原创 lammps球形墙的设置方法
lammps提供了一个fix wall/region命令,在任意区域内设置一个墙,可把原子限制在一个特定的区域内移动,并且这个区域的形状可以是任意的。如果用fix wall/region设置一个球形的墙,把co2分子包裹在墙内,co2就只能在墙内移动,无法扩散到整个盒子。比如,co2的扩散模拟中,初始模型为一个球状的co2结构,如果不加任何限制,在模拟过程中,co2分子会扩散到整个盒子。在lammps中,可以设置各种虚拟墙,用于限制原子的移动,用的最多的应该就是反射墙。本文介绍球形墙的设置方法。
2025-02-25 11:44:57
108
原创 DeePMD深度势教程6:Abacus STRU文件转换方法
Abacus计算和lammps模拟类似,需要先有结构文件STRU,STRU文件包含了原子类型、mass、赝势和轨道文件名称以及原子坐标信息。代码中的pp和basis分别为Ca、O原子的赝势和轨道文件名,如果转换其它原子,请同时替换这几个文件名。当然,最简单的方法还是用软件把cif文件转换为STRU文件,所用到的软件为ase。下面以CaO为例,演示使用ase软件把cif文件转换为STRU的方法。如果对STRU结构文件比较熟悉,可以手动编写STRU文件。运行成功后,会在当前文件夹生成STRU文件。
2025-02-18 20:53:55
147
原创 DeepSeek写一个lammps拉伸in文件
5个晶格长度,势函数为Al1.eam.fs,沿y方向拉伸,应变速率为0.1/ps,总运行步数为1万步,拉伸过程中的应力和应变的值存储到stress-strain.txt文件,轨迹文件保存到tension.xyz。只要给的信息足够全,生成的in文件基本能够符合预期,可以完美运行,本次的模拟相对简单,后续将陆续测试更复杂的lammps模拟。写一个lammps分子动力学模拟的in文件,主要内容:模拟铝的拉伸过程,要求:在in文件中建立铝的模型,xyz方向分别为5。继续测试deepseek在lammps中的应用。
2025-02-14 09:23:26
227
原创 DeepSeek写的lammps反应势断键动态显示程序
假如你是一名lammps专家,现在用reaxff反应势模拟一个聚乙烯裂解的分子动力学模拟,模拟的轨迹文件为:dump.lammpstrj,反应产物信息文件为:bonds.reaxff,bonds.reaxff文件包含了模拟过程中原子之间的键链接信息,请编写一个python程序,实现的功能:从dump.lammpstrj。然后,对于每一帧,读取原子的坐标,并记录它们的ID和位置。提取每一帧的原子坐标,从bonds.reaxff文件中提取原子之间的键链接信息,然后把每一帧中原子的键接信息保存到data文件。
2025-02-06 22:45:23
217
原创 lammps随机选择特定区域特定类型的原子
(3)计算top、Si和select组的交集,如果交集原子数量N为0,说明选中的原子不符合要求,进入循环进行再次选择,直至交集中的原子数量N为1.完成这个代码的编写,需要解决几个问题:随机选择原子id、保证选中的原子为Si原子、保证选中的原子位于设定的区域内。交集中原子数量N为1,说明被选中的原子既位于top区域,类型也是Si,选择成功。如下图所示,模型为SiC,模拟时随机选择上方区域内的Si原子作为pka原子。(1)先把特定区域的原子和Si原子设置为top和Si两个组。大家好,我是小马老师。
2025-01-13 10:31:15
158
原创 “bond atoms missing”解决方法汇总
如果结构不存在以上问题,在模拟的过程中出现“bond atoms missing”,特别是跑了一些步数之后才出现这个错误,一般是因为键链接的原子因受力过大造成单个时间步内移动距离过远造成的。当用ovito查看data文件,存在“毛刺状”结构,键被拉长,在模拟的时候就会提示“bond atoms missing”,并且是在第0步就会出现错误提示。可能是初始结构密度过大,造成原子重叠度高,计算出来的受力过大从而出错,这时需要建模,建模时密度设小一些。然后再导出,这样可以保证所有的原子都在盒子内部。
2025-01-06 15:13:33
442
原创 lammps中EDGE、INF、NULL等常量的含义
上面三个命令是lammps命令中常见的三个常量,在模拟结果中,也经常会遇到inf、nan等值,如果在温度、能量或者压力等出现inf或者nan,也可以理解为无穷大或者无穷小,总之不是一个正常范围的值,大概率是原子重叠、势参数不准等原因造成的结果出错。两者的区别是,EDGE仅表示设置这条命令时刻的box边界坐标值,当box尺寸发生变化时,EDGE也不会变化。上面命令表示设置一个区域,z方向的范围为从5埃米处开始,一直到无穷大,当然,所有的模拟原子必须在盒子内部,即使此处设置无穷大,也是截止到盒子最大坐标处。
2024-12-19 14:20:03
225
原创 Ovito位错分析mesh透明度设置方法
Uniform color”可设置mesh颜色,此处改成白色,Transparency位置为透明度,改成85%,去掉勾选“Cap polygons”在ovito中使用DXA处理位错时,默认会显示mesh,该mesh会把一些位错或者原子挡住,不利于观察和绘图。如果在ovito中关闭mesh和particles显示,又不能很清晰的观察加工表面。在ovito中,可以调整mesh的透明度,点击右上角的“Defect mesh”本文介绍ovito DXA位错分析的mesh透明化方法。
2024-12-12 09:50:52
330
原创 Ovito选择原子的几种方法
添加“Add modification”-“Invert selection”命令,会对上一步的选择进行反选,这个比较简单不再赘述。添加“Add modification”-“Clear selection”命令,可取消之前的所有选择命令,原子恢复到未选择状态。添加“Add modification”-“Expression selection”命令,可以按自己定义的公式选择原子。在右下角的Types栏勾选需要选择的原子类型即可,被选中的原子在窗口中显示为红色,并且右下角会显示被选中的原子数量。
2024-12-05 16:29:18
603
原创 lammps压力和压力分布的计算方法
因此,使用compute stress/atom命令计算出单个原子应力,再配合compute reduce(或者reduce/region)命令即可计算压力和压力分布。如果是计算一个盒子的压力,以上公式算出来的压力值和thermo输出的press是相同的,上述命令也可以把all替换为一个原子组,从而计算原子组的压力值。如果要计算整个体系的应力或者某一个区域的应力,则需要使用compute reduce或者compute reduce/region命令。大家好,我是小马老师。
2024-11-27 15:55:45
632
1
原创 Ovito添加图例的方法
(3)右下角“Positioning”参数可以设置图例的位置,“Size and border”参数可设置图例尺寸和边框,“Text labels”可设置图例标题文字。(4)最新的ovito版本中,可以把设置好的图例方案保存为模板,打开不同模型的时候,直接选择已经设置好的模板,即可一键设置相同的图例方案,不用重复设置,非常方便。在一些云图的处理过程中,大部分需要添加图例,用于标明不同颜色对应的数值,如应力云图、温度云图等。在弹出的对话框中,点new即可把当前图例方案保存下来。本文介绍这些图例的设置方法。
2024-11-21 13:43:56
369
原创 Lammps随机选择原子居中的方法
fix recenter命令可以把设置的原子组pka调整到后面三个坐标点为止,同时,整个模型也会自动地进行偏移。最近几天有几个粉丝咨询如何把随机选择的辐照PKA原子设置到模型的中心位置,本文介绍一下这个方法。后面的参数0 0 0为模型的中心坐标,这个也需要根据自己的模型进行修改。686为data文件或者模型中的最大原子数,可根据自己的模型修改。这种建模,有两个关键点:随机选择和原子居中。蓝色的pka原子已经位于模型的中心位置。大家好,我是小马老师。
2024-11-07 16:45:13
147
原创 Lammps动态删除反应产物分子的方法
lammps reaxff反应势可以模拟分子间的化学反应,fix reaxff/species命令可以输出反应过程中的产物信息。在ovito中,查看总原子数,也可以看出,随着模拟过程的进行,总原子数越来越少,说明此命令确实能够动态删除产物分子。在2022之后的lammps版本中,这个命令新增了delete关键词,使用这个命令,可以动态删除反应过程中的分子。filedel:删除的分子信息保存到该文件中。大家好,我是小马老师。
2024-11-04 12:06:59
130
原创 lammps set命令替换原子类型的几种方法
在新版的lammps命令中,set命令有了较多的扩展,比如可以对group和region进行原子类型的替换。晶界偏析这篇推文是2021年写的,当时的set替换命令功能有限,当时只能对type类型进行替换。在之前的案例中,介绍过set命令随机替换原子进行高熵合金建模,也介绍过晶界偏析的建模方法。把中间区域mid中的type 1按比例替换为type 2。把top组的type 1原子全部替换为type 2。把type 1中的100个原子替换为type 2。因此,本文汇总最新的set替换命令,以供参考。
2024-10-28 10:19:09
403
原创 Ovito旋转模型的技巧
(2)弹出旋转对话框,第一行设置旋转轴,分别对应x、y和z轴,设置z轴为1,设置Angle角度为180,第三行设置旋转中心,保存不变。在ovito后处理中,如果需要对模型进行旋转,可以使用ovito的“Affine transformation"。(4)选择菜单,导出data文件,会发现新的data文件结构已经实现了沿z轴的180度旋转。以摩擦模型为例,球在x轴左侧,下面使用这个命令把结构沿z轴旋转180度。使用这个方法,也可以实现流体模型上下壁面的对称建模,有兴趣的可以试试。
2024-10-22 10:21:20
526
原创 lammps统计一个原子周围不同类型原子数量的方法
分别统计红色小球周围蓝色原子和红色原子的数量,需要用到count(type,region)命令,改命令可统计区域region内type类型原子的数量。以小球的随机碰撞为例,原子类型为1的红色小球(id也为1)周围分布原子类型为2、3的蓝色和黄色小球。
2024-10-14 13:52:15
319
原创 lammps计算固定区域内原子受力的方法
先设置中间区域mid,调用fcm()命令计算,最后用thermo命令输出结果。在前面的推文中,介绍过lammps动态统计区域内原子数量、区域压力的方法。这个函数可以计算区域region内group原子组在dim方向的受力和。dim:力的方向,可设置x、y、z。大家好,我是小马老师。group:原子组id。region:区域id。
2024-09-26 10:38:51
369
原创 lammps计算区域压力的两种方法
两个方法都可以实现区域压力的计算,第一个方法可以计算区域压力的分布,如果需要同时计算多个区域,可以采用第一个方法,如果只需要计算一个特定区域,第二个方法更灵活一些。在lammps模拟中,计算某一个固定区域内气体或者液态的压力,可以先计算该区域内所有单个原子的应力,然后把区域内原子的应力值求和再除以体积。如下面代码,在x方向划分了坐标为[20,40]的一个区域,计算完成后,会之间输出该区域的压力值。只有处于该区域内的原子参与压力的计算,当原子移动出该区域后,就不再计算该原子的应力。大家好,我是小马老师。
2024-09-23 14:32:19
579
原创 lammps后处理:多帧孔洞体积和孔隙率的计算
在上一次案例代码的基础上,稍加修改,添加一个for循环遍历所有的帧即可实现多帧孔洞体积的计算。在前面的专栏中,已经介绍了单帧孔洞体积的计算方法,有不少粉丝朋友咨询多帧孔洞体积的计算方法。本文介绍lammps后处理技巧:多帧孔洞体积和孔隙率的计算方法。计算的结果保存到Vol.txt文本中,便于绘图。
2024-09-11 11:14:57
364
原创 lammps动态统计中心原子周围原子数量
这种方法只能统计一个静态的区域内原子的数量变化,如果要统计某一个运动中的原子周围原子数量的变化,就需要根据该原子的运动状态,以小球的随机碰撞为例,原子类型为1的红色小球(id也为1)周围分布原子类型为2、3的蓝色和黄色小球。在之前的专栏中,曾介绍过动态统计某一个固定区域内原子数量的方法。根据这个原理,也可以统计该原子周围不同原子类型的数量。
2024-09-02 10:14:20
291
原创 lammps后处理:孔洞体积和孔隙率的计算
ovito中有一个Construct Surface mesh命令,可以识别原子表面,使用这个功能,就可以直观的显示空洞的大小和形态。ovito免费版可以直观的显示孔洞的表面积,但是不能计算体积,计算体积需要ovito pro版本。这个命令还可以输出其他的量,如下图所示,具体可到ovito官网查看手册说明。在拉伸、辐照或者一些力学的lammps模拟中,材料内部会出现孔洞等缺陷。但是,使用python调用ovito模块,则可以很方便的计算孔洞的体积。
2024-08-27 10:15:38
855
原创 lammps蒙特卡洛MC模拟案例
在lammps中,和MC相关的模拟命令有三个:fix gcmc、fix atom/swap、fix sgcmc。在一个lammps模拟中,mc和md可同时存在,间隔运行,所以设置fix sgcmc命令的同时,可以同时设置系综(nve、nvt或者npt)。lammps官网自带案例中也有一个fix sgcmc的案例,主要模拟FeCu合金的MC建模。sgcmc命令可应用到合金的模拟中,如短程有序模拟。MC运行间隔为100步,最终的浓度比例为0.02,也就是2%的Fe原子交换为Cu原子。大家好,我是小马老师。
2024-08-20 23:20:14
1011
原创 lammps教程:Compass力场设置方法
上式中的compass_published对应lammps自带的力场文件compass_published.frc,windows版本的lammps中,这个文件在lammps安装目录的frc_files文件夹,ubuntu版本的lammps中,这个文件在安装目录的tools/msi2lmp/frc_files,如果以上命令不能用,先查找一下这个文件是否存在。compass力场在ms中用的比较多,但是在lammps中用的较少,因为很多参数不是公开的,限制了这个力场的应用范围。大家好,我是小马老师。
2024-07-22 16:31:35
1879
原创 lammps模拟CO2驱油案例
模型分为三部分,最左侧为石墨烯板,中间为CO2、右侧上下壁面为SiO2、通道内部为辛烷(联合原子建模,不含H)。可以使用ms、packmol、moltemplate等软件分别对各部分单独建模,建模完成后在lammps中使用read_data命令组装到一起。CO2在页岩纳米孔隙中的置换驱替已经成为一项有效提高页岩油采收率的方法,因此,本文以CO2驱替SiO2纳米通道内的辛烷为例介绍此类模拟方法。弛豫完成后,设置左侧石墨烯板一个向右移动的速度,驱动CO2向右移动从而实现对狭缝内辛烷的驱替。
2024-07-01 10:23:03
847
原创 lammps六边形建模方法
主要原理和之前的锐角刀具建模原理一样,用region plane设置6个面,用这个6个面组成一个封闭区域,在封闭区域内生成原子。lammps自带的形状有长方体、圆柱体、圆锥体和球体,其他特殊的情况大多需要用组合建模方法。如下图截面为六边形的纳米线,很难用一条命令建模。大家好,我是小马老师。
2024-06-25 15:40:23
465
原创 lammps聚合物建模组合技巧
在lammps模拟时,因为键被拉的过长,会造成“bond atoms missing”错误,这种错误在聚合物模拟中经常会出现,这个错误的解决也是聚合物模拟的一个难点。主要原因是,上述结构单独弛豫过程中,当原子移动到边界处,因周期性边界原因,会被算法折叠到盒子的另一侧,造成了被键链接的两个原子分别位于盒子的两侧。在lammps模拟中,聚合物模拟应该算是比较复杂的一种模拟,不仅建模复杂、势参数较多,而且在模拟过程中也会经常出现各种意想不到的错误。本文主要解决聚合物建模过程中常遇到的一个问题:多成分的组合。
2024-06-19 16:36:09
1069
原创 lammps聚合物断键拉伸模拟
在lammps模拟中,所有的键默认是永久存在的,非正常情况下,不能断开,否则会产生"bond atoms missing”错误。如果要模拟拉伸过程中键的断裂,就需要加一个额外的命令:fix bond/break。这个命令可以设定每N步判断一次键长,如果键长超过设定的极限长度,则认为键被拉断。聚合物的拉伸模拟过程中,聚合物链并没有被拉断,而只是把不同的聚合物链分离。通过对比初始pe.data,可以发现,在拉伸过程中,一共拉断了6条键。f_4[1]、f_4[2]表示当前步数断裂键的数量和总的断裂数量。
2024-06-13 12:51:49
1038
原创 lammps模拟石墨烯吸附水分子(gcmc)
本文分享lammps gcmc吸附的一个案例代码,上下壁面的通道材料为石墨烯,吸附的分子为tip4p水分子。大家好,我是小马老师。
2024-06-06 10:00:52
2052
原创 lammps金刚石三棱锥刀具建模
以上命令可以单独的建出一个金刚石刀具模型,可以使用read_data命令把刀具模型合并到切削基体模型,也可以直接复制上面的代码,在基体模型的上方直接建立刀具模型。主要原理是通过三个斜面或者三个斜面加一个平面,合并为一个封闭区域,在区域内生成原子。lammps切削模拟的刀具形状有很多,如球形、锐角、钝角、三棱锥等刀具。球形、锐角、钝角等刀具建模已经在公众号发过,本文介绍三棱锥的建模。斜面和平面都是用region plane命令。本文介绍lammps三棱锥刀具建模方法。大家好,我是小马老师。
2024-06-02 19:33:03
739
原创 lammps案例:reaxff势模拟Fe(OH)3高温反应过程
所有的reaxff模拟,如:氧化、腐蚀、热裂解、燃烧等模拟,均可采用此模拟框架,只需要更换data文件、势文件,代码中的control文件可以不写,电荷平衡文件也可以用reaxff替换。该案例主要模拟Fe(OH)3在高温下的反应过程,主要代码来自lammps自带的案例。lammps自带案例没有产物输出,故在此基础上稍加修改,增加了产物输出命令。如果需要系统学习反应势的模拟,可考虑报名培训课程。本文分享一个reaxff反应势的案例。in文件代码已经注释,以供参考。大家好,我是小马老师。
2024-05-28 21:51:28
1398
原创 《lammps中文教程》第3版发布,600页16万字
因为内容太多,查找起来也不是很方便,建议使用“搜索”功能,当需要查找某个方面的内容时,“Ctrl+F”打开搜索框,输入查找内容即可。5.24 “atoms are time integrated more than once”警告,常见三种原因及解决办法。1.31 compute temp/partial ,compute temp/com 温度修正。教程大约半年左右更新一次,本次为第3版,总页数600页左右,分上中下三册,每册200页。1.41 msi2lmp不能用,mpi不能连接主机,解决办法看这里。
2024-05-23 15:51:46
3456
原创 机器学习势系列教程(3):cp2k的安装
和abacus一样,cp2k也是一款开源的第一性原理模拟软件,模拟的数据也可作为机器学习势的训练数据集。cp2k安装方法也很多,常见的有docker安装、代码编译安装。但是这两种方法对于新手或者小白来说,有点复杂。如果仅仅是用于机器学习势的训练,只需要cp2k计算能量和力的计算,不需要复杂的功能。所以,这里介绍一种非常简单的安装方法,只需要一个命令即可完成安装。该方法仅限于ubuntu系统,如果是其他linux系统,还是建议采用编译安装。
2024-05-23 15:49:46
885
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人