扩展 X 射线吸收精细结构(extended X-ray absorption fine structure,EXAFS)的壳层拟合,常用 Demeter 软件包里的 Artemis 完成。Athena 负责把实验谱处理成可导入的数据,Artemis 再把测量到的振荡和 FEFF 计算的散射路径对齐,从而估计配位数 $N$、距离修正、无序度 $\sigma^2$ 和能量原点位移 $\Delta E_0$。

下面把界面、操作顺序和三类示例分开写。$\mathrm{Pt\text{-}O\text{-}Cu}$、$\mathrm{PtO_2}$ 和铁的数据来自不同教程,参数和日志各自保留,不合并成一次拟合。这批材料里没有论文 DOI。

Demeter 里的三个部分

Demeter 在相关说明里被分成三块:

  • Athena:处理实验数据,得到 X 射线吸收近边结构(X-ray absorption near-edge structure,XANES)和 EXAFS。
  • Artemis:拟合 EXAFS,提取配位数等结构参数。
  • Hephaestus:该说明把它写成与同步辐射实验相关的数据库。

Demeter 与 Athena、Artemis、Hephaestus 的关系图

Artemis 拟合的输入是不加权的 EXAFS 振荡 $\chi(k)$。背景扣除要在 Athena 里做完,Artemis 本身不做这一步。拟合使用 FEFF 算出的散射振幅和相移,做最小二乘。目标函数容易落到局部极小,所以窗口、路径和初值都要人为检查。

程序内嵌 Atoms 和 FEFF6,不包括 FEFF8 及更高版本。它的计算核心对应原来 UWXAFS 软件包中的 FEFFIT,图形界面是后来加上的。

主窗口各自管一件事

Athena 的功能集中在一个窗口里。Artemis 把数据、理论路径、参数和拟合拆开,需要来回切换。主窗口从左到右大致是:

区域 作用
GDS、Plot、History、Journal 定义参数、看图、回看以往拟合、写笔记
数据 只能导入 Athena 保存过的数据
模型与路径 由 CIF 经 Atoms 和 FEFF 生成 path
拟合结果 给出 $N$、键长相关量和 $\sigma^2$

GDS 里用 guess 表示待拟合,用 set 表示固定,也可以由其他参数算出一个量。Sample 窗口左侧选择要拟合的 R 空间范围,右侧列出路径和每条路径用到的参数名。History 会留下每次拟合,因为可用的结果往往要反复改。

Artemis 拟合的操作顺序:导入结构、计算路径、设置参数并重复拟合

Artemis 主界面:实验数据、FEFF 计算、拟合和作图分布在不同窗口

一条可重复的顺序是:

  1. 在 Athena 中处理谱,保存为 .prj
  2. 在 Artemis 中用 File → Open project or data,或在 data set 里 Add,导入该文件。
  3. 在 Feff calculation 中加入 CIF,指定吸收原子,依次 Run Atoms、Run FEFF。
  4. 画出各路径的 $\lvert\chi(R)\rvert$,只把和样品峰对得上的路径拖进数据窗口。
  5. 设定 $k$、$R$ 窗口和每条路径的 $N$、$\Delta E_0$、$\Delta R$、$\sigma^2$。
  6. 运行 Fit,阅读日志后再改窗口或路径。GDS 里出现的参数名必须和路径公式里的名字一致。

示例一:$\mathrm{Pt\text{-}O\text{-}Cu}$ 的氧路径和铜路径

一组第二壳层操作使用名为 Pt-O-Cu 的 FEFF 计算。图中集群半径 $5.00\ \mathrm{\AA}$,包含 16 个原子。被选中的两条单散射路径是:

路径 $R_{\mathrm{eff}}$ 说明
O1.1 $1.929\ \mathrm{\AA}$ $\mathrm{Pt\text{-}O}$ 单散射
Cu2.1 $2.545\ \mathrm{\AA}$ $\mathrm{Pt\text{-}Cu}$ 单散射

同一屏幕上的傅里叶变换窗口为 $k_{\min} = 3\ \mathrm{\AA}^{-1}$,$k_{\max} = 11\ \mathrm{\AA}^{-1}$,$R_{\min} = 1\ \mathrm{\AA}$,$R_{\max} = 3\ \mathrm{\AA}$。教程正文接着把 $R_{\max}$ 从 3 改到 3.3 再拟合一次。截图里仍写着 rmax = 3,因此这张图对应修改前的窗口。

$\mathrm{Pt\text{-}O\text{-}Cu}$ 模型的 FEFF 路径列表,以及 $k$、$R$ 窗口设置

这篇教程建议由金属箔把振幅衰减因子 $S_0^2$ 固定为 0.87。它还写了一种变通:若软件不允许给 $N$ 单独起名,就把 $N$ 的 guess 乘进 $S_0^2$ 所在的那一格,使结果里显示出配位数。同篇 Fit 1 日志里却直接出现了名为 N1、N2 的拟合变量。固定 $S_0^2$ 的建议,和这条日志里的参数表,应按两套做法分开看。

Fit 1 日志与正文中的 Happiness 一致,可以和“调整 rmax 之前”的那次拟合对上:

  • 独立点数 9.9375,变量 7 个。
  • 约化 $\chi^2$ 为 33.116,R 因子为 0.0086。
  • Happiness = 95.47/100。
  • 日志写明在 9.938 个独立点中使用了 7 个,惩罚为 4.528。
  • 软件注明 Happiness 是语义性指标,不应写进论文。

日志中的距离项是相对 FEFF 参考距离的修正。$\mathrm{O}$ 路径 $R_{\mathrm{eff}}$ 为 $1.929\ \mathrm{\AA}$,$\mathrm{Cu}$ 路径 $R_{\mathrm{eff}}$ 为 $2.545\ \mathrm{\AA}$。$R_1 = -0.058\ \mathrm{\AA}$ 是修正量,直接把它写成 $\mathrm{Pt\text{-}O}$ 键长会短一截。

参数 拟合值 不确定度
$N_1$ 1.466 0.213
$E_1$ 4.705 eV 1.371 eV
$R_1$ $-0.0582\ \mathrm{\AA}$ $0.0087\ \mathrm{\AA}$
$\sigma^2_1$(SIG1) $0.00402\ \mathrm{\AA}^2$ $0.00153\ \mathrm{\AA}^2$
$N_2$ 2.567 0.510
$R_2$ $0.00549\ \mathrm{\AA}$ $0.0084\ \mathrm{\AA}$
$\sigma^2_2$(SIG2) $0.01087\ \mathrm{\AA}^2$ $0.00165\ \mathrm{\AA}^2$

小数尾数以截图为准。$N_1$、$N_2$ 的不确定度相对数值本身已经不小。$E_1$ 约 4.7 eV,落在后文 $\pm 10\ \mathrm{eV}$ 的范围内。$\sigma^2_1$ 高于该教程给出的室温金属–氧 $\sigma^2$ 下限 $0.0025\ \mathrm{\AA}^2$,$\sigma^2_2$ 大于 $\sigma^2_1$,和“更远壳层的 $\sigma^2$ 更大”同向。这些只说明这条日志和该教程自己的经验范围能够对上其中几项,并不表示拟合已经可以照抄进论文。

$\mathrm{Pt\text{-}O\text{-}Cu}$ 示例的 Fit 1 日志:R 因子、Happiness 和两套壳层参数

正文还提醒:$\Delta E_0$ 若只用一个变量拟合不好,可以拆成两个变量。约化 $\chi^2$ 不能单凭某一个数判断好坏;同一次调试中它变小,才说明这一步比上一步更好。

示例二:$\mathrm{PtO_2}$ 第一壳层与 $S_0^2$

另一篇教程只拟合 $\mathrm{PtO_2}$ 的第一壳层,用来说明配位数从哪里来。样品仍需先在 Athena 里存成 .prj

$R$ 窗口在该示例中改成 $1\text{–}2\ \mathrm{\AA}$。选择路径时,取 $R_{\mathrm{eff}}$ 比待拟合峰的位置长约 $0.3\text{–}0.5\ \mathrm{\AA}$ 的 FEFF 路径,再拖到 Path list。这个长度差和后文“傅里叶变换峰通常比真实键长短 $0.3\text{–}0.5\ \mathrm{\AA}$”是同一件事:峰位置本身还不是键长。

$\mathrm{PtO_2}$ 第一壳层拟合时,$R$ 窗口取 $1\text{–}2\ \mathrm{\AA}$

按 $R_{\mathrm{eff}}$ 与峰位的差距挑选 FEFF 路径

参数按壳层分工:每个壳层的 $S_0^2$ 用同一个值;$\Delta E_0$ 可以共用;$\Delta R$ 和 $\sigma^2$ 按壳层分开。示范时先把 $S_0$ 设为 1,再让 $n_1$ 浮动。拟合结束后,日志里的 $n_1$ 被这篇教程解释为第一壳层 $\mathrm{Pt\text{-}O}$ 配位数。

截图中的 Fit 1 同时给出了软件自己的警告,需要和教程正文对看:

  • Happiness = 92.19/100。
  • 有一条“绝对值大于 10”的惩罚,并写有独立点惩罚 5.810。被点名的符号以图中英文为准。
  • $E_0$ 约为 12.6 eV,$r_1$ 约为 $-0.034\ \mathrm{\AA}$,$s_1$ 约为 $0.0038\ \mathrm{\AA}^2$,$n_1$ 约为 4.74,$s_0$ 被设为 1。日志里的变量名是 enot、r1、s1、n1、s0。
  • $r_1$ 与 $E_0$ 的相关约 0.86,$\sigma^2$ 与配位数一项的相关也在 0.85 左右。

$\mathrm{PtO_2}$ 第一壳层的 $R$ 空间拟合曲线和 Fit 1 日志

同一篇正文又规定:窗口要变成淡绿色,结果才有可能采用;红色、红黄、黄色、黄绿色都不用。即便窗口变绿,还要求 R 因子小于 0.02、$S_0^2$ 为正、$\sigma^2$ 为正,并且 Happiness 必须等于 100.00/100。上面这条日志是 92.19/100,$E_0$ 也已经超出其他材料里的 $\pm 10\ \mathrm{eV}$。因此 $n_1 \approx 4.74$ 只是这张示范屏幕上的拟合值,不能当成已经通过该教程自己的采用标准的 $\mathrm{Pt\text{-}O}$ 配位数。

$S_0^2$ 未知时,教程改为拟合标样:把 $\mathrm{PtO_2}$ 第一壳层配位数固定为 6,只改参数表,反推出 $S_0$。对应日志里 $S_0$ 约为 0.79,不确定度约为 0.086;$E_0$、$r_1$、$s_1$ 仍和上面同量级。精确尾数以截图为准。

由配位数固定的 $\mathrm{PtO_2}$ 标样反推 $S_0$ 的日志

示例三:铁的 R 空间数据

第三篇教程处理的是 Athena 导出后的 $\mathrm{Fe}$ 数据,并写明导入 $\mathrm{Fe_3O_4}$ 的 CIF,再 Run Atoms、Run FEFF、Plot path,对照样品谱挑选路径。路径参数用右键一次设为 guess:N1、E1、R1、SIG1、N2、E2、R2、SIG2。这篇明确写所有参数都不固定,和示例一里“把 $S_0^2$ 固定为 0.87”不同。

截图上的实验数据名是 Fe_lepidocrocite.000,$R$ 空间在约 $1\text{–}3\ \mathrm{\AA}$ 有两个主峰。FEFF 路径图的图例是 O10.1、O7.1、O6.1、Fe1.1、Fe3.1、Fe1.2 等,没有在图上标注 $\mathrm{Fe_3O_4}$。正文中的 $\mathrm{Fe_3O_4}$ 与图中的纤铁矿(lepidocrocite)文件名是否为同一样品,原文没有说明,此处标为待核对。

模型算出的 O、Fe 散射路径在 R 空间的幅度

数据文件 Fe_lepidocrocite.000 的 R 空间谱和拟合窗口

教程说这一结果经过 19 次调整。它没有在正文里给出最终的 $N$、$R$ 和 $\sigma^2$,只保留了操作顺序:导入 Athena 数据,导入 CIF,计算并挑选路径,设置参数和拟合范围,然后重复,直到可以停止。

三种判据不要合成一条

曲线贴合只是必要条件。三份材料对“什么叫能用”的写法并不相同。

材料 R 因子 $S_0^2$ $\sigma^2$ $\Delta E_0$ Happiness
$\mathrm{Pt\text{-}O\text{-}Cu}$ 操作说明 小于 0.02 视为较好;0.02–0.05 表示模型略有差别或数据一般;0.05–0.1 表示偏差大或数据很差;大于 0.1 应更换模型 建议按箔样固定为 0.87 室温 $\mathrm{M\text{-}O} \ge 0.0025\ \mathrm{\AA}^2$;$\mathrm{M\text{-}S} \ge 0.003\ \mathrm{\AA}^2$;$\mathrm{M\text{-}M}$ 不小于对应 foil;同种配位的更远壳层应更大 宜在 $-10$ eV 到 $+10$ eV;不确定度往往很大,不用误差条本身做判据。同一样品各路径的 $\Delta E_0$ 应接近 文中展示 95.47/100,并继续改 $R$ 窗口
$\mathrm{PtO_2}$ 配位数说明 必须小于 0.02 必须为正;标样步骤把第一壳层配位数固定为 6 来反推 必须为正 未另给数值区间 必须等于 100,且结果窗口为淡绿色
参数合理性图 不要只因为小于 0.02 就判定成功 $0.7 < S_0^2 < 1.0$ $\sigma^2 > 0.003\ \mathrm{\AA}^2$ 绝对值小于 10 eV 先看曲线是否贴合、Happiness 是否较高,再看其余参数

同一张参数图用 $\mathrm{Cu}$ foil 的 $R$ 空间说明窗口范围:范围拉得过宽时,主峰以外的振荡会被算进拟合;把窗口收在主峰附近后,拟合曲线和数据在峰位重合得更好。图中的红叉标的是过宽的那一次。

$\mathrm{Cu}$ foil 的 $R$ 空间。上图拟合窗口偏宽,下图窗口收在主峰附近

另外两条和配位数有关、但容易被忽略:

  • 混合物相里,拟合配位数是各相的加权平均,不等于某一个格点周围的原子个数。
  • 同一样品里不同路径的 $\Delta E_0$ 应差不多;同一系列样品、同一种配位的 $\Delta E_0$ 也应接近。

$\mathrm{PtO_2}$ 那篇把 Happiness = 100 写成硬条件,软件日志却写着不要把 Happiness 报告到论文里。$\mathrm{Pt\text{-}O\text{-}Cu}$ 的日志在 95.47/100 时仍继续讨论 R 因子。参数图只要求 Happiness “较高”。引用时要写明是哪一种标准。

R 空间的峰不是结构本身

壳层拟合依赖对样品结构的大致判断,主观性很大。几条读谱限制可以和上面的拟合参数对着看。

傅里叶变换峰会向低 $R$ 方向移动。无序较大时,移动量是零点几 $\mathrm{\AA}$,并不等于原子间距变短。多数峰比真实键长短 $0.3\text{–}0.5\ \mathrm{\AA}$,壳层拟合给出的才是要报告的距离。这和 $\mathrm{PtO_2}$ 示例里“$R_{\mathrm{eff}}$ 比峰位长 $0.3\text{–}0.5\ \mathrm{\AA}$”相互一致。

强峰旁边的弱肩,以及 $R$ 小于 $1\ \mathrm{\AA}$ 的峰,可能来自噪声。峰面积与配位数正相关,只能定性比较配位数变化,不能代替拟合得到的 $N$。

10 nm $\mathrm{Cu}$ 纳米颗粒在 320 °C 测得的 $R$ 空间谱,与室温 $\mathrm{Cu}$ foil 对比

EXAFS 拟合给出的是样品的平均局域结构,不是一个确定的立体构型。图中举例:$\mathrm{Co\text{-}N}$ 配位数为 4,仍不能直接说成四面体,还要用其他方法核对。图中用第一性原理程序计算 XANES 来约束局部模型。幻灯片上的程序名写成了 FDNMNES,按常用写法改为 FDMNES(finite difference method for near-edge structure)。图中曲线标注为 $\mathrm{O_2\text{-}CoN_4C_{12}}$。

平均配位数不能直接换成构型:图中为 $\mathrm{O_2\text{-}CoN_4C_{12}}$ 的 XANES 与结构示意

$\mathrm{Fe}$ K 边的对比图把峰标成 $\mathrm{Fe\text{-}C}$、$\mathrm{Fe\text{-}P}$ 和 $\mathrm{Fe\text{-}Fe}$。图例中橙色为 $\mathrm{Pd_1Fe}$ SAA@PC,绿色为 $\mathrm{Fe_2O_3}$,黑色为 $\mathrm{Fe}$ foil。这些标注说明不同近邻会落在不同的 $R$ 位置,具体归属仍以原图为准。

$\mathrm{Fe}$ K 边 $R$ 空间:$\mathrm{Fe}$ foil、$\mathrm{Fe_2O_3}$ 与图例中的 $\mathrm{Pd_1Fe}$ SAA@PC

独立点数的原文需要核对

拟合参数的个数应少于独立点数。EXAFS 里常用

$$N_{\mathrm{idp}} = \frac{2\Delta k,\Delta R}{\pi}.$$

原文把这句话印成「待拟合参数大于独立点数」,公式前还多出一个 $R$,因此不采用那一句。Fit 1 日志里给出的独立点数是 9.9375,变量个数是 7。

拟合结束后先核对的几件事

  1. 数据和 CIF 是否为同一套样品。铁的示例里,正文写 $\mathrm{Fe_3O_4}$,图上的数据文件名是 Fe_lepidocrocite.000
  2. 路径的 $R_{\mathrm{eff}}$ 是否只比目标峰长大约 $0.3\text{–}0.5\ \mathrm{\AA}$,$R$ 窗口有没有把噪声峰包进去。
  3. $S_0^2$ 是固定、设为 1,还是用已知配位数的标样反推。三篇的做法不同。
  4. 日志里的 $R$ 是 $\Delta R$ 时,要加回该路径的 $R_{\mathrm{eff}}$,再和键长比较。
  5. R 因子、$\sigma^2$、$\Delta E_0$ 和 Happiness 用的是哪一套标准。$\mathrm{PtO_2}$ 正文要求 Happiness 为 100,其配图日志却是 92.19。
  6. 配位数是平均结果。由 N 直接推断构型,需要额外的 XANES 或结构信息。