文章目录
1.in文件的编写
1. 模型基本设置
units metal #金属单位体系
dimension 3 #三维,默认
boundary p p p #周期性边界条件
atom_style atomic #原子类型
neighbor 2.0 bin #定义邻居列表,截断半径之外2.0壳体
neigh_modify every 5 delay 0 #每5步更新邻居列表,delay 0不延迟
timestep 0.001 #模拟步长,0.001ps
2. 系统建模
(1)读取data文件
read_data Al.data
#读取多个data文件
read_data Fe.data extra/atom/types 1
# extra/atom/types 1 额外增加1种原子类型
read_data Cu.data add append offset 1 0 0 0 shift 0.0 -22 0.0
# add append追加,offset偏移(原子类型+1),shift整体Cu在y方向移动22埃米
(2)自建模型
lattice fcc 4.05 #Al原子,FCC晶格,晶格常数4.05埃米
region box block 0 10 0 10 0 10 #划定区域,区域名box,block块状,xyz方向0-10层晶格
create_box 1 box #box区域设置一种原子
create_atoms 1 box #box区域填充类型1的原子
(3)超晶胞
原胞:能完整反映晶体内部原子或离子在三维空间分布中化学-结构特征的平行六面体最小单元。
超胞:超胞是对原胞的扩展,扩展成新的重复单元。
建立超胞的目的:
(1)表面吸附问题:不同晶向、不同吸附浓度;
(2)异质结模型问题:晶格失配和角度失配;
(3)缺陷问题:获得合适的空位、掺杂浓度;固溶体问题;
3. 力场设置
pair_style eam/fs #合金
pair_coeff * * Al_nm.eam.fs Al # * *所有原子之间,势文件名+原子列表
#或者
pair_style eam #单晶
pair_coeff * * Al.eam #势文件名+不用原子列表,单晶材料
#或者
pair_style lj/cut 10.0 #lj势,无相应势文件,截断半径10.0
pair_coeff 1 1 0.023 2.8 #类型1与类型1原子之间,0.023能量 2.8距离,1*3类型1到类型3的原子
4. 温度初始化
原子温度由原子速度计算得到,温度初始化后,原子获得初始速度
velocity all create 300 8989 #设置速度,all所有原子,create生产速度,温度300K,随机种子8989
5. 弛豫
(1)nve系综
fix 1 all nve #摩尔量、体积、能量不变,孤立系统,fix命名1,all所有原子
(2)nvt系综
fix 1 all nvt temp 300 300 0.1 #恒温系统,温度300K,温度阻尼系数0.1(模拟步长100倍最好)
fix 1 all nvt temp 300 1000 0.1 #升温系统,温度300K到1000K,恒定升温速率
(3)npt系综
fix 1 all npt temp 300 300 0.1 iso 0 0 1 # iso三个方向压强,压强阻尼系数(模拟步长1000倍最好)
fix 1 all npt temp 300 300 0.1 x 0 0 1 # x方向压强
6. 模拟设置
(1)compute计算
compute 1 mobile stress/atom NULL #计算原子应力,compute命名1,计算mobile组的原子,stress/atom单原子应力
compute myTemp mobile temp #计算温度,compute命名myTemp,计算mobile组的原子,temp温度
(2)fix设置
fix 1 all deform 100 x erate 0.05 remap x #deform变形,每100步,沿x方向,应变率0.05,remap x重新映射原子位置
7. 输出设置
(1)体系变量输出
thermo 100 #每100步输出一次
thermo_style custom step temp pe ke press #custom自定义输出,输出当前步数,温度,势能pe,动能ke,压力
(2)原子量输出
dump 1 all custom 100 tension.xyz type x y z #custom自定义输出,每100步输出一次,输出文件名tension.xyz,输出原子类型、xyz坐标
dump_modify 1 element O H Na Cl #指定原子对应的元素类型,在element后边按照data文件中mass列表中的顺序指定对应元素即可
8. lammps程序运行
1.windows系统
打开cmd命令窗口,进入相应文件目录
mpiexec -np 8 lmp -in in.cu # mpi 设置8核运行
mpiexec lmp -in in.cu #单核运行
2.linux系统
mpiexec -np 8 lmp_mpi -in in.cu # mpi 设置8核运行
lmp_mpi -in in.cu #单核运行
9.估算模拟时间
运行结束后,打开log文件,找到Performance,后边给出了当前电脑对此模型的算力,ns/day 服务器运行1天能够计算的模拟时间(ns),hours/ns:模拟1ns需要的实际时间(hours),timesteps/s:1s可以计算的步数(timesteps)。通过以上信息,可以基本估计出lammps的模拟时间。
2.Cu融化in文件
1. Cu融化模拟参数
晶格常数:3.61
模型尺寸:5 *5 *5 (晶格)
边界条件:周期性边界条件
单 位:metal
模拟步长:1fs
势函数类型:EAM
初始温度:300K
结束温度:2000K
系 综:nvt
2. in文件
# Cu融化 300K-2000K
#模型基本参数
units metal #金属单位体系
dimension 3 #3维
boundary p p p #周期性边界条件
atom_style atomic #原子类型,金属用atomic,复合物用full
timestep 0.001 #模拟步长,一般选择原子振荡周期的1/10,1fs
neighbor 2.0 bin #设置邻居列表
neigh_modify every 1 delay 0
#构建模型
lattice fcc 3.61 #FCC面心立方
region box block 0 5 0 5 0 5 #模拟盒子,xyz方向5个晶格
create_box 1 box #设置一种原子
create_atoms 1 box #生成类型1的原子
#热力学信息输出
thermo 100 #每100步输出一次
thermo_style custom step temp pe ke
#势函数设置
pair_style eam #使用eam势
pair_coeff * * Cu_u3.eam
#温度初始化
velocity all create 300 89890 #初始300K
#升温融化
dump 1 all atom 1000 melt.xyz #每1000步输出一次
fix 1 all nvt temp 300 2000 0.1 #升温速率1700K/10ps = 170K/ps
run 10000 #运行10000步,10ps