自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(296)
  • 资源 (1)
  • 收藏
  • 关注

原创 lammps一对一课程学习大纲

对于初学者来说,自学lammps入门会有些困难。大多数情况是,看视频学习觉得都能听懂,自己写in文件的时候却又无从下手。一个小小的错误可能也会困扰你好几天,如果有人指导,可能只需要几分钟就能解决。视频学习和一对一辅导相结合,哪怕是没有接触过lammps的新手,经过学习和1-2次辅导之后基本上就能够独立写出in文件。在学习lammps中遇到的lammps问题,基本上都能够很快的得到解决。...

2022-07-14 21:29:47 2074

原创 lammps计算最大值、最小值方法

平时用的最多的是compute reduce sum的求和功能,除了sum求和,compute reduce还包含min、minabs、max、maxabs、ave、sumsq、avesq、sumabs、 aveabs等计算方法。比如在lammps过程中,需要输出原子的最大应力、最小应力、平均应力、x方向单个原子的最大力,可以用下面的代码计算。也可以使用fix ave/time或fix print命令输出到txt文件。本文介绍lammps模拟过程中一些量的最大值、最小值以及平均值的计算方法。

2025-12-25 20:18:36 22

原创 lammps润滑摩擦案例

(1)建模并设置力场,Si为tersoff力场、水分子为SPCE,两者之间用lj/cut势。模型如下图所示,上下滑块为Si,中间润滑介质为水分子。本文介绍lammps另外一种摩擦模拟:润滑摩擦。(4)下压达到平衡后,上滑块沿x方向移动摩擦。(2)minimize最小化进行nvt弛豫。(3)在载荷的作用下,上滑块下压。大家好,我是小马老师。

2025-12-16 09:44:24 55

原创 Python ovito计算密度分布

密度、电荷、速度、应力等分布在lammps后处理中比较常见,这些分布可以在lammps in文件计算,如果已经lammps已经运算完成,但是没有添加这些计算,就需要通过后处理的方法计算。参考这种方法,可以把key="histogram[Position.X]"中的统计量改成应力、势能、速度等参数,即可统计相应的分布。本文使用python调用ovito模块统计type 1原子沿x方向的密度分布。本文介绍python调用ovito模块输出密度分布的方法。大家好,我是小马老师。

2025-11-18 10:05:36 87

原创 vito多晶晶粒大小的输出

在主窗口,不同的晶粒已经被识别出来并被设置了不同的颜色,右下角也会显示当前模型的晶粒个数。Ovito提供了多晶识别命令,在晶体模拟分析中,可以识别并统计晶粒的个数以及晶粒的大小。这里的晶粒大小数值是指该晶粒包含的原子数,并不是体积和半径等尺寸。如果是dump文件,可以选择单帧输出,也可以选择全部输出。本文介绍ovito识别多晶并导出晶粒大小的方法。大家好,我是小马老师。

2025-09-25 14:08:05 215

原创 ovito粗糙界面建模

建模的原理基本都是相通的,首先建出一个块状结构,然后在上方用公式删掉不需要的原子,剩下的就是符合要求的粗糙界面模型。(2)添加"Delete selected"命令,删掉上方的原子,剩下的就是正弦粗糙界面。关于lammps粗糙界面的建模,公众号已经发过不少建模方法。本文介绍另外一种方法,使用ovito进行粗糙表面建模。修改公式中的10、50、40等参数可以调整粗糙度。这种方法也可应用到一维正弦粗糙界面。此时,上方的原子被选中。大家好,我是小马老师。

2025-09-16 20:11:43 208

原创 lammps案例:石墨烯/铜纳米颗粒烧结

最近做了一个石墨烯/Cu纳米颗粒的烧结案例,分享给大家。

2025-09-01 15:55:14 149

原创 lammps不同晶面建模方法汇总

Lammps lattice命令中的orient关键词可实现晶体的旋转和重定向,下面的命令中,111面的法线方向与y正方向重合,说明111面垂直于y轴。在有些模拟中,需要研究特定面的性质,比如研究110面,默认状态下,110面不是坐标平面,研究起来不方便,需要对模型进行旋转,如下图所示。经过旋转后,110面的法线方向与x轴正方向重合,旋转之后再重新对晶体进行切割,新模型的x面就是110面。需要注意的是,这种方法需要明确指定x、y、z轴的正方向分别对应哪三个面的法线方向,缺一不可。大家好,我是小马老师。

2025-08-25 17:06:51 210

原创 Python Ovito统计多晶晶粒数量

Ovito Polyhedral template matching和Grain segmentation命令可以识别多晶结构,但是无法直接输出晶粒数量的变化情况。本文介绍python ovito方法统计多晶晶粒数量的方法。大家好,我是小马老师。

2025-08-18 20:07:53 197

原创 lammps read_data势参数设置常见的一个小问题

如果使用混合势,需要设置多种势类型,不方便把势参数写到data文件,最好的方法是把data文件内的势参数全部删掉,在in文件设置势参数。出现这个错误,主要是因为lammps对read_data、势类型和势参数三部分的命令有一个顺序要求。这种情况下,in文件对应的命令顺序为:势类型、read_data、势参数(如果需要修改替换的话)。本文介绍read_data命令读入data文件势参数设置常见的一个小问题。对应的命令顺序为:read_data、势类型、势参数。不使用混合势,一般常用以上方法。

2025-08-05 11:00:03 252

原创 Packmol聚合物通道模型建模方法

但是,对于聚合物相关的体系来说,先建模再删掉原子的方式容易形成断键,如果把整个分子删掉,又会造成通道不光滑。如下面的模型,可以使用outside关键词,设置分子的填充区域在圆柱区域之外,这样就可以得到中空的通道模型。用packmol建模可以完美的解决这个问题,在packmol中,可以任意指定分子的填充区域。常规的晶体通道模型是先建一个整体结构,然后通过删除原子的方式实现通道或者壁面模型。本文介绍lammps聚合物通道模型的建模方法。大家好,我是小马老师。

2025-07-23 22:32:40 279

原创 lammps滚动模拟

为保证滚动的平稳,旋转轴一般通过模型的质心,需要先计算模型的质心坐标。(1)设置滚动旋转轴位置和方向,也就是确定沿哪个方向滚动。(2)原地滚动还是在滚动过程中整体也要移动。本文介绍lammps中模型滚动的设置方法。大家好,我是小马老师。

2025-07-23 22:31:29 144

原创 Python Ovito统计金刚石结构数量

python调用ovito包可以免费实现ovito pro版本的功能,不需要安装ovito pro软件,如统计位错线长度、CNA结构、键角分布等,如需深入学习,可考虑报名python ovito后处理课程,或lammps一对一课程。Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。本文介绍python ovito方法统计金刚石结构的方法。大家好,我是小马老师。

2025-06-09 20:09:06 436

原创 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 528

原创 lammps后处理:堆垛层错和孪晶的数量统计

python调用ovito包可以免费实现ovito pro版本的功能,不需要安装ovito pro软件,如统计位错线长度、CNA结构、键角分布等,如需深入学习,可考虑报名python ovito后处理课程,或lammps一对一课程。lammps金属变形模拟中,可能会产生堆垛层错或者孪晶等结构,但是ovito免费版本无法统计这些结构的数量。使用python和ovito软件包,则可以方便的统计出这些结构的数量。大家好,我是小马老师。

2025-05-19 21:02:27 311

原创 lammps原子组速度的计算方法

在lammps摩擦、冲击、压痕等模拟过程中,涉及到某个原子组的整体移动,如果要输出这个原子组的整体移动速度,可以使用vcm()函数。下面是一个具体的使用案例,金刚石球在盒子内移动,输出移动过程中金刚石球在x方向的质心速度。vcm()是lammps自带的一个函数,返回原子组质心在设定方向的速度。其中,ID为group-ID,dim为方向,可设置x、y或者z方向。大家好,我是小马老师。

2025-05-08 18:46:57 244

原创 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 307

原创 使用DeepSeek计算扩散系数

以上文件为lammps模拟的水的msd数据,想通过以上数据获得扩散系数,数据从第三行整数开始,第一列为模拟步数,对应的时间为步数*timestep,timestep为0.1fs,这一列数据需要转换为秒,第四列数据为msd,单位为埃米的平方,需要转换为米的平方。需要以第一列数据为横坐标,第四列数据为纵坐标,绘制msd曲线,拟合曲线的斜率除以6就能得到扩散系数,扩散系数的单位为平方米每秒,请根据以上计算扩散系数。将MSD数据(Ų)转换为平方米(m²):MSD (m²) = MSD (Ų) × 10⁻²⁰。

2025-04-10 17:02:16 489

原创 lammps多晶正弦粗糙界面建模

其中,30可以理解为正弦曲线的幅度,150为正弦曲线的基准坐标值,80控制周期,改变参数多试试就能找到规律。很久之前介绍过lammps粗糙界面建模,主要是在lammps中进行一维和二维的正弦粗糙面建模。运行完成后,会生成final.data,这个模型即为上表面为正弦波动的粗糙界面。新建1.py文件,粘贴下面内容后,运行:python 1.py。多晶需要在atomsk中进行,因此上述的方法就不再适用。最近有学员咨询多晶模型的正弦粗糙界面建模应该如何实现。在cmd窗口按顺序运行以下命令创建多晶模型。

2025-03-28 11:09:13 267

原创 lammps实现逐级升温过程

要实现这种效果,可以把一个升温和恒温过程看成一个小周期,用两个npt和run命令实现,然后再设定循环重复这个周期。在lammps中,nvt或npt控温,只需要设置一个初始温度和终止温度,在运行过程中,温度的变化近似线性。逐级升温如下图所示,先有一个升温过程,达到一定温度后进行一段时间的恒温弛豫,然后重复升温和弛豫过程。温度变化曲线的斜率就是升温或者降温速率。

2025-03-02 14:49:15 403

原创 lammps球形墙的设置方法

lammps提供了一个fix wall/region命令,在任意区域内设置一个墙,可把原子限制在一个特定的区域内移动,并且这个区域的形状可以是任意的。如果用fix wall/region设置一个球形的墙,把co2分子包裹在墙内,co2就只能在墙内移动,无法扩散到整个盒子。比如,co2的扩散模拟中,初始模型为一个球状的co2结构,如果不加任何限制,在模拟过程中,co2分子会扩散到整个盒子。在lammps中,可以设置各种虚拟墙,用于限制原子的移动,用的最多的应该就是反射墙。本文介绍球形墙的设置方法。

2025-02-25 11:44:57 318

原创 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 331

原创 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 388

原创 DeepSeek写的lammps反应势断键动态显示程序

假如你是一名lammps专家,现在用reaxff反应势模拟一个聚乙烯裂解的分子动力学模拟,模拟的轨迹文件为:dump.lammpstrj,反应产物信息文件为:bonds.reaxff,bonds.reaxff文件包含了模拟过程中原子之间的键链接信息,请编写一个python程序,实现的功能:从dump.lammpstrj。然后,对于每一帧,读取原子的坐标,并记录它们的ID和位置。提取每一帧的原子坐标,从bonds.reaxff文件中提取原子之间的键链接信息,然后把每一帧中原子的键接信息保存到data文件。

2025-02-06 22:45:23 407

原创 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 337

原创 “bond atoms missing”解决方法汇总

如果结构不存在以上问题,在模拟的过程中出现“bond atoms missing”,特别是跑了一些步数之后才出现这个错误,一般是因为键链接的原子因受力过大造成单个时间步内移动距离过远造成的。当用ovito查看data文件,存在“毛刺状”结构,键被拉长,在模拟的时候就会提示“bond atoms missing”,并且是在第0步就会出现错误提示。可能是初始结构密度过大,造成原子重叠度高,计算出来的受力过大从而出错,这时需要建模,建模时密度设小一些。然后再导出,这样可以保证所有的原子都在盒子内部。

2025-01-06 15:13:33 1059

原创 lammps中EDGE、INF、NULL等常量的含义

上面三个命令是lammps命令中常见的三个常量,在模拟结果中,也经常会遇到inf、nan等值,如果在温度、能量或者压力等出现inf或者nan,也可以理解为无穷大或者无穷小,总之不是一个正常范围的值,大概率是原子重叠、势参数不准等原因造成的结果出错。两者的区别是,EDGE仅表示设置这条命令时刻的box边界坐标值,当box尺寸发生变化时,EDGE也不会变化。上面命令表示设置一个区域,z方向的范围为从5埃米处开始,一直到无穷大,当然,所有的模拟原子必须在盒子内部,即使此处设置无穷大,也是截止到盒子最大坐标处。

2024-12-19 14:20:03 341

原创 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 581

原创 Ovito选择原子的几种方法

添加“Add modification”-“Invert selection”命令,会对上一步的选择进行反选,这个比较简单不再赘述。添加“Add modification”-“Clear selection”命令,可取消之前的所有选择命令,原子恢复到未选择状态。添加“Add modification”-“Expression selection”命令,可以按自己定义的公式选择原子。在右下角的Types栏勾选需要选择的原子类型即可,被选中的原子在窗口中显示为红色,并且右下角会显示被选中的原子数量。

2024-12-05 16:29:18 1105

原创 lammps压力和压力分布的计算方法

因此,使用compute stress/atom命令计算出单个原子应力,再配合compute reduce(或者reduce/region)命令即可计算压力和压力分布。如果是计算一个盒子的压力,以上公式算出来的压力值和thermo输出的press是相同的,上述命令也可以把all替换为一个原子组,从而计算原子组的压力值。如果要计算整个体系的应力或者某一个区域的应力,则需要使用compute reduce或者compute reduce/region命令。大家好,我是小马老师。

2024-11-27 15:55:45 977 1

原创 Ovito添加图例的方法

(3)右下角“Positioning”参数可以设置图例的位置,“Size and border”参数可设置图例尺寸和边框,“Text labels”可设置图例标题文字。(4)最新的ovito版本中,可以把设置好的图例方案保存为模板,打开不同模型的时候,直接选择已经设置好的模板,即可一键设置相同的图例方案,不用重复设置,非常方便。在一些云图的处理过程中,大部分需要添加图例,用于标明不同颜色对应的数值,如应力云图、温度云图等。在弹出的对话框中,点new即可把当前图例方案保存下来。本文介绍这些图例的设置方法。

2024-11-21 13:43:56 697

原创 Lammps随机选择原子居中的方法

fix recenter命令可以把设置的原子组pka调整到后面三个坐标点为止,同时,整个模型也会自动地进行偏移。最近几天有几个粉丝咨询如何把随机选择的辐照PKA原子设置到模型的中心位置,本文介绍一下这个方法。后面的参数0 0 0为模型的中心坐标,这个也需要根据自己的模型进行修改。686为data文件或者模型中的最大原子数,可根据自己的模型修改。这种建模,有两个关键点:随机选择和原子居中。蓝色的pka原子已经位于模型的中心位置。大家好,我是小马老师。

2024-11-07 16:45:13 232

原创 Lammps动态删除反应产物分子的方法

lammps reaxff反应势可以模拟分子间的化学反应,fix reaxff/species命令可以输出反应过程中的产物信息。在ovito中,查看总原子数,也可以看出,随着模拟过程的进行,总原子数越来越少,说明此命令确实能够动态删除产物分子。在2022之后的lammps版本中,这个命令新增了delete关键词,使用这个命令,可以动态删除反应过程中的分子。filedel:删除的分子信息保存到该文件中。大家好,我是小马老师。

2024-11-04 12:06:59 226

原创 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 546

原创 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 942

原创 lammps统计一个原子周围不同类型原子数量的方法

分别统计红色小球周围蓝色原子和红色原子的数量,需要用到count(type,region)命令,改命令可统计区域region内type类型原子的数量。以小球的随机碰撞为例,原子类型为1的红色小球(id也为1)周围分布原子类型为2、3的蓝色和黄色小球。

2024-10-14 13:52:15 489

原创 lammps计算固定区域内原子受力的方法

先设置中间区域mid,调用fcm()命令计算,最后用thermo命令输出结果。在前面的推文中,介绍过lammps动态统计区域内原子数量、区域压力的方法。这个函数可以计算区域region内group原子组在dim方向的受力和。dim:力的方向,可设置x、y、z。大家好,我是小马老师。group:原子组id。region:区域id。

2024-09-26 10:38:51 521

原创 lammps计算区域压力的两种方法

两个方法都可以实现区域压力的计算,第一个方法可以计算区域压力的分布,如果需要同时计算多个区域,可以采用第一个方法,如果只需要计算一个特定区域,第二个方法更灵活一些。在lammps模拟中,计算某一个固定区域内气体或者液态的压力,可以先计算该区域内所有单个原子的应力,然后把区域内原子的应力值求和再除以体积。如下面代码,在x方向划分了坐标为[20,40]的一个区域,计算完成后,会之间输出该区域的压力值。只有处于该区域内的原子参与压力的计算,当原子移动出该区域后,就不再计算该原子的应力。大家好,我是小马老师。

2024-09-23 14:32:19 831

原创 lammps后处理:多帧孔洞体积和孔隙率的计算

在上一次案例代码的基础上,稍加修改,添加一个for循环遍历所有的帧即可实现多帧孔洞体积的计算。在前面的专栏中,已经介绍了单帧孔洞体积的计算方法,有不少粉丝朋友咨询多帧孔洞体积的计算方法。本文介绍lammps后处理技巧:多帧孔洞体积和孔隙率的计算方法。计算的结果保存到Vol.txt文本中,便于绘图。

2024-09-11 11:14:57 584

原创 lammps动态统计中心原子周围原子数量

这种方法只能统计一个静态的区域内原子的数量变化,如果要统计某一个运动中的原子周围原子数量的变化,就需要根据该原子的运动状态,以小球的随机碰撞为例,原子类型为1的红色小球(id也为1)周围分布原子类型为2、3的蓝色和黄色小球。在之前的专栏中,曾介绍过动态统计某一个固定区域内原子数量的方法。根据这个原理,也可以统计该原子周围不同原子类型的数量。

2024-09-02 10:14:20 414

FeNiCrCoCu_tension.rar

高熵合金FeNiCrCoCu建模及拉伸模拟in文件代码,带应力-应变输出

2021-03-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除