CUBE
CUBE 文件是一种广泛使用的 三维标量场(体积数据) 文件格式,常用于记录电子密度、静电势、分子轨道波函数等格点数据。MolStar 可直接加载并可视化 CUBE 文件,是量子化学计算与结构生物学交叉分析的重要桥梁。
格式概览
CUBE 文件由以下 四大段落 顺序组成:
┌─────────────────────────────────────────────┐
│ 1 标题段(2 行) │
│ 第 1 行:标题(任意内容) │
│ 第 2 行:标题(任意内容) │
├─────────────────────────────────────────────┤
│ 2 格点定义段(4 行) │
│ 原子数 & 原点坐标 │
│ 平移矢量 1(方向 × 数据点数) │
│ 平移矢量 2(方向 × 数据点数) │
│ 平移矢量 3(方向 × 数据点数) │
├─────────────────────────────────────────────┤
│ 3 原子坐标段(AN 行) │
│ 每个原子的 元素序号 / 有效电荷 / XYZ 坐标 │
├─────────────────────────────────────────────┤
│ 4 格点数据段(体积数据) │
│ 按 Fortran 列优先顺序存储的标量值 │
└─────────────────────────────────────────────┘⚠️ 所有坐标、平移矢量的单位均为 Bohr(波尔),而非埃(Å)。1 Bohr ≈ 0.529177 Å。
段落详解
标题段(2 行)
| 行号 | 内容 | 说明 |
|---|---|---|
| 第 1 行 | 任意字符串 | 通常为生成程序名称,如 Generated by Multiwfn |
| 第 2 行 | 任意字符串 | 通常为描述信息,如 Total 531440 grids |
💡 这两行纯属注释,内容任意,不影响解析。
格点定义段(4 行)
3 -6.000000 -7.424912 -6.867160
73 0.165751 0.000000 0.000000
91 0.000000 0.165751 0.000000
80 0.000000 0.000000 0.165751| 行 | 字段 1 | 字段 2~4 | 含义 |
|---|---|---|---|
| 第 1 行 | 原子数(AN) | 原点 X/Y/Z | 若为负值 → 含分子轨道信息 |
| 第 2 行 | N₁(第 1 方向格点数) | 平移矢量 v₁ 的 x/y/z 分量 | 定义第 1 个网格方向 |
| 第 3 行 | N₂(第 2 方向格点数) | 平移矢量 v₂ 的 x/y/z 分量 | 定义第 2 个网格方向 |
| 第 4 行 | N₃(第 3 方向格点数) | 平移矢量 v₃ 的 x/y/z 分量 | 定义第 3 个网格方向 |
总格点数 = N₁ × N₂ × N₃(上例:73 × 91 × 80 = 531,440 个格点)
原子坐标段(AN 行)
8 8.000000 0.000000 0.000000 0.216790
1 1.000000 0.000000 1.424912 -0.867160
1 1.000000 0.000000 -1.424912 -0.867160| 列 | 含义 | 说明 |
|---|---|---|
| 第 1 列 | 原子序数 | 8 = O,1 = H |
| 第 2 列 | 有效核电荷 | 通常等于原子序数;使用赝势时可能更小 |
| 第 3~5 列 | X / Y / Z 坐标(Bohr) | 原子在格点空间中的位置 |
💡 有效核电荷 在使用赝势时不等于原子序数,因为一部分内核电子和核电荷的效果被赝势替代了。
格点数据段
8.97452E-19 1.68963E-18 3.12519E-18 5.67888E-18 1.01380E-17 1.77805E-17
3.06365E-17 5.18606E-17 8.62458E-17 1.40910E-16 2.26177E-16 3.56662E-16
5.52546E-16 8.40976E-16 1.25748E-15 1.84723E-15 2.66590E-15 3.77982E-15
...| 属性 | 说明 |
|---|---|
| 数据格式 | Fortran 1PE13.5(科学计数法,13 位宽,5 位小数) |
| 每行个数 | 每 6 个数据换一行 |
| 存储顺序 | Fortran 列优先:先循环 k → 再循环 j → 最后循环 i |
| 数值含义 | 标量场值(如电子密度、静电势等) |
坐标计算公式
设三个平移矢量为 v₁(v₁x, v₁y, v₁z)、v₂(v₂x, v₂y, v₂z)、v₃(v₃x, v₃y, v₃z),原点为 org(orgx, orgy, orgz),格点索引为 (i, j, k),则:
x(i,j,k) = orgx + (i-1)·v₁x + (j-1)·v₂x + (k-1)·v₃x
y(i,j,k) = orgy + (i-1)·v₁y + (j-1)·v₂y + (k-1)·v₃y
z(i,j,k) = orgz + (i-1)·v₁z + (j-1)·v₂z + (k-1)·v₃z立方网格简化公式
当三个平移矢量分别平行于 x/y/z 轴时(最常见情况):
x(i,j,k) = orgx + (i-1) · v₁x ← i ∈ [1, N₁]
y(i,j,k) = orgy + (j-1) · v₂y ← j ∈ [1, N₂]
z(i,j,k) = orgz + (k-1) · v₃z ← k ∈ [1, N₃](1, 1, 1) 位置即原点 (orgx, orgy, orgz)
数据循环顺序示意
for i = 1 → N₁:
for j = 1 → N₂:
for k = 1 → N₃:
write(value(i,j,k)) ← 最内层循环是 k⚠️ 每写完一层 k 循环,即使当前行未满 6 个数据,也会强制换行。
分子轨道扩展格式
当第 2 行的原子数为 负值 时,CUBE 文件包含 分子轨道信息,结构变为:
┌─────────────────────────────────────────────┐
│ ① 标题段(2 行) │
│ ② 格点定义段(4 行)← 原子数为负! │
│ ③ 原子坐标段(|AN| 行) │
│ ③' 分子轨道信息段 ← 额外段落! │
│ ④ 格点数据段(每条 MO 一组) │
└─────────────────────────────────────────────┘分子轨道信息段
紧跟原子坐标之后,第一行数字为 MO 数量,后续每 10 个数字换行:
3 1 5 7 0 0 0 0 0 0
0 0表示此文件包含 3 条分子轨道,编号分别为 MO 1、MO 5、MO 7。
格点数据扩展
每个格点位置上不再是 1 个数值,而是 nmo 个数值(每条 MO 各一个):
MO₁(1,1,1) MO₂(1,1,1) MO₃(1,1,1) MO₁(1,1,2) MO₂(1,1,2) MO₃(1,1,2)
MO₁(1,1,3) MO₂(1,1,3) MO₃(1,1,3) MO₁(1,1,4) MO₂(1,1,4) MO₃(1,1,4)
...循环顺序不变(k → j → i),只是每个格点处的值被扩展为 nmo 维向量。
完整示例(水分子)
txt
Generated by Multiwfn
Total 531440 grids
3 -6.000000 -7.424912 -6.867160
73 0.165751 0.000000 0.000000
91 0.000000 0.165751 0.000000
80 0.000000 0.000000 0.165751
8 8.000000 0.000000 0.000000 0.216790
1 1.000000 0.000000 1.424912 -0.867160
1 1.000000 0.000000 -1.424912 -0.867160
8.97452E-19 1.68963E-18 3.12519E-18 5.67888E-18 1.01380E-17 1.77805E-17
3.06365E-17 5.18606E-17 8.62458E-17 1.40910E-16 2.26177E-16 3.56662E-16
5.52546E-16 8.40976E-16 1.25748E-15 1.84723E-15 2.66590E-15 3.77982E-15
5.26502E-15 7.20496E-15 9.68649E-15 1.27939E-14 1.66014E-14 2.11635E-14
2.65054E-14 3.26125E-14 3.94217E-14 4.68156E-14 5.46196E-14 6.26051E-14
...(共 531440 个格点数据)| 段落 | 内容解读 |
|---|---|
| 标题 | Multiwfn 生成,共 531,440 个格点 |
| 格点定义 | 3 个原子;73×91×80 立方网格;原点 (-6, -7.42, -6.87) Bohr |
| 原子坐标 | O 在 (0, 0, 0.22),两个 H 在 (0, ±1.42, -0.87) Bohr |
| 格点数据 | 电子密度标量值,从 8.97×10⁻¹⁹ 开始递增 |
格式速查表
| 属性 | 值 |
|---|---|
| 文件类型 | 纯文本 |
| 坐标单位 | Bohr(非 Å) |
| 数据格式 | Fortran 1PE13.5(科学计数法) |
| 数据排列 | 列优先(k → j → i) |
| 每行数据数 | 6 个 |
| 标量类型 | 电子密度 / 静电势 / MO 波函数等 |
| 分子轨道 | 原子数为负时启用,数据扩展为 nmo 维 |
| 总格点数 | N₁ × N₂ × N₃ |
相关资源
- MolStar Viewer — 在线可视化工具