24小时热门版块排行榜    

查看: 7099  |  回复: 11

wangsong1016

铜虫 (初入文坛)

[求助] fix deposit沉积原子被反弹

本人目前利用Lammps软件进行薄膜生长模拟。目前参考文献J. Phys. D: Appl. Phys. 42 (2009) 065107进行重复性工作。当然这个文献中采用的是DL_Ploy软件,我利用Lammps应该也能重复该工作。利用Lammps做薄膜生长很重要的一个命令式fix deposit命令,能够以一定的时间步长为周期,向体系中周期性的加入一个原子。位置,角度,速度可控。计算采用的势能及参数来源于上面的参考文献,势能采用Buckingham+Coulumb势,氧离子间的相互作用采用纯库伦势。该文献研究的是MgO表面上生长MgAlO合金,我重复该工作的时候出现不合理的情况,请大家帮忙参考一下。
       1.最基本的方面入手,我模拟MgO基底上生长MgO薄膜。从文件中读取MS建模得到的MgO坐标。势参量如上文献设置。共四层原子,在第三层位置利用Langevin热浴,维持一定温度,上面两层原子nve系综自由弛豫。最底层原子固定不动。(物理上可能不尽合理,作为初步测试应该足够)
       2.在大概5Ang之外的位置设定为沉积区域,原子Mg和O在该区域产生并沉积下来。
       3.方便起见,我目前都只在windows下利用单核进行测试,模型初步建立起来之后再转移到Linux系统下并行计算。
       模拟结果发现利用deposit产生的这个原子行为很古怪,原子在向表面入射的过程中,会被表面反弹回来,不能吸附在基底上。换一种沉积产生原子的方式:这个原子不是利用fix deposit命令产生,而是在读取MgO原子坐标的时候,在MgO基底之外再多读取一个Mg或者O的坐标,那么这个原子就能够吸附到基底表面上。对这样的结果感到很困惑,希望大家给予帮助。
      输入脚本如下,另外坐标数据见附件:
      #This script is used to simulate the MgO structure

units            metal                                #The time step is picoseconds
atom_style       charge
boundary         p  p  p
pair_style       buck/long/coul/long   cut  long 8.0
read_data        MgO_structure.in

region thermostatregion  block  0.00 25.2672  0.00  25.2672  2.00 2.20
group  thermostatlayer  region thermostatregion
region surfaceregion  block  0.00 25.2672  0.00  25.2672  2.20 14.90
group  surfacelayer  region surfaceregion
region ParticleSourceRegion    block  0.00 25.2672  0.00  25.2672 15.00 15.20
group  ParticleSourceGroup     region  ParticleSourceRegion
mass  1 24  #Mg
mass  2 16  # O


set type 1 charge  2.0
set type 2 charge -2.0


pair_coeff       1  2   1279.69   0.29969     0.0
pair_coeff       2  2   9547.96   0.21916     32.0   
pair_coeff       1  1   0.0       1.1         0.0    #this term calculate the coulombic interaction between two Mg2+. Parameter A and C are set to be zero, while rho can't be set to 0.0, so here a tiny value are added.


kspace_style ewald 1.0e-4

min_style cg
minimize 1.0e-4  0.01  1000  10000

compute                temperature surfacelayer  temp #unfixedsubstrate temp
fix   1   thermostatlayer  nve
fix   2   thermostatlayer  langevin  300  300  0.10  4876
fix   3   surfacelayer     nve
fix   4   ParticleSourceGroup   nve
region  depositregion  block  0.00  25.2672   0.00  25.2672  10.20 10.40
group   depositatoms   region  depositregion
fix   5   depositatoms      nve
fix   6    depositatoms      deposit   1   2    500   9375    region  depositregion     vz  -14.0  -14.0

velocity   ParticleSourceGroup   set  2.0  2.0  -1.0
thermo_style        custom step atoms temp epair etotal press
thermo          100
thermo_modify        temp temperature lost/bond ignore lost warn

dump                3   all movie 10 movie.mpg type type &
                axes yes 0.8 0.02 view 80 -30
               
dump    2                all xyz 100 MgO.xyz

run  2000


模拟所需时间极短,希望大家能够运行测试,多多帮忙,谢谢!
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : MgO_structure.in
  • 2014-07-10 09:30:34, 24.91 K

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

wangsong1016

铜虫 (初入文坛)

无论利用set type 1 charge 1这种命令来设置原子电荷,还是利用read_data命令从文件中读取电荷,都只能对体系中当前存在的原子进行电荷赋值,而在这两个命令之后,再利用fix deposit命令产生的原子还是不具有电荷。因此每一次fix deposit命令之后,run一次,产生了一个原子之后立刻用set命令进行电荷赋值,这样原子就具有了电荷。原子速度不大的情况下,run一步原子不会跑多远,这一步有没有电荷所导致的影响也应该不大。
region     depositregionMg  block    0.00    25.2672    0.00    25.2672    25.20   25.40
group      depositMgatoms   region   depositregionMg
fix    4   depositMgatoms      nve
fix    5   depositMgatoms      deposit   80   1    10000   9375    region  depositregionMg     vz  -3.0  -3.0
dump    1   depositMgatoms    custom   100  MgOCharge.dat  id type mass q
dump                3   all movie 50 movie.mpg type type &
                axes yes 0.8 0.02 view 80 -30
               
dump    2                all xyz 300 MgO.xyz

run  1
set type 1 charge  2.0
set type 2 charge -2.0
set type 3 charge  3.0
run  4999
region     depositregionO      block    0.00    25.2672    0.00    25.2672    25.45   25.60
group      depositOatoms       region   depositregionO
fix    6   depositOatoms       nve
fix    7   depositOatoms       deposit   80   2    10000   1837    region  depositregionO      vz  -3.0  -3.0
run  1
set type 1 charge  2.0
set type 2 charge -2.0
set type 3 charge  3.0
run  5000
set type 1 charge  2.0
set type 2 charge -2.0
set type 3 charge  3.0
run  5000
3楼2014-07-11 10:25:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhangjiekm

银虫 (小有名气)

引用回帖:
4楼: Originally posted by wangsong1016 at 2014-07-11 10:26:05
本帖已完结

我试着运行了一下这个脚本,没有成功。报错:kspace style is incompatible with pair style. (kspace.cpp:199). 该如何修改呢?谢谢!
7楼2017-06-17 10:32:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

wangsong1016

铜虫 (初入文坛)

目前发现了一个很重要的问题。我利用deposit命令产生出来的原子不带有电荷,这样新生成的原子与基底原子的作用势没有带电的库仑项,因此结果自然不对。虽然我再设置中指定了每一种原子的电荷量,但是在模拟中还是没有被程序添加进去。
2楼2014-07-10 10:56:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangsong1016

铜虫 (初入文坛)

本帖已完结
4楼2014-07-11 10:26:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huoxingpopo

新虫 (初入文坛)

fix deposit 反弹可能是因为新产生的原子和原来的原子overlap了。可以尝试设置key word中的near。
5楼2016-07-06 17:27:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feng0603

新虫 (小有名气)

谢谢楼主!学习了!
6楼2016-10-22 13:45:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shawn_zhang

新虫 (初入文坛)

引用回帖:
7楼: Originally posted by zhangjiekm at 2017-06-17 10:32:48
我试着运行了一下这个脚本,没有成功。报错:kspace style is incompatible with pair style. (kspace.cpp:199). 该如何修改呢?谢谢!...

我也出现了这个问题,不知道为什么。
8楼2018-05-22 10:30:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

19861226ya

木虫 (著名写手)

引用回帖:
8楼: Originally posted by shawn_zhang at 2018-05-22 10:30:07
我也出现了这个问题,不知道为什么。...

换成 pppm/disp试试

发自小木虫Android客户端
姜死了,我想种蒜了!
9楼2018-06-05 17:46:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

于相江1124

新虫 (初入文坛)

楼主您好,被反弹可能是vz  -14.0  -14.0  您设定的这个速度过快。另外,想请教一下楼主,关于入射角度的问题,我看过了fix deposit命令,感觉其中没说入射角度的问题,原子是从上垂直沉积的么?
10楼2018-10-18 17:35:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wangsong1016 的主题更新
信息提示
请填处理意见