Critic2 STM:先生成真实LDOS
从实际QE表面计算开始,按赝势、SCF、NSCF和偏压能窗顺序准备STM输入。
阅读本篇目录
下载STM完整操作包,解压后进入包目录。包含本集群实际计算的AlAs(110)结构、QE输入与结果、LDOS、8个Critic2条件和5张真实图。原始14原子模型来自官方教学例,已实际重新计算;它采用14Ry教学截断,不是收敛表面研究。
1. STM需要什么密度#
这里采用Tersoff–Hamann近似:一定偏压窗口内的局域态密度与隧穿信号相关。先算电子结构,再提取这个窗口的LDOS,最后画恒高或恒流图。不能直接拿总电子密度CHGCAR或任意正数网格当作相同物理含义的STM输入。

实际14原子AlAs(110)固定几何与有限偏压LDOS的平面平均;没有在本组重新做结构优化。
配套数据由QE7.6实际完成:B86BPBE/PAW、14Ry波函数截断,SCF6×2×1 k网格,NSCF12×4×1,34条能带。截断14Ry沿用官方小例子以跑通流程,电子收敛阈值不等于平面波截断已经收敛。
2. 最短的操作路线#
只想学习Critic2时,直接使用包内已经得到的 data/ldos.cube,进入恒高与恒流图。需要从QE完整重算时,在新目录执行 bash run-all.sh 即可。
下面把同一套上游命令展开,便于换成自己的结构。先在新工作目录放入输入文件:
mkdir my-qe
cp inputs/qe/* my-qe/
cd my-qe
module purge
module load qe/7.6-8173m
export OMP_NUM_THREADS=4
export MKL_NUM_THREADS=1
以下五个程序调用均已在本示例实际执行,不能跳过SCF而直接对空目录做NSCF/PP。
3. 先生成Al与As的PAW文件#
ld1.x -in al.in > al.out
ld1.x -in as.in > as.out
ls al.UPF as.UPF
Al输入:
&input
title='Al',
zed=13.0,
rel=1,
config='[Ne] 3s2 3p1 3d-2.0 4f-2.0',
iswitch=3,
dft='B86BPBE'
/
&inputp
lpaw=.true.,
pseudotype=3,
file_pseudopw='al.UPF',
author='ADC',
lloc=2,
which_augfun='PSQ',
rmatch_augfun=1.8,
nlcc=.true.,
tm=.true.
/
5
3S 1 0 2.00 0.00 2.00 2.10 0.0
3S 1 0 0.00 6.00 1.40 2.10 0.0
3P 2 1 1.00 0.00 2.00 2.10 0.0
3P 2 1 0.00 6.00 1.40 2.10 0.0
3D 3 2 -2.00 -0.30 1.90 1.90 0.0
As输入:
&input
title='As',
zed=33.,
rel=1,
config='[Ar] 3d10.0 4s2.0 4p3.0 4d-2.0',
iswitch=3,
dft='B86BPBE'
/
&inputp
lpaw=.true.,
pseudotype=3,
file_pseudopw='as.UPF',
author='ADC',
lloc=2,
which_augfun ='PSQ',
rmatch_augfun= 1.6,
nlcc=.true.,
new_core_ps=.true.,
rcore=1.6,
tm=.true.
/
5
4S 1 0 2.00 0.00 1.70 1.80 0.0
4S 1 0 0.00 0.40 1.70 1.80 0.0
4P 2 1 3.00 0.00 1.90 2.00 0.0
4P 2 1 0.00 0.40 1.90 2.00 0.0
4D 3 2 -2.00 0.50 2.00 2.00 0.0
分别生成价电子数3和5的PAW赝势,与后续B86BPBE计算一致。这里只复现官方教学赝势生成输入,不表示一份自建赝势已经适合所有压力、键合环境或高精度性质。ld1.x关注原子测试结束与正确生成的UPF;pw.x和pp.x则应看到 JOB DONE。
4. 固定表面几何做SCF#
pw.x -in alas110re.scf.in > scf.out
grep -n 'convergence\|total energy\|JOB DONE' scf.out
&control
calculation = 'scf'
restart_mode='from_scratch',
title='AlAs 110 surface slab, relaxed (central plane fixed)'
pseudo_dir = '.',
outdir='.',
prefix='AlAs110'
/
&system
ibrav=8,
celldm(1)=7.424621202,
celldm(2)=1.414213576,
celldm(3)=6.00000,
nat=14,
ntyp=2,
ecutwfc=14.0,
/
&electrons
mixing_mode='plain',
mixing_beta=0.7,
conv_thr=1.0d-6,
/
ATOMIC_SPECIES
Al 26.98 al.UPF
As 74.92 as.UPF
ATOMIC_POSITIONS
As 0.000000000 -0.044777195 -0.058158722
Al 0.500000000 0.251460333 0.113525468
As 0.500000000 0.712279009 0.504183885
Al 0.000000000 1.067633546 0.480460620
As 0.000000000 -0.003937059 0.995826731
Al 0.500000000 0.351400965 1.004220212
As 0.000000000 -0.003937059 2.004173269
Al 0.500000000 0.351400965 1.995779788
As 0.500000000 0.712279009 2.495816115
Al 0.000000000 1.067633546 2.519539380
As 0.000000000 -0.044777195 3.058158722
Al 0.500000000 0.251460333 2.886474532
As 0.500000000 0.707106800 1.500000000
Al 0.000000000 1.060660200 1.500000000
K_POINTS automatic
6 2 1 0 0 0
conv_thr=1e-6单位为Ry。原子位置采用输入默认的alat单位,不能把上面的坐标当作Å;更换自己的体系时,建议明确写出坐标单位并与数值对应。本例电子数56,实际SCF总能为−1516.18623291Ry,最后估计电子收敛误差约4×10⁻⁸Ry;这不构成截断或表面模型的收敛证明。
5. 在同一个目录继续NSCF#
pw.x -in alas110re.nscf.in > nscf.out
grep -n 'Fermi energy\|JOB DONE' nscf.out
&control
calculation = 'nscf'
restart_mode='from_scratch',
title='AlAs 110 surface slab, relaxed (central plane fixed)'
pseudo_dir = '.',
outdir='.',
prefix='AlAs110'
/
&system
ibrav=8,
celldm(1)=7.424621202,
celldm(2)=1.414213576,
celldm(3)=6.00000,
nat=14,
ntyp=2,
ecutwfc=14.0,
occupations='smearing',
smearing='gaussian',
degauss=0.01,
nbnd=34,
/
&electrons
mixing_mode='plain',
mixing_beta=0.7,
conv_thr=1.0d-6,
/
ATOMIC_SPECIES
Al 26.98 al.UPF
As 74.92 as.UPF
ATOMIC_POSITIONS
As 0.000000000 -0.044777195 -0.058158722
Al 0.500000000 0.251460333 0.113525468
As 0.500000000 0.712279009 0.504183885
Al 0.000000000 1.067633546 0.480460620
As 0.000000000 -0.003937059 0.995826731
Al 0.500000000 0.351400965 1.004220212
As 0.000000000 -0.003937059 2.004173269
Al 0.500000000 0.351400965 1.995779788
As 0.500000000 0.712279009 2.495816115
Al 0.000000000 1.067633546 2.519539380
As 0.000000000 -0.044777195 3.058158722
Al 0.500000000 0.251460333 2.886474532
As 0.500000000 0.707106800 1.500000000
Al 0.000000000 1.060660200 1.500000000
K_POINTS automatic
12 4 1 0 0 0
prefix与 outdir保持一致,继续使用刚得到的 AlAs110.save。这里增加能带数、采用高斯展宽并加密k网格,实际得到21个不可约k点。它不是一条高对称能带路径。
6. 提取偏压窗口LDOS#
pp.x -in alas110re.stm.in > ldos.out
grep -n 'plot_num\|Sample bias\|JOB DONE' ldos.out
head -n 8 ldos.cube
&inputpp
prefix ='AlAs110'
outdir='.',
sample_bias=-0.0735d0,
plot_num=5,
/
&plot
iflag=3
output_format=6
fileout='ldos.cube'
/
plot_num=5用于该STM能窗密度,sample_bias=-0.0735Ry对应费米能级以下约1eV,实际约−1.000018eV。output_format=6写CUBE;同一文件包含结构与标量网格,可交给Critic2。

从实际NSCF XML读取的能级与所取偏压窗口,横轴是不可约k点编号,不是高对称路径。
本例CUBE网格18×25×108,场积分约4.25916;这是有限能窗LDOS,不应要求它等于整个体系的56个价电子。后续操作见恒高与恒流图。
复现表格与图片#
先从已有结果提取:
bash analyze.sh
ls analysis-reference
ls figures-reference
它读取已有的实际结果,不重新算QE。在另一份新解压目录完整重做时:
bash list.sh
bash run-all.sh
ls qe-work runtime-data work analysis figures
顺序为2个原子PAW生成 → 表面SCF → NSCF → 偏压能窗LDOS → 8个Critic2条件 → 数据提取 → 5张图。结果目录已存在时使用新解压目录;只运行一个编号后,不要对不完整的 work/ 调用整包分析。
QE采用 qe/7.6-8173m CPU构建:oneAPI2024.2的icx/mpiifx、IntelMPI/MKL与OpenMP;本示例1个MPI进程、4个OpenMP线程,MKL单线程。Critic2为 critic2/1.4,内部版本1.4.155,GCC/GFortran13.3、双精度/OpenMP;脚本分别加载模块,避免混用MPI。辅助绘图使用已有NumPy、SciPy和Matplotlib环境。
重算使用账户已分配的CPU资源,包内 run.slurm 遵守CPU分区整节点56核申请规则,程序实际使用上述线程设置;可用 sbatch run.slurm 提交。队列暂不能分配时,先使用已有结果重建表格和图,不把管理/登录节点当作普通生产队列。
返回Critic2专题,QE基础见QE第一次计算。来源:官方STM例子及原始输入、固定Critic2源码、官方命令手册。原始模型参数与实际运行参数一致;图像用于操作参考,正式研究需另外检查赝势、截断、k网格、薄膜厚度和真空。