QE:电极与散射区建模
用Al线和5Al+H模型准备两组实际SCF,给出完整输入与个人工具构建步骤。
阅读本篇目录
下载完整输入、实际SCF与输运数据、个人PWCOND构建文件和绘图脚本,保存为 example.zip:
python3 -m zipfile -e example.zip .
cd qe-pwcond-wire
module load ase/3.29.0 qe/7.6-8173m
bash read.sh
bash plot.sh
本例在鸢算科技集群使用 QE 7.6,Intel oneAPI 2024.2、Intel MPI 2021.13、MKL CPU 环境。沿用官方 Al 单原子线及 5Al+H 散射区模型:PZ 规范守恒赝势、25/150 Ry 截断能、非磁、固定结构。电子网格为电极 1×1×12、散射区 1×1×4,输运只取横向 Γ 点和九个能量点,用于先掌握完整流程;没有完成几何、真空层、截断能、k 网格或能量采样收敛。
1. 电极和散射区分别做什么#
输运沿 z 方向。电极单胞有 1 个 Al,重复长度 4.5 Bohr≈2.3813 Å;散射区有 5 个 Al 和 1 个侧向 H,z 方向长度为五个电极周期。横向晶胞均为 12×12 Bohr²,电极与散射区横截面相同。

图中浅色原子表示周期复制。该结构用于讲解接触、开放通道与散射,不是已优化的实验纳米器件。
2. 准备赝势与个人计算工具#
python3 setup-pseudo.py
cat pseudopotentials.json
bash build-tools.sh
ls build/pwcond-cachefix.x
下载器按官方网址获取 Al.pz-vbc.UPF 和 H.pz-vbc.UPF 并核对 SHA256。资料包不分发赝势与二进制。
本例使用随包源码构建的个人 PWCOND:在切换不同元素或不同体积的电极/散射区时,重新初始化局域势和投影子插值表。构建使用现有 QE 7.6 CPU 库,文件放在自己的 build 目录;后续计算调用此程序。pw.x 仍使用当前环境中的程序。无需修改公共软件或个人登录配置。
3. 电极完整输入#
inputs/lead.scf.in:
&control
calculation='scf', restart_mode='from_scratch',
pseudo_dir='../pseudo',outdir='./tmp',prefix='alw',
verbosity='high',tprnfor=.true.
/
&system
ibrav=6,celldm(1)=12.0,celldm(3)=.375,
nat=1,ntyp=1,nspin=1,
ecutwfc=25,ecutrho=150,nbnd=6,
occupations='smearing',smearing='mv',degauss=0.01
/
&electrons
conv_thr=1d-8,mixing_beta=0.4,electron_maxstep=150
/
ATOMIC_SPECIES
Al 26.98 Al.pz-vbc.UPF
ATOMIC_POSITIONS alat
Al 0 0 0
K_POINTS automatic
1 1 12 0 0 0
celldm(1)=12 是横向尺度,celldm(3)=0.375 给出 z 方向长度比值,所以电极周期是 12×0.375=4.5 Bohr。不能把 12 Bohr 直接当作沿线的电极周期。
4. 散射区完整输入#
inputs/sample.scf.in:
&control
calculation='scf', restart_mode='from_scratch',
pseudo_dir='../pseudo',outdir='./tmp',prefix='alh',
verbosity='high',tprnfor=.true.
/
&system
ibrav=6,celldm(1)=12.0,celldm(3)=1.875,
nat=6,ntyp=2,nspin=1,
ecutwfc=25,ecutrho=150,nbnd=12,
occupations='smearing',smearing='mv',degauss=0.01
/
&electrons
conv_thr=1d-8,mixing_beta=0.4,electron_maxstep=150
/
ATOMIC_SPECIES
Al 26.98 Al.pz-vbc.UPF
H 1.0 H.pz-vbc.UPF
ATOMIC_POSITIONS alat
Al 0 0 0
Al 0 0 0.375
Al -0.02779870 0 0.75537515
H 0.19269012 0 0.9375
Al -0.02779870 0 1.11962485
Al 0 0 1.5
K_POINTS automatic
1 1 4 0 0 0
ATOMIC_POSITIONS alat 的坐标单位是 celldm(1),不是各自晶轴长度。例如最后一个 Al 的 z=1.5 表示 18 Bohr。H 位于中间并偏离主链。
5. 提交完整工作流#
bash submit.sh
squeue -u "$USER"
模板申请 cpu-8173m 的 56 核整节点,本例实际使用 1 MPI、1 线程;脚本按电极 SCF、散射区 SCF、复能带、理想链透射、含 H 透射依次执行。
也可以在已分配的 CPU 资源里手动完成两组 SCF:
mkdir -p manual/pseudo manual/work
cp pseudo/*.UPF manual/pseudo/
cd manual/work
pw.x < ../../inputs/lead.scf.in > lead.out
pw.x < ../../inputs/sample.scf.in > sample.out
grep 'convergence has been achieved' lead.out sample.out
ls tmp/alw.save tmp/alh.save
cd ../..
保留两个 save 目录和关联文件。输运程序需要自洽势数据,不能只拿 lead.out/sample.out 文本继续。下一篇比较透射;复能带与衰减解。