lammps in文件中文解析.docx
《lammps in文件中文解析.docx》由会员分享,可在线阅读,更多相关《lammps in文件中文解析.docx(10页珍藏版)》请在冰豆网上搜索。
lammpsin文件中文解析
Lammps初学者——in文件中文解析
1初始化
Units
Units命令是用来设定模拟的原子类型。
Unitsstylelammps现在提供的有style=LJ、real、metal、si、cgs、electron
LJ是硬球模型
Real是真实的原子模型
Metal是金属原子模型
Si是硅半导体原子模型
Cgs
Electron是电子模型
Dimension
Dimension命令是用来定义模拟的维度默认情况为三维。
DimensionNN=23
Boundary
Boundary命令是用来设定模拟的边界条件。
Boundaryxyzxyz=psfm四种类型中的一种或者两种
P是周期性边界条件S是自由边界条件但是具有收缩性
F是固定边界条件
M是具有最小值的自由边界条件但是具有收缩性
Atom-style
Atom-style定义了模拟体系中的原子属性。
Delete-atoms
Pair-style
Pair-style定义了相互作用力场类型即势函数。
2原子定义
1、
Read-data/read-restart
Read-data或read-restart为从data或restart文件中读取内容来定义原子。
2、
Lattice
lattice是用来原子类型构建模型晶格结构。
Latticestylescalekeywordvalues...
Style表示点阵类型点阵类型有none、sc、bcc、fcc、hcp、diamond、sq、sq2、hex、custom。
Scale表示构建的点阵类型的单位长度
Keyword表示后面可以追加0个或者多个关键字关键字有origin、orient、spacing、a1、a2、a3、basis。
各关键字意思为
Region
Create-box
Create-box命令用于在regionbox命令指定的区域内创建一个模拟的盒子。
Create_boxNregion-ID
N为使用该原子类型进行模拟
Region-ID为使用区域的ID使用模拟域
Create-atoms
Create-atoms用于在所创建的模拟的盒子中填充某种原子。
Create_atomstypestyleargskeywordvalues...
3设定
力场系数
Pair-coeff
模拟参数
NeighborNeighbor是定义
Neighborskinstyle
Skin为
Style可取bin、nsq、multi
Neighbor-modify
Group
Timestep
Timestep是定义模拟的时间步长。
Timestepdt
Dt为时间步长时间单位默认为1ps
Reset-timestep
Fix
Fix为定义对部分原子或者对系综的操作。
http:
//lammps.sandia.gov/doc/fix.html
FixIDgroup-IDstyleargs
ID=指定的操作名称编号如1、2、3…….
Group-ID=制定操作范围的原子如all……
Style=操作内容如何操作
Args=相关操作内容的相关操作参数Fix-nvt恒定N原子数量、V体积、T温度对时间积分
Fix-npt恒定N、P、T对时间积分
Unfix
Compute/compute-modify
输出选项
Thermo
Thermo命令用于定义每隔一定时间步长输出一次采样内容。
ThermoN
每隔N个时间步长输出一次采样内容至屏幕或者log文件
Thermo_style
Thermo_style命令主要是用来说明采样的内容即输出到屏幕或者LOG
文件中的内容。
http:
//lammps.sandia.gov/doc/thermo_style.html
Thermo_stylestyleargs
Style=one、multi、custom
Args=特定的参数列表
Oneargs=none
Multiargs=none
Customargs=listofattributes
Possibleattributes=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、
Xy、xz、yz、xlat、ylat、zlat、
Pxx、pyy、pzz、pxy、pyz、pxz、
Fmax、fnorm、
Cella、cellb、cellc、cellalpha、cellbeta、cellgamma、
c_ID、c_ID[I]、c_ID[I][J]、
f_ID、f_ID[I]、f_ID[I][J]、
V_name
Dump
Dump命令主要是用来输出计算后单个原子的相关信息的。
DumpIDgroup-IDstyleNfileargs
ID自己给这个dump命令定义的一个代号自定义
group-ID那些信息需要被输出的原子群预先定义好group
Style类型
N每经过多少时间步输出信息
File输出名称Args相关参数每个类型不同
Restart
4运行
Run
Minimize
例一
unitsmetal#单位为lammps中的metel类型
boundaryppp#周期性边界条件
atom_styleatomic#原子模式
latticefcc3.61#Cu的晶格常数3.61
regionboxblock040404#x,y,z各方向上的晶胞重复单元数也即区域大小
create_box1box#将上述区域指定为模拟的盒子
create_atoms1box#将原子按晶格填满盒子
pair_styleeam#选取Cu的EAM势作为模型
pair_coeff**Cu_u3.eam#EAM势文件名称
run0#运行0步仅为启动lammps的热力学数据计算
variableEequalpe#定义变量E为系统总势能
variableNequalatoms#定义变量N为系统总原子数
print"thenumberofatoms&systemenergynoware$N$E"#打印信息
create_atoms1single2.452.052.05#在该位置插入一个原子
min_stylesd#能量最小化模式sd
minimize1.0e-121.0e-1210001000#能量最小化参数指数越大最小化程度越深
print"interstitialintroduced,minimized:
$Natoms,energyis$E"
fix1allnvt100100100drag0.2#nvt系综原子数、体积和温度保持不
变;T=100Ktimestep0.005#步长0.005fs
run1000#运行1000步
print"nvtperformed,temperatureup:
$Natoms,totalenergyis$E"
fix1allnvt1000.0001100drag0.2#nvt系综温度由100K到0.0001K
run1000#运行1000步
print"nvtperformed,temperaturedown:
$Natoms,totalenergyis$E"
compute3allpe/atom#计算每个原子的势能
compute4allke/atom#计算每个原子的动能
compute5allcoord/atom3.0#计算每个原子的近邻原子数
dump1allcustom1dump.atomidxsyszsc_3c_4c_5#将信息写入dump.atom
min_stylesd
minimize1.0e-121.0e-121000010000#再次能量最小化
print"thefinalstate:
$Natoms,totalenergyis$E"#打印信息
~
例二
boundarypss#边界条件拉伸方向
是周期性其余是自由边界如果是薄膜拉伸则是两个周期性块体则是三个周
期性
unitsmetal#单位制定义为
metal
atom_styleatomic#原子类型自动
neighbor2.0bin#截断半径相关的东西
neigh_modifydelay1checkyes#邻近原子列表更新速度
#creategeometry
latticefcc3.61#定义晶胞为fcc晶格常数3.61A
regionboxblock0300303#定义一个长方体区域叫box长
30宽和高是3
create_box1box#创建了这样一个box
create_atoms1box#在box里创建了一种原子
mass163.546#定义这种原子的质量
是63.546
#potentials
pair_styleeam#定义势函数是EAM
pair_coef**Cu_u3.eam#势所需要的参数在此文件里
#definegroups
region1blockINF1INFINFINFINF#定义了一个叫
1的区域
groupleftregion1
#定义此区域里的原子叫left
region2block29INFINFINFINFINF#定义了一个
叫2的区域
grouprightregion2#
定义此区域里的原子叫right
groupboundaryunionleftright#定义left+
right=boundary
groupmobilesubtractallleft#定义
mobile=all-left
#initialvelocities
velocityleftset0.00.00.0#设置
原子初速度为0
computepallpressurethermo_temp#计算应力计算结果记为p
variablepressxequalc_p[1]#定义变量pressx=c_p[1],c_p[1]
的意思是p里第一个值
variablepressyequalc_p[2]#定义变量pressy=c_p[2],c_p[2]
的意思是p里第二个值
variablepresszequalc_p[3]#定义变量pressz=c_p[3],c_p[3]
的意思是p里第三个值
thermo_stylecustomsteptempetotalpressv_pressxv_pressyv_presszvol
dump1allatom1000dump.tensile#输出结果到
dump.tensile
minimize1.0e-61.0e-610001000#驰豫
fix1leftsetforce0.0NULLNULL#固定左边
的原子
fix2allnpt1.01.01.0aniso0.00.0NULLNULLNULLNULL10.0drag1.0
thermo1000#
每1000步输出一次结果
timestep0.002#
时间步长0.002ps
run10000
#运行10000步
unfix2
fix3allnve
fix4alltemp/rescale1001.01.051.0
fix5alldeform1000xerate0.002unitsbox#设置沿x方向拉伸应变率
为0.002(1/ps)
computesallstress/atom#计算每个原子上
的应力计算结果记为s
computestreaallreducesumc_s[1]#将s里第一个值求和计
算结果记为strea
variablestressaequalc_strea/vol#定义变量stressa=
strea/vol,vol是体积
computestreballreducesumc_s[2]
variablestressbequalc_streb/vol
computestrecallreducesumc_s[3]
variablestresscequalc_strec/vol
thermo_stylecustomsteptempetotalpressv_stressav_stressbv_stresscvol
run300000