1、Boundary x y z (x,y,z=p,s,f,m四种类型中的一种或者两种)P是周期性边界条件S是自由边界条件(但是具有收缩性)F是固定边界条件M是具有最小值的自由边界条件(但是具有收缩性)Timestep是定义模拟的时间步长。Timestep dtDt为时间步长(时间单位),默认为1psReset-timestep:FixFix为定义对部分原子或者对系综的操作。http:/lammps.sandia.gov/doc/fix.htmlFix ID group-ID style argsID=指定的操作名称编号(如1、2、3.)Group-ID=制定操作范围的原子(如all)Style=
2、操作内容,如何操作Args=相关操作内容的相关操作参数Fix-nvt:恒定N(原子数量)、V(体积)、T(温度)对时间积分Fix-npt:恒定N、P、T对时间积分Unfix:Compute/compute-modify:输出选项Thermo:Thermo命令用于定义每隔一定时间步长输出一次采样内容。Thermo N每隔N个时间步长输出一次采样内容至屏幕或者log文件Thermo_style:Thermo_style命令主要是用来说明采样的内容,即输出到屏幕或者LOG文件中的内容。(http:/lammps.sandia.gov/doc/thermo_style.html)Thermo_styl
3、e style argsStyle=one、multi、customArgs=特定的参数列表One args=noneMulti args=noneCustom args=list of attributesPossible attributes=step、elaosed、elaplong、dt、cpu、tpcpu、spcpu、Atoms、temp、press、pe、ke、otatal、enthalpy、Evdwl、ecoul、epair、ebond、eangle、edihed、eimp、Emol、elong、etail、Vol、lx、ly、lz、xlo、xhi、ylo、yhi、zlo、zhi
4、、Xy、xz、yz、xlat、ylat、zlat、Pxx、pyy、pzz、pxy、pyz、pxz、Fmax、fnorm、Cella、cellb、cellc、cellalpha、cellbeta、cellgamma、c_ID、c_IDI、c_IDIJ、f_ID、f_IDI、f_IDIJ、V_nameDump:Dump命令主要是用来输出计算后单个原子的相关信息的。Dump ID group-ID style N file argsID:自己给这个dump命令定义的一个代号(自定义)group-ID:那些信息需要被输出的原子群(预先定义好group)Style:类型N:每经过多少时间步输出信息Fil
5、e:输出名称Args:相关参数(每个类型不同)Restart:(4)运行Run:Minimize:例一units metal # 单位为lammps 中的metel 类型boundary p p p # 周期性边界条件atom_style atomic # 原子模式lattice fcc 3.61 # Cu 的晶格常数3.61region box block 0 4 0 4 0 4 # x,y,z 各方向上的晶胞重复单元数,也即区域大小create_box 1 box # 将上述区域指定为模拟的盒子create_atoms 1 box # 将原子按晶格填满盒子pair_style eam #
6、选取 Cu 的EAM 势作为模型pair_coeff * * Cu_u3.eam # EAM 势文件名称run 0 # 运行0 步,仅为启动lammps 的热力学数据计算variable E equal pe # 定义变量 E 为系统总势能variable N equal atoms # 定义变量 N 为系统总原子数print the number of atoms & system energy now are $N $E # 打印信息create_atoms 1 single 2.45 2.05 2.05 # 在该位置插入一个原子min_style sd # 能量最小化模式,sdminim
7、ize 1.0e-12 1.0e-12 1000 1000 # 能量最小化参数,指数越大最小化程度越深interstitial introduced, minimized: $N atoms, energy is $Efix 1 all nvt 100 100 100 drag 0.2 # nvt 系综,原子数、体积和温度保持不变;T=100Ktimestep 0.005 # 步长 0.005fsrun 1000 # 运行 1000 步nvt performed, temperature up: $N atoms, total energy is $Efix 1 all nvt 100 0.0
8、001 100 drag 0.2 # nvt 系综,温度由100K 到0.0001Knvt performed, temperature down:compute 3 all pe/atom # 计算每个原子的势能compute 4 all ke/atom # 计算每个原子的动能compute 5 all coord/atom 3.0 # 计算每个原子的近邻原子数dump 1 all custom 1 dump.atom id xs ys zs c_3 c_4 c_5 # 将信息写入dump.atommin_style sdminimize 1.0e-12 1.0e-12 10000 1000
9、0 # 再次能量最小化the final state: 例二boundary p s s # 边界条件,拉伸方向是周期性,其余是自由边界;如果是薄膜拉伸则是两个周期性,块体则是三个周期性units metal #单位制定义为metalatom_style atomic #原子类型自动neighbor 2.0 bin #截断半径相关的东西neigh_modifydelay 1 check yes # 邻近原子列表更新速度#create geometrylattice fcc 3.61 # 定义晶胞为fcc,晶格常数3.61Aregion box block 0 30 0 3 0 3 #定义一个长
10、方体区域叫box,长30,宽和高是3create_box 1 box #创建了这样一个boxcreate_atoms 1 box #在box里创建了一种原子mass 1 63.546 #定义这种原子的质量是63.546# potentialspair_style eam # 定义势函数是EAMpair_coef * * Cu_u3.eam #势所需要的参数在此文件里#define groupsregion 1 block INF 1 INF INF INF INF # 定义了一个叫1的区域group left region 1 #定义此区域里的原子叫leftregion 2 block 29
11、INF INF INF INF INF #定义了一个叫2的区域group right region 2 #定义此区域里的原子叫rightgroup boundary union left right #定义left+ right = boundarygroup mobile subtract all left # 定义mobile= all - left# initialvelocitiesvelocity left set 0.0 0.0 0.0 # 设置原子初速度为0computep all pressure thermo_temp # 计算应力,计算结果记为p variable pres
12、sx equal c_p1 #定义变量pressx=c_p1,c_p1的意思是p里第一个值variable pressy equal c_p2 #定义变量pressy=c_p2,c_p2的意思是p里第二个值variable pressz equal c_p3 #定义变量pressz=c_p3,c_p3的意思是p里第三个值thermo_style custom step temp etotal press v_pressx v_pressy v_pressz vol dump 1 all atom 1000 dump.tensile # 输出结果到dump.tensile minimize 1.
13、0e-6 1.0e-6 1000 1000 # 驰豫fix 1 left setforce 0.0 NULL NULL #固定左边的原子fix 2 all npt 1.0 1.0 1.0 aniso 0.0 0.0 NULL NULL NULL NULL 10.0 drag 1.0thermo 1000 # 每1000步输出一次结果timestep 0.002 #时间步长0.002psrun 10000 #运行10000步unfix2fix 3 all nvefix 4 all temp/rescale 100 1.0 1.0 5 1.0fix 5 all deform 1000 x erat
14、e 0.002 units box #设置沿x方向拉伸,应变率为0.002(1/ps)compute s all stress/atom #计算每个原子上的应力,计算结果记为scompute strea all reduce sum c_s1 #将s里第一个值求和,计算结果记为streavariable stressa equal c_strea/vol # 定义变量stressa= strea/vol, vol是体积 compute streb all reduce sum c_s2 variable stressb equalc_streb/volcompute strec all reduce sum c_s3variable stressc equal c_strec/volthermo_style custom step tempetotal press v_stressa v_stressb v_stressc vol run 300000
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2