大家好,我是小马老师。
使用lammps进行摩擦或者纳米压痕模拟中,多数情况需将工件划分为多层区域:边界层、恒温层、牛顿层。
为了直观显示分层效果,我们希望使用不同的颜色显示不同的层。
常规的操作是先生成整个工件层,然后使用region命令划分三层区域,最后使用使用set命令改变层内原子类型。
对于合金来说,这个方法就不适用了,因为同一层内有两种原子,使用set命令改变原子类型相对麻烦。
解决方案也比较简单:改变命令的顺序,先划分三个区域,分别在这个三个区域内使用create_atoms命令填充不同类型的原子。
以NiTi合金的建模为例,给出具体建模代码。
units metal
atom_style atomic
#----NiTi建模----
lattice custom 3.01 a1 1 0 0 a2 0 1 0 a3 0 0 1 &
basis 0 0 0 &
basis 0.5 0.5 0.5
region box block 0 30 0 3 0 20
create_box 6 box
#分层
region fixed_layer block INF INF INF INF INF 4
region temp_layer block INF INF INF INF 4 16
region newton_layer block INF INF INF INF 16 INF
create_atoms 1 region fixed_layer basis 1 2 basis 2 1
create_atoms 6 region temp_layer basis 1 4 basis 2 3
create_atoms 1 region newton_layer basis 1 6 basis 2 5
mass 1 58.693 #Ni
mass 2 47.867 #Ti
mass 3 58.693 #Ni
mass 4 47.867 #Ti
mass 5 58.693 #Ni
mass 6 47.867 #Ti
write_data NiTi.xyz
这种方法只是为了显示不同的颜色,便于观察变形情况。
如果仅仅把三层原子归入到三个对应的group内,不改变原子的类型,也是可以正常运算,结果是一样的,只是在显示的图像不同而已。
更多lammps教程,请关注微信公众号:lammps加油站