24小时热门版块排行榜    

查看: 2784  |  回复: 4
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

leila3409

捐助贵宾 (正式写手)


[交流] 【讨论】LAMMPS 晶界计算 输入脚本

在一个网站上看到的一个研究晶界的能量随各个自由度变化的LAMMPS输入文件https://ccg.hpc.msstate.edu/medi ... boundary_generation,很强大的样子,可是有一些设置不是太明白,拿出来大家讨论一下。



我有这么几处不明白,为什么overlapinic 要设为86?是怎么得到86这个数的?

overlapdist 为什么要设为0.275+0.005*(v_c-1)?我知道它应该是测试晶界区域中不同的原子数带来的影响,可是这个0.275是怎么得到的?

if $d == 2 then "delete_atoms overlap ${overlapdist} upper lower" 这句看起来比较奇怪,好像d只能是1,为什么还有这个句子?



望高手予以解答!!




# LAMMPS Input File for Grain Boundaries
# Mark Tschopp, Dec2009
# This file will generate numerous input files for LAMMPS
# using a large number of grain boundaries

# ---------- Setup Variables ---------------------
variable etol equal 1.0e-25
variable ftol equal 1.0e-25
variable maxiter equal 5000
variable maxeval equal 10000
variable latparam equal 2.855312
variable minimumenergy equal -4.122435
variable overlapboth equal 1
variable gbname index Fe_100STGB1
variable counter equal 0
variable inc equal "v_latparam / 6"

# Insert x,y,z sizes in LU and calculate in Angstroms
variable xsize1 equal "sqrt(0^2 + 2^2 + 1^2)"
variable zsize1 equal "sqrt(1^2 + 0^2 + 0^2)"
variable xsize2 equal "sqrt(0^2 + 2^2 + -1^2)"
variable zsize2 equal "sqrt(1^2 + 0^2 + 0^2)"
if ${xsize1} <= ${xsize2} then "variable xsize equal ${xsize1}" else "variable xsize equal ${xsize2}"
if ${zsize1} <= ${zsize2} then "variable zsize equal ${zsize1}" else "variable zsize equal ${zsize2}"
variable xlen equal "v_xsize * v_latparam"
variable zlen equal "v_zsize * v_latparam"

# Determine number of increments for displacement grid in the in-plane GB directions
variable xinc equal "floor(v_xlen / v_inc)"
variable zinc equal "floor(v_zlen / v_inc)"

# Implement overlap criterion
variable overlapinc equal 86

# ---------- Define loops for simulation ---------------------  
label loopa
variable a loop ${xinc}
variable tx equal "(v_a-1) / v_xinc * v_xsize"
label loopb
variable b loop ${zinc}
variable tz equal "(v_b-1) / v_zinc * v_zsize"
label loopd
variable d loop ${overlapboth}
label loopc
variable c loop ${overlapinc}
variable overlapdist equal "0.275 + 0.005 * (v_c-1)"

# ---------- Calculate counter and create data directory ---------------------
variable ctemp equal ${counter}+1
variable counter equal ${ctemp}
variable ctemp delete
print "Counter: ${counter}"
shell mkdir ${gbname}

# ---------- Initialize Simulation ---------------------
clear
units metal
dimension 3
boundary p p p
atom_style atomic

# ---------- Create Atomistic Structure ---------------------
lattice bcc ${latparam}
region whole block 0.000000 6.384672 -121.308763 121.308763 0.000000 2.855312 units box
create_box 2 whole
region upper block INF INF 0.000000 121.308763 INF INF units box
lattice bcc ${latparam} orient x  0  2  1 orient y  0 -1  2 orient z  1  0  0
create_atoms 1 region upper
region lower block INF INF -121.308763 0.000000 INF INF units box
lattice bcc ${latparam} orient x  0  2 -1 orient y  0  1  2 orient z  1  0  0
create_atoms 2 region lower
group upper type 1
group lower type 2  

# ---------- Define Interatomic Potential ---------------------
pair_style eam/fs
pair_coeff * * /cavs/cmd/data1/users/mtschopp/LAMMPS/lammps-12Nov09/potentials/Fe_2.eam.fs Fe Fe
neighbor 2.0 bin
neigh_modify delay 10 check yes

# ---------- Displace atoms and delete overlapping atoms ---------------------
displace_atoms upper move ${tx} 0 ${tz} units lattice
if $d == 1 then "delete_atoms overlap ${overlapdist} lower upper"
if $d == 2 then "delete_atoms overlap ${overlapdist} upper lower"
if $c == 1 then "variable atomprev equal 1"
variable natoms equal "count(all)"
print "Previous: ${atomprev}, Present: ${natoms}"
if ${atomprev} == ${natoms} then "jump GB_Fe_100STGB1.in loopend"

# ---------- Define Settings ---------------------
compute csym all centro/atom
compute eng all pe/atom
compute eatoms all reduce sum c_eng

# ---------- Run Minimization ---------------------
reset_timestep 0
thermo 10
thermo_style custom step pe lx ly lz press pxx pyy pzz c_eatoms
min_style cg
minimize ${etol} ${ftol} ${maxiter} ${maxeval}

# ---------- Run Minimization 2---------------------
# Now allow the box to expand/contract perpendicular to the grain boundary
reset_timestep 0
thermo 10
thermo_style custom step pe lx ly lz press pxx pyy pzz c_eatoms
fix 1 all box/relax aniso NULL 0.0 NULL vmax 0.001
min_style cg
minimize ${etol} ${ftol} ${maxiter} ${maxeval}

# ---------- Calculate GB Energy ---------------------
variable esum equal "v_minimumenergy * count(all)"
variable xseng equal "c_eatoms - (v_minimumenergy * count(all))"
variable gbarea equal "lx * lz * 2"
variable gbe equal "(c_eatoms - (v_minimumenergy * count(all)))/v_gbarea"
variable gbemJm2 equal ${gbe}*16021.7733
variable gbernd equal round(${gbemJm2})
print "After third minimization:"
print "GB energy is ${gbemJm2} mJ/m^2"

# Store number of atoms for overlap criterion, i.e., do not rerun equivalent configurations
variable atomprev equal "v_natoms"

# ---------- Dump data into Data file -------------
shell cd Fe_100STGB1
reset_timestep 0
timestep 0.001
velocity all create 20 95812384
fix 2 all npt 1 1 100 xyz 0 0 100 drag 0.2
dump 1 all custom 1000 dump.${counter}_${gbernd} id type x y z c_csym c_eng
run 0
shell cd ..

# ---------- End of loop structure -------------
label loopend
next c
jump GB_Fe_100STGB1.in loopc
variable c delete
next d
jump GB_Fe_100STGB1.in loopd
variable d delete
next b
jump GB_Fe_100STGB1.in loopb
variable b delete
next a
jump GB_Fe_100STGB1.in loopa
print "All done"
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

15845409825

新虫 (初入文坛)



小木虫: 金币+0.5, 给个红包,谢谢回帖
variable minimumenergy equal -4.122435 里面 -4.122435 是怎么取值的?
5楼2015-05-11 10:54:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

jsheng5059

银虫 (小有名气)


准备用lammps研究晶界,虽然不懂!顶一个!
2楼2011-03-29 18:34:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 E4V9bALS54sj 2026-09-19 3/150 2026-09-20 01:39 by 9i7PCSZyMzot
[论文投稿] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 E4V9bALS54sj 2026-09-19 3/150 2026-09-20 01:27 by 9i7PCSZyMzot
[硕博家园] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 E4V9bALS54sj 2026-09-19 3/150 2026-09-20 01:27 by 9i7PCSZyMzot
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 E4V9bALS54sj 2026-09-19 3/150 2026-09-20 01:15 by 9i7PCSZyMzot
[博后之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 E4V9bALS54sj 2026-09-19 3/150 2026-09-20 01:15 by 9i7PCSZyMzot
[考研] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 4pRyVGCVerAA 2026-09-19 3/150 2026-09-20 00:15 by 9i7PCSZyMzot
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 4pRyVGCVerAA 2026-09-19 3/150 2026-09-20 00:03 by 9i7PCSZyMzot
[找工作] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 4pRyVGCVerAA 2026-09-19 4/200 2026-09-20 00:03 by 9i7PCSZyMzot
[考博] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 4pRyVGCVerAA 2026-09-19 4/200 2026-09-19 23:51 by 9i7PCSZyMzot
[基金申请] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 4pRyVGCVerAA 2026-09-19 4/200 2026-09-19 23:39 by 9i7PCSZyMzot
[考研] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 4pRyVGCVerAA 2026-09-19 4/200 2026-09-19 23:27 by 9i7PCSZyMzot
[论文投稿] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 4pRyVGCVerAA 2026-09-19 4/200 2026-09-19 23:27 by 9i7PCSZyMzot
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 4pRyVGCVerAA 2026-09-19 4/200 2026-09-19 23:03 by 9i7PCSZyMzot
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 4pRyVGCVerAA 2026-09-19 4/200 2026-09-19 23:03 by 9i7PCSZyMzot
[公派出国] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 4pRyVGCVerAA 2026-09-18 7/350 2026-09-19 21:03 by 9i7PCSZyMzot
[教师之家] 现代”学阀”该如何界定 +3 iaeyuan 2026-09-19 3/150 2026-09-19 20:52 by 没昵称呀
[基金申请] 国社科系统bug了,是不是要放榜了? +7 kynobel 2026-09-16 9/450 2026-09-19 14:52 by 接好运婷
[考博] 申博发邮件 +8 Lmengk 2026-09-15 9/450 2026-09-19 09:27 by 中间体超市
[有机交流] 各位大神,目前国内有哪些比较好用的逆合成软件? 20+3 zapen 2026-09-15 9/450 2026-09-18 18:17 by zapen
[考博] 上海工程技术大学激光智能制造课题组招收博士研究生 +8 两三岁ss 2026-09-14 8/400 2026-09-16 09:46 by 水士口
信息提示
请填处理意见