精华内容
下载资源
问答
  • lammps建模

    千次阅读 2020-05-12 09:08:40
    大家都清楚,在用lammps进行模拟计算前,建模这个步骤是必不少的。 总的来讲,我们可以通过两种方法来完成建模操作。一是通过lammps的命令建模;二是通过外部的程序建模,然后用lammps的read_data 命令将模型读入。 ...

    大家都清楚,在用lammps进行模拟计算前,建模这个步骤是必不少的。

    总的来讲,我们可以通过两种方法来完成建模操作。一是通过lammps的命令建模;二是通过外部的程序建模,然后用lammps的read_data 命令将模型读入。

    lammps命令建模的主要步骤可以描述为:

    用units 命令定义单位

    lattice 命令定义单胞

    region以及create_box命令定义区域和创建盒子

    create_atoms 命令创建原子

    今天我主要详细讲解lattice命令的语法:

    lattice style scale keyword values …

    style可以是 none, sc, bcc, fcc, hcp, diamond, sq,sq2, hex 或者 custom

    scale是style选项下的参数,比如(当units ≠ lj 时)style填bcc, 那么scale就填体心立方的晶格常数a0的值(当 units 为lj 时,这里的scale就是电子密度值,使用其他units时,scale都是晶格常数)。

    需要注意的是,当指定了 lattice的scale之后,位于lammps输入脚本中关于长度的值,其单位就是scale(表示几倍scale长)。

    零个或更多个 keyword/value 键值对可以被添加

    keyword可指定为 origin, orient, spacing, a1, a2, a3或者 basis

    对于所建立的晶胞,我们都可以进行平移origin和旋转orient操作

    origin 配对的值是三个数字 (x y z) 意思是对单位晶胞里的所有原子的整体平移量,单位晶胞的楞长默认为1,x,y,z的值为偏移量和棱长的比值(0 <= x,y,z <1),缺省值为(0 0 0)。为了便于后续分析,以及避免建模边界原子重合,我们一般会给一个比较小的偏移量(0.1 0.1 0.1).

    orient 作用是旋转晶胞方向。盒子默认方向为(x 0 0 1) (y 0 1 0) (z 0 0 1),可以认为orient命令将晶胞的指定晶向旋转至模拟盒子的三条坐标轴,然后将晶胞在盒子里重新排布。orient配对的值格式为 dim i j k,其中dim的值是字母 ‘x’ , ‘y’ 或者’z’,表示空间的三条轴。i j k 为该轴指向向的晶向,其值为整数,例如“orient x 2 1 0” 意思是旋转过后模拟盒子的x轴将会指向 [210] 晶向。三个方向要求满足正交以及右手定则。做旋转处理时,盒子原本的周期性不能被保证,如果仍然要保持其周期性,则先建模运行,然后看lammps的屏幕输出lattice spacing in x,y,z后的值,记为sx,sy,sz。然后将建立的模型放到ovito中切片观察,计算出xyz各个方向上的最小排布周期长度,记为slx,sly,slz。他们必须满足如下关系:

    sxm1=slxn1

    sym2=slyn2

    szm3=slzn3

    其中m1,2,3以及n1,2,3均为整数,于是取盒子大小为(sxm1 sym2 sz*m3)

    旋转操作一般被用来建立不同方向的界面。

    spacing配对的值是 dx dy dz,为两个单胞之间的间距

    如果我们的style取的是custom,那么我们可以通过a1,a2,a3 和 basis 这两个关键词来指定基矢和单胞里的原子在基矢中的定位

    a1,a2,a3 各自配对的值为(x y z)意思是a1 a2 a3这三个基矢的值,用来定义单胞的基矢。缺省值对于三维的sc、fcc、bcc和diamond类型的原子,他们的棱长默认为1个单位,默认的基矢为a1 (1 0 0);a2 (0 1 0);a3 (0 0 1)。hpc类型a1 = 1 0 0;a2 =0 sqrt(3) 0;a3 = 0 0 sqrt(8/3)。

    basis 配对的值是(x y z),表示在基矢定义的空间的一个位置,如有多个位置,则定义多个basis

    对于三维的sc、fcc、bcc和diamond类型的原子,这些已有的类型不需要指定基矢和basis,但是我们可以用custom的style加上基矢和basis的参数来建立同样的模型。bcc, fcc, sc的基矢为a1 = 1 0 0;a2 = 0 1 0;a3 = 0 0 1,bcc默认basis原子(0 0 0)(0.5 0.5 0.5),fcc的basis (0 0 0)(0 0.5 0.5)(0.5 0.5 0)(0.5 0 0.5), sc 的basis(0 0 0)。hpc类型的基矢a1 = 1 0 0;a2= 0 sqrt(3) 0;a3 = 0 0 sqrt(8/3)。

    展开全文
  • 本文介绍使用lammps建立球壳模型的方法,如下图所示: 内核为Al球体,外面包裹一层Al球壳。 主要使用region sphere命令。 1.内核建模 使用region sphere命令生成一个球体区域 region ball_in sphere 0 0 0 60 units ...

    大家好,我是小马老师。
    本文介绍使用lammps建立球壳模型的方法,如下图所示:
    内核为Al球体,外面包裹一层Al球壳。
    主要使用region sphere命令。
    1.内核建模
    使用region sphere命令生成一个球体区域

    region ball_in sphere 0 0 0 60 units box
    

    2.球壳建模
    分别建立球壳内外两个球面,内球面添加side out关键词,指定球面的外侧区域为我们需要的区域。

    region ball1 sphere 0 0 0 70 units box
    region ball2 sphere 0 0 0 60 side out units box
    

    使用intersect命令对两个球面求交集,得到shell区域,在shell区域内填充原子

    region shell intersect 2 ball1 ball2
    

    3.填充原子
    在以上两个区域内使用create_atoms命令填充原子

    create_atoms 2 region ball_in
    create_atoms 1 region shell
    

    保存结构文件为Al.data,导入到Ovito即可查看建模效果,至此,建模完成。
    下面给出完整的建模in文件代码。

    units   metal
    atom_style atomic
    boundary    p p p
    lattice fcc 4.05
    region box block -20 20 -20 20 -20 20 
    create_box 2 box
    #创建球壳区域
    region ball1 sphere 0 0 0 70 units box
    region ball2 sphere 0 0 0 60 side out units box
    region shell intersect 2 ball1 ball2
    #创建内核区域
    region ball_in sphere 0 0 0 60 units box
    #填充原子
    create_atoms 2 region ball_in
    create_atoms 1 region shell
    #保存文件
    mass    * 27
    write_data Al.data
    

    region命令可选功能比较丰富,灵活使用可创建比较复杂的模型。

    in文件编写、培训、咨询请扫码加我微信:sunnyfirst888
    在这里插入图片描述

    公众号案例代码以及学习交流,请加QQ群:754749935
    在这里插入图片描述

    扫描关注微信公众号:lammps加油站。
    在这里插入图片描述

    展开全文
  • lammps模拟中,常用的建模方法有两种,一种是完全使用lammps自带命令建模,另一种是使用read_data命令读入其它软件模型。 在lammps模拟中,有时候也会同时使用以上两种方法:使用read_data读入模型文件后,再用...

    大家好,我是小马老师。
    在lammps模拟中,常用的建模方法有两种,一种是完全使用lammps自带命令建模,另一种是使用read_data命令读入其它软件模型。
    在lammps模拟中,有时候也会同时使用以上两种方法:使用read_data读入模型文件后,再用lammps自带命令添加其它类型的原子。
    如本例中,使用Atomsk建立了一个Cu基底模型,保存为Cu.lmp文件。
    在这里插入图片描述

    在in文件中read_data读入Cu.lmp文件后,增加一个金刚石刀具。
    在这里插入图片描述

    如果使用下面的建模代码:

    read_data   Cu.lmp
    change_box all z delta 0 50 units box
    region     tool sphere 17 17 50 12 units box
    lattice     diamond 3.52
    create_atoms 2 region tool
    mass 1 64
    mass 2 12 
    write_data all.data
    

    则会提示以下错误:原子2为非法原子类型
    在这里插入图片描述

    主要原因是lammps模拟过程是在一个box内进行,read_data命令会根据data文件中的原子总数创建一个box,与下面的命令类似:

    create_box 1 box
    

    box内原子的总数目已经确定为1,再添加一种新的原子2就会提示错误。
    解决方法也比较简单,只要想办法把box内原子总数设置为2,并且设定两种原子的摩尔质量即可。
    下面给出2种解决方案:
    1. 设置read_data命令,额外增加一种原子类型
    read_data命令允许在读入data文件时设定是否还需要增加新的原子,如本例需要新增一种原子类型,命令可写为:

    read_data   Cu.lmp extra/atom/types 1
    

    这样就可以正常运行了。
    对应的in文件为:

    read_data   Cu.lmp extra/atom/types 1
    change_box all z delta 0 50 units box
    region     tool sphere 17 17 50 12 units box
    lattice     diamond 3.52
    create_atoms 2 region tool
    mass 1 64
    mass 2 12 
    write_data all.data
    

    2.修改Cu.lmp文件,把原子类型总数改为2
    原始Cu.lmp文件为:
    在这里插入图片描述

    修改后Cu.lmp为:
    在这里插入图片描述

    对应的in文件为:

    read_data   Cu.lmp
    change_box all z delta 0 50 units box
    region     tool sphere 17 17 50 12 units box
    lattice     diamond 3.52
    create_atoms 2 region tool
    write_data all.data
    

    深入了解lammps模拟原理,在出现问题时才能游刃有余,公众号定期推出lammps模拟小技巧,敬请关注!

    如果在使用lammps过程中遇到什么问题,可到公众号或者QQ群留言。
    公众号案例代码以及学习交流,请加QQ群:754749935
    在这里插入图片描述

    扫描关注微信公众号:lammps加油站。
    在这里插入图片描述

    展开全文
  • 本文介绍一种相对简单的管道类模型建模方法,用到的软件为Atomsk。 在Atomsk中,命令roll可将模型“卷”成一定的角度,类似于材料加工中的滚轧。 roll命令格式为: -roll <θ> direction:xyz中的一个方向,...

    大家好,我是小马老师。
    lammps模拟纳米流体时,多数会用到管道类模型,如下图所示。
    在这里插入图片描述

    这种管道类模型,可以使用lammps自带的region cylinder命令构建,命令相对复杂,对新手来说并不友好。
    本文介绍一种相对简单的管道类模型建模方法,用到的软件为Atomsk。
    在Atomsk中,命令roll可将模型“卷”成一定的角度,类似于材料加工中的滚轧。
    roll命令格式为:
    -roll <θ>
    direction:xyz中的一个方向,表示沿着该方向发生roll变形。
    θ:变形角度
    axis:xyz中的一个方向,表示绕着该轴变形。
    以Al板变形为例:

    1. 建立Al板模型
    atomsk --create bcc 4.046 Al -duplicate 20 20 1 Al.xsf
    

    在这里插入图片描述

    1. roll变形
    atomsk Al.xsf -roll y 360 x final.lmp
    

    在这里插入图片描述

    使用roll命令时需要注意,如果roll角度较大,要满足能够卷起的条件,一般来说,多用薄板类的结构进行变形。
    in文件编写、培训、咨询请扫码加我微信:sunnyfirst888
    在这里插入图片描述

    公众号案例代码以及学习交流,请加QQ群:754749935
    在这里插入图片描述

    扫描关注微信公众号:lammps加油站。
    在这里插入图片描述

    展开全文
  • LAMMPS常用建模方法总结

    千次阅读 2018-03-28 14:01:00
    内部建模,即使用LAMMPS提供的命令建立模型。这种方法主要用于构建比较简单和标准的体系。 相关命令主要有4个: lattice:定义晶格类型; region:定义模拟盒子的大小; create_box:创建模拟盒子; create_...
  • region命令在lammps建模中的作用非常大,既可以用来建模,也可以用来选择特定区域的原子。 region命令主要功能是划定一个特定区域,形状可以为长方体、圆柱体、球体等。 lammps提供了一个region union命令,可把多个...
  • 使用lammps建模,首先要确定xyz坐标轴对应的晶向指数。 以面心立方晶体[11-2]孪晶面为例,孪晶面上下两侧的xyz轴对应的指数可以设为[11-2][111][1-10]和[-1-12][111][-110]。 设置方法并不是唯一的,根据需要xyz可以...
  • 本文讲解lammps海水淡化模拟的建模方法。 模型如下图所示,左侧部分为海水,主要成分为8000个水分子、800个Na+、800个Cl-,中间绿色部分为三层石墨烯。 案例仅演示建模方法,参数是随便取的,水分子及NaCl的个数可...
  • 在一些lammps模拟中会涉及到不规则界面对模拟结果的影响,如凹凸界面对摩擦力的影响、凹凸界面对纳米流体的影响等等。 Atomsk可根据设定条件重新调整原子的位置,从而生成不同的结构。 下面以Al板为例介绍不规则界面...
  • 一个简单的lammps计算SiO2晶体结构的输入文件,可以得到一个六方晶系的SiO2分子结构
  • 原创公众号:LAMMPS交流站javascript:void(0); 纳米管比人的头发丝还要细1万倍,而它的硬度要比钢材坚硬100倍。它可以耐受6500°F(3593℃)的高温,并且具有卓越的导热性能。纳米管既可以用作金属导电体,比金的...
  • [lammps第九讲] 复合材料/层合板结构建模 原创YJ学长LAMMPS交流站10月3日 收录于话题#lammps案例15个内容 点击上方蓝字关注我们 层合板是由多层单层板粘合在一起组成整体的结构板。 如下图为本文建立的层合板...
  • lammps中建立高熵合金模型主要流程为: (1)确定大体的晶格结构,是fcc还是bcc,这些可通过查文献获得。 (2)确定晶格常数,以合金元素中最大的晶格常数即可,也不是必须选择最大晶格常数,选择其它数也可以。...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 256
精华内容 102
关键字:

lammps建模