region命令用于定义一个空间几何区域。

使用语法:

region ID style args keyword arg ...
  • ID = 待定义区域的ID
  • style = delete / block / cone / cylinder / plane / prism / sphere / union / intersect
delete = no args
  block args = xlo xhi ylo yhi zlo zhi
    xlo,xhi,ylo,yhi,zlo,zhi = 各个维度上的范围值
  cone args = dim c1 c2 radlo radhi lo hi
    dim = x or y or z = 圆锥台轴线方向
    c1,c2 = 圆锥台轴线在另外两个维度上的坐标值
    radlo,radhi = 圆锥台上下底面的半径
    lo,hi = 圆锥台轴线方向的范围值
  cylinder args = dim c1 c2 radius lo hi
    dim = x or y or z = 圆柱体轴线方向
    c1,c2 = 圆柱体轴线在两位两个维度上的坐标值
    radius = 圆柱体半径,可以使用变量
    lo,hi = 圆柱体轴线方向的范围值
  plane args = px py pz nx ny nz
    px,py,pz = 平面上一个点的坐标
    nx,ny,nz = 平面法矢坐标
  prism args = xlo xhi ylo yhi zlo zhi xy xz yz
    xlo,xhi,ylo,yhi,zlo,zhi = 平行六面体在各个维度上的范围值
    xy = y方向在x方向的倾斜值
    xz = z方向在x方向的倾斜值
    yz = z方向在y方向的倾斜值
  sphere args = x y z radius
    x,y,z = 球心坐标
    radius = 球体半径,可以使用变量
  union args = N reg-ID1 reg-ID2 ...
    N = 要进行并集操作的区域的数目,必须大于等于2
    reg-ID1,reg-ID2, ... = 要进行并集操作的区域的ID
  intersect args = N reg-ID1 reg-ID2 ...
    N = 要进行交集操作的区域的数目,必须大于等于2
    reg-ID1,reg-ID2, ... = 要进行交集操作的区域的ID
  • keyword = side or units or move or rotate
side value = in or out
    in = 指定几何体内侧作为区域
    out = 指定几何体外侧作为区域
  units value = lattice or box
    lattice = 以晶格距离作为几何距离单位
    box = 以模拟盒子作为几何距离单位
  move args = v_x v_y v_z
    v_x,v_y,v_z = x, y, z 方向的位移量,equal类型的变量
  rotate args = v_theta Px Py Pz Rx Ry Rz
    v_theta = 旋转角,equal类型的变量,弧度单位
    Px,Py,Pz = 旋转操作的中心点
    Rx,Ry,Rz = 旋转轴矢量

使用举例

region 1 block -3.0 5.0 INF 10.0 INF INF
region 2 sphere 0.0 0.0 0.0 5 side out
region void cylinder y 2 3 5 -5.0 EDGE units box
region 1 prism 0 10 0 10 0 10 2 0 0
region outside union 4 side1 side2 side3 side4
region 2 sphere 0.0 0.0 0.0 5 side out move v_left v_up NULL