大家好,我是小马老师。
本文介绍lammps翻转模型的方法。
在进行分子动力学模拟时,可能需要特定的面位于设定的方向。
如Al2O3的力学性能模拟中,需要分别对A、B、C面进行压痕或者摩擦模拟。
按照研究界面垂直z轴,并且面法线沿着z轴正方向的方法放置模型,在处理图像时更直观一些
如果初始模型不符合要求,可使用lammps displace_atoms命令对模型进行旋转以满足要求。
displace_atoms rotate参数包括:
rotate args = Px Py Pz Rx Ry Rz theta
Px,Py,Pz = 旋转轴上的一个点
Rx,Ry,Rz = 旋转轴
theta = 旋转角度
displace_atoms命令需要设定确定旋转轴的位置和方向。
位置和方向必须明确指定,缺一不可。
Rx,Ry,Rz仅设定选择轴方向,比如100指定旋转轴平行于x方向,但是旋转轴的位置无法明确。
如果再规定旋转轴必须通过定点Px,Py,Pz,这样,旋转轴的位置就被唯一确定下来。
这个定点的选择方法有很多,本文案例把模型的重心作为旋转的定点。
下面案例以GaN沿x轴旋转90度为例给出具体代码,旋转轴通过模型的重心。
GaN初始模型:
units metal
atom_style atomic
boundary s s s
read_data GaN.data
#计算重心
variable x0 equal xcm(all,x)
variable y0 equal xcm(all,y)
variable z0 equal xcm(all,z)
#旋转90度
displace_atoms all rotate ${x0} ${y0} ${z0} 1 0 0 90
#保存新模型
write_data new.data
旋转后的模型:
公众号:lammps加油站