VESTA结构文件如何指定原子增加箭头

 

在凝聚态物理与材料科学的计算中,研究者常需可视化磁矩、声子振动模式或原子位移。将 VASP 输出的 POSCAR 文件导入 VESTA 后,虽然可以通过图形界面逐一添加矢量箭头,但对于大体系或特定模式,直接通过编辑 .vesta 文本文件进行批量参数化定义,逻辑更为清晰且效率更高。

本文以Fe2O3结构为例,教科书式地详解如何通过修改 .vesta 文件中的 VECTR 和 VECTT 两个核心数据块,精准定义任意原子的箭头属性。

一、 基础工作流

  1. 将 POSCAR 文件拖入 VESTA 软件中打开。图片
  2. 点击菜单栏 File -> Save As...,将结构保存为 FeO3.vesta 文件。
  3. 使用任意纯文本编辑器(如 VS Code, Notepad++, 或记事本)打开 FeO3.vesta 文件。

二、 VECTR 块:定义矢量的方向与长度

在 .vesta 文件中,下拉寻找或直接搜索 VECTR 关键字(若无此关键字可手动在 SITET 块后创建)。该数据块负责控制箭头的指向和绝对长度。

每个原子的矢量定义由严格的三行代码组成。假设体系中 1 号原子为 Fe,2、3、4 号原子为 O。我们需为 1 号 Fe 原子和 2 号 O 原子添加箭头:

VECTR
    1   0.00000   0.00000   1.50000   # 第1行:1号原子的矢量分量
    1 0 0 0 0                         # 第2行:1号原子的附加渲染标志
  0 0 0 0 0                           # 第3行:单个原子矢量结束分隔符
    2  -1.00000   1.00000   0.00000   # 第1行:2号原子的矢量分量
    2 0 0 0 0                         # 第2行:2号原子的附加渲染标志
  0 0 0 0 0                           # 第3行:单个原子矢量结束分隔符
0 0 0 0 0                             # 整体VECTR块结束标识(必填)

参数详细释义:

  • 第一行(核心参数): [原子序号] [X分量] [Y分量] [Z分量]
    例如 1 0.00000 0.00000 1.50000 表示为结构中的 1号原子(Fe) 添加一个沿着 Z 轴正方向,模长相关的分量为 1.5 的矢量。数值的绝对大小直接决定了箭头的长度。
  • 第二行(渲染标志): [原子序号] [Flag1] [Flag2] [Flag3] [Flag4]
    例如 1 0 0 0 0。后续的四个 0 代表 VESTA 的高级渲染标志(如是否穿透原子中心、是否附加原子半径到模长等)。常规作图时,保持默认值 0 0 0 0 即可。
  • 第三行(分隔符): 0 0 0 0 0
    固定格式,用于告知解析器当前原子的矢量定义已结束。

三、 VECTT 块:定义矢量的粗细与颜色

定义完方向后,必须配套定义其外观(样式)。紧跟在 VECTR 块之后的通常是 VECTT 块。这里我们针对上述定义的 1 号和 2 号原子设置颜色和粗细:

VECTT
    1   0.800   255   0   0   0       # 定义1号原子:半径0.8,纯红色
    2   0.300     0   0 255   0       # 定义2号原子:半径0.3,纯蓝色
0 0 0 0 0                             # 整体VECTT块结束标识(必填)
图片

参数详细释义:

该块的语法为单行定义,格式如下:
[原子序号] [半径/粗细] [Red] [Green] [Blue] [透明度/预留标志]

  • 原子序号: 必须与 VECTR 中定义的原子序号一一对应。
  • 半径/粗细 (Radius): 决定了箭头圆柱体部分的粗细。默认值通常为 0.500。若需加粗引人注目,可设为 0.800 或 1.000;若想细致表达,可设为 0.200。
  • RGB 色值: 取值范围 0~255。
    • 红色:255 0 0
    • 绿色:0 255 0
    • 蓝色:0 0 255
    • 黑色:0 0 0
  • 末尾标志位: 固定填 0 即可。
  •