AMSET 参数对照:边界散射与弛豫时间
用实际 GaAs 输出演示 MFP、CRT、SRT,检查压电和杂质参数的影响,解释输运窗口与 HDF5 填值。
阅读本篇目录
在四机制迁移率教程基础上,本篇展示三种简单模型和两组参数变化。下载同一个完整资料包,无需再次准备电子结构或新做 DFT。
1. 先找到各个目录#
cd amset-scattering
module load amset/0.5.1
ls cases
cat cases/all4-mfp100/settings.yaml
| 目录 | 与基准相比改变什么 |
|---|---|
all4-f5 |
ADP、IMP、PIE、POP 联合基准 |
all4-mfp100 |
再加入 100 nm 的 MFP 边界模型 |
crt-1e-14 |
单独使用 10 fs 恒定弛豫时间 |
srt-1e-14 |
单独使用随温度缩放的弛豫时间 |
pie2-all4 |
压电系数幅值加倍,其他参数保持 |
comp4-all4 |
补偿因子从默认2改为4 |
all4-f10、all4-f20 |
只提高插值密度 |
两组参数变化用于理解模型,不代表 GaAs 的实际材料参数发生了变化。相应目录都实际运行过,资料提供原始输入和绘图方法。
2. 加入边界散射#
在原有四机制设置中改为:
scattering_type: [ADP, IMP, PIE, POP, MFP]
mean_free_path: 100
长度单位为 nm。进入对应目录运行:
cd cases/all4-mfp100
amset run
tail -35 amset.log
cd ../..
边界模型按速度与长度形成散射率。当前 0.5.1 对低速先采用 max(|v|, 0.005原子单位速度),再除以长度;0.005 原子单位约为 10938.46 m/s。这个数值下限在带边等低速点会影响结果,因此不能把程序所有点的输出都直接称作无修正的 |v|/L。
3. CRT 与 SRT 怎样设置#
固定 10 fs:
scattering_type: [CRT]
constant_relaxation_time: 1.0e-14
以 300 K 的 10 fs 为基准,按温度缩放:
scattering_type: [SRT]
base_relaxation_time: 1.0e-14
本例 SRT 满足 τ(T)=τ300×300/T,所以 300 K 为 10 fs、600 K 为 5 fs。两者都属于简单弛豫时间模型,不等于显式计算了四种微观机制;参数的时间单位是秒。
cd cases/crt-1e-14
amset run
cd ../srt-1e-14
amset run
cd ../..

4. 怎样检查参数改动是否生效#
压电系数幅值从 0.16 改为 0.32 C/m²,PIE 矩阵元的平方使该散射率变为四倍,本例其他三种散射率保持不变。
杂质补偿因子从2改为4时,保持目标载流子浓度和杂质电荷不变,电离杂质数量加倍,对应 IMP 散射率加倍。不要把“补偿因子”误当成目标电子浓度本身。
cat cases/pie2-all4/settings.yaml
cat cases/comp4-all4/settings.yaml
python analyze.py
cat analysis/SUMMARY.json
脚本逐态检查这些变化,并把迁移率提取到 CSV。实际总迁移率对比如下:
| 条件 | 300 K / cm²·V⁻¹·s⁻¹ | 600 K / cm²·V⁻¹·s⁻¹ |
|---|---|---|
| 四机制联合 | 9488.31 | 4263.97 |
| 再加100 nm边界 | 3724.02 | 2255.76 |
| CRT 10 fs | 646.77 | 521.90 |
| SRT基准10 fs | 646.77 | 260.95 |
| 压电系数幅值加倍 | 9310.05 | 4181.70 |
| 补偿因子加倍 | 7142.52 | 3489.19 |
5. HDF5 的哪些点能当作实际散射率#
mesh*.h5 中的 fd_cutoffs 给出输运能量窗口。当前版本对窗口外的点采用窗口内全网格散射率的对数平均填值;这里还涉及不可约点的多重性权重。这个填值用于数值处理,不是每个窗口外高能态都重新计算得到的物理散射率。
查看实际字段:
python - <<'PY'
import glob, h5py
name = glob.glob('cases/all4-f5/mesh*.h5')[0]
with h5py.File(name) as data:
print('机制:', data['scattering_labels'][()])
print('能量窗口/eV:', data['fd_cutoffs'][()])
print('温度/K:', data['temperatures'][()])
PY
本包 analyze.py 的能量散点图只取窗口内计算点;边界模型的单位核对也先在窗口内进行,再单独重建窗口外填值。这样可以避免把填值平台当作真实散射趋势。
6. 保留输入与输出条件再比较#
比较不同机制、边界长度或参数时,保持电子结构、插值网格、温度和浓度一致。先看 settings.yaml,再看 transport*.json 和实际网格文件名,最后画图:
head -10 analysis/mobilities.csv
bash plot-native.sh
ls native-plots
本例的三档网格仍未显示所有分项收敛,不把参数作用对照当作收敛的材料结论。设置单位与原生选项见 AMSET 官方设置说明。