大家好,我是小马老师。
在lammps模拟中,常用的建模方法有两种,一种是完全使用lammps自带命令建模,另一种是使用read_data命令读入其它软件模型。
在lammps模拟中,有时候也会同时使用以上两种方法:使用read_data读入模型文件后,再用lammps自带命令添加其它类型的原子。
如本例中,使用Atomsk建立了一个Cu基底模型,保存为Cu.lmp文件。
在in文件中read_data读入Cu.lmp文件后,增加一个金刚石刀具。
如果使用下面的建模代码:
read_data Cu.lmp
change_box all z delta 0 50 units box
region tool sphere 17 17 50 12 units box
lattice diamond 3.52
create_atoms 2 region tool
mass 1 64
mass 2 12
write_data all.data
则会提示以下错误:原子2为非法原子类型
主要原因是lammps模拟过程是在一个box内进行,read_data命令会根据data文件中的原子总数创建一个box,与下面的命令类似:
create_box 1 box
box内原子的总数目已经确定为1,再添加一种新的原子2就会提示错误。
解决方法也比较简单,只要想办法把box内原子总数设置为2,并且设定两种原子的摩尔质量即可。
下面给出2种解决方案:
1. 设置read_data命令,额外增加一种原子类型
read_data命令允许在读入data文件时设定是否还需要增加新的原子,如本例需要新增一种原子类型,命令可写为:
read_data Cu.lmp extra/atom/types 1
这样就可以正常运行了。
对应的in文件为:
read_data Cu.lmp extra/atom/types 1
change_box all z delta 0 50 units box
region tool sphere 17 17 50 12 units box
lattice diamond 3.52
create_atoms 2 region tool
mass 1 64
mass 2 12
write_data all.data
2.修改Cu.lmp文件,把原子类型总数改为2
原始Cu.lmp文件为:
修改后Cu.lmp为:
对应的in文件为:
read_data Cu.lmp
change_box all z delta 0 50 units box
region tool sphere 17 17 50 12 units box
lattice diamond 3.52
create_atoms 2 region tool
write_data all.data
深入了解lammps模拟原理,在出现问题时才能游刃有余,公众号定期推出lammps模拟小技巧,敬请关注!
如果在使用lammps过程中遇到什么问题,可到公众号或者QQ群留言。
公众号案例代码以及学习交流,请加QQ群:754749935
扫描关注微信公众号:lammps加油站。