其实我觉得你刚学lammps,先看看网上关于in文件的详细解释步骤,再学习Fortran语言,最后才C++,因为那时就是自己编译开发源程序,楼上“懂一点基础比较好,尤其是建立模型和数据处理的时候用途很大”也是正确的,不过建立模型,现在一般用MS,然后read data比较方便,数据处理用origin也不错,呵呵,这只是我一点建议而已。
给你看看关于in文件的详细解释步骤
boundary p s s # 边界条件,拉伸方向是周期性,其余是自由边界;如果是薄膜拉伸则是两个周期性,块体则是三个周期性
units metal #单位制定义为metal
atom_style atomic #原子类型自动
neighbor 2.0 bin #截断半径相关的东西
neigh_modifydelay 1 check yes # 邻近原子列表更新速度
#define groups
region 1 block INF 1 INF INF INF INF # 定义了一个叫1的区域
group left region 1 #定义此区域里的原子叫left
region 2 block 29 INF INF INF INF INF #定义了一个叫2的区域
group right region 2 #定义此区域里的原子叫right
group boundary union left right #定义left+ right = boundary
group mobile subtract all left # 定义mobile= all - left
# initialvelocities
velocity left set 0.0 0.0 0.0 # 设置原子初速度为0
thermo 1000 # 每1000步输出一次结果
timestep 0.002 #时间步长0.002ps
run 10000 #运行10000步
unfix2
fix 3 all nve
fix 4 all temp/rescale 100 1.0 1.0 5 1.0
fix 5 all deform 1000 x erate 0.002 units box #设置沿x方向拉伸,应变率为0.002(1/ps)
compute s all stress/atom #计算每个原子上的应力,计算结果记为s
compute strea all reduce sum c_s[1] #将s里第一个值求和,计算结果记为strea
variable stressa equal c_strea/vol # 定义变量stressa= strea/vol, vol是体积
compute streb all reduce sum c_s[2]
variable stressb equalc_streb/vol
compute strec all reduce sum c_s[3]
variable stressc equal c_strec/vol