box主命令

介绍box主命令的使用和参数含义

作用

box命令用于设置计算盒子的空间形状和尺寸、盒子内包含的晶格类型和晶格常数、盒子内分子构型生成区定义、盒子边界条件、并行计算CPU按盒子空间的分配等信息。

形式

box -boundary [p|s] [p|s] [p|s]
    -dimension [2|3]
    -cpugrid px py pz
    lattice name style ...
    region id block xlo xhi ylo yhi zlo zhi
    region id prism xlo xhi ylo yhi zlo zhi xy xz yz
    region id plane ptx pty ptz vecx vecy vecz
    region id sphere ptx pty ptz radius
    region id cone xo yo zo axis depth radius1 radius2
    region id hexbar xo yo zo axis depth side thet
    region id intersect reg1 reg2 reg3 ...
    region id union reg1 reg2 reg3 ...
           -side in/out -lunit lattice
    create ntype regionID

说明

  • box -boundary [p|s] [p|s] [p|s]: 设置计算体系的边界条件。后面3个可选参数分别表示三个不同方向的边界条件设置,它们可以取p或s,p表示在这个方向上采用周期性边界条件,而s表示在这个方向上采用自由边界条件。默认设置为三个方向都有采用周期性边界条件。

  • box -dimension [2|3]: 设置模拟体系的维度,可以取2或3,分别表示模拟二维和三维问题。默认情况是模拟三维问题。

  • box -cpugrid px py pz : 并行计算中设置CPU按空间的分配。px、py、pz分别表示三维空间中不同方向的CPU数目,pxpypz应该等于并行计算中的总的CPU数目。一般情况下,HYMACS会根据体系大小自动分配CPU。

  • box lattice name style ... : 定义一种晶格类型用于生成原子。要指定一种晶格需要指出以下几个方面的参数`: 元胞的基矢量(a1, a2, a3)、基原子坐标(basis)、原点(origin)、晶格间距(spacing)、晶向(orient)。对于一种特定的晶格,首先应该指出它的元胞的基矢量和基原子坐标,可以通过设定a1-a3的方向来定,而基原子可以通过设定basis来定。

    命令中style可以取sc、bcc、fcc、bcc、hcp、diamond、sq、sq2、hex以及custom。除了custom外其它的类型都代表一种标准的晶格类型,HYMACS内部会指定晶格的基矢量和基原子坐标,在给定sytle后,需要加一个长度值表示标准晶格类型的晶格常数,例如: box lattice Cu fcc 3.615表示采用fcc晶格,并命名为Cu,晶格常数为3.615。而custom类型则需要自定义晶格的基矢量和基原子坐标等。元胞的基矢量通过给定a1、a2、a3来指定,基原子坐标通过basis指定。

    各种晶格类型都可以通过origin来指定晶格原点,通过spacing指定晶格间距,通过orient指定晶向。

    晶格的名称可以用来在部分命令中指定长度单位,即在x、y、z方向采用晶格常数作为长度单位,以便于方便地以晶格为基础指定空间位置。

    一个脚本中可以定义多种晶格类型,可以在不同的空间区域里用不同的晶格类型来生成不同类型的原子。

  • box region id sytle …: box region用于定义多个不同形状和大小的空间区域,这些区域可以用来规定计算盒子的形状和范围,在不同的区域中生成不同晶格类型的原子或对原子进行空间分类。Id表示所定义区域的名称,style表示所要定义区域的类型。所有类型的region定义可以附加两个选项,-side表示定义的是区域里面还是外面空间,对于平面而言表示与所给定的平面矢量相同还是相反的区域。-lunit表示定义区域所用的长度单位,后面跟着的是晶格类型的名字,晶格类型见box lattice命令说明。

  • box region id block xlo xhi ylo yhi zlo zhi : 定义一个正六面体空间区域,xlo、xhi分别表示正六面体两个角点的x最小和最大值,其它参数用于设定y和z方向。

  • box region id prism xlo xhi ylo yhi zlo zhi xy xz yz : 定义一个斜六面体空间区域,xlo,xhi,ylo,yhi,zlo,zhi分别表示斜六面体两个角点坐标,xy,xz,yz则表示倾斜长度。

  • box region id plane ptx pty ptz vecx vecy vecz : 定义一个平面,可以与其它区域进行切割。ptx pty ptz表示平面的基点,vecx vecy vecz用于指定平面的法线方向。

  • box region id sphere ptx pty ptz radius : 定义一个球区域。ptx pty ptz表示球心位置,radius用于指定球半径。

  • box region id cone xo yo zo axis depth radius1 radius2 : 定义一个圆台,可以用于定义圆锥、圆柱等形状的区域。xo yo zo表示圆台底面中心坐标;axis表示圆台的朝向,可选x、y、z方向;depth表示圆台高度;radius1 radius2分别表示底面和顶面的半径。

  • box region id intersect reg1 reg2 reg3 ... : 用于定义几个空间区域的交集,reg1 reg2 reg3为已定义的区域名称。

  • box region id union reg1 reg2 reg3 ... : 用于定义几个空间区域的合集,reg1 reg2 reg3为已定义的区域名称。

  • box create ntype regionID : 定义模拟盒子的形状和区域,便于HYMACS对CPU进行空间分配、初步计算分子体系的大小等。ntype表示体系内应该包含原子类型的总数。regionID表式用于定义盒子尺寸和形状的region名字,根据需要既可以定义正六面体盒子也可以定义斜六面体盒子。

示例

box -boundary p p s
box -dimension 3
box lattice Cu fcc 3.615
box lattice C diamond 3.567
box region sysBox block 0 10  0 10  0 10 -lunit Cu
box region tipBox cone 0 0 0 z 15 0 8 -lunit Cu
box region tipBin intersect tipBox slice1
box create 2 sysBox

反馈留言 💬