在纳米尺度仿真软件中,输运性质计算是研究材料和器件中电荷和热能输运的重要工具。Quantum Espresso 提供了多种方法来计算输运性质,包括使用非平衡格林函数(NEGF)和传输矩阵方法(TMM)。本节将详细介绍如何使用 Quantum Espresso 及其相关模块进行输运性质的计算,包括设置计算参数、运行模拟以及分析结果。
非平衡格林函数(NEGF)方法是一种在非平衡态下计算输运性质的量子力学方法。NEGF 方法基于格林函数理论,可以处理电子在不同电极之间的非平衡输运过程。该方法适用于准一维纳米结构,如纳米线、分子结等。NEGF 方法的核心是计算系统的电子格林函数,进而得到电流-电压特性(I-V曲线)和其他输运性质。
在 Quantum Espresso 中,使用 NEGF 方法需要设置一些关键参数。这些参数通常在输入文件中指定,例如 pw.x
和 pp.x
的输入文件。以下是一些常见的参数设置:
k-points: 用于定义 Brillouin 区中的积分路径。
electrode: 指定电极的结构和性质。
lead: 指定引线的结构和性质。
bias: 指定偏压范围。
energy_window: 指定能量窗口,用于计算格林函数。
运行 NEGF 模拟通常需要多个步骤,包括结构优化、自洽场计算(SCF)和输运性质计算。以下是一个完整的示例流程,包括输入文件和命令行操作。
首先,需要对纳米结构进行结构优化,以确保系统处于最低能量状态。
输入文件示例 (scf.in
):
&control
calculation = 'scf'
restart_mode = 'from_scratch'
prefix = 'nano_structure'
pseudo_dir = './pseudo/'
outdir = './out/'
/
&system
ibrav = 1
celldm(1) = 10.0
nat = 4
ntyp = 2
ecutwfc = 50
ecutrho = 200
/
&electrons
mixing_beta = 0.7
/
ATOMIC_SPECIES
Si 28.0855 Si.pbe-n-kjpaw_psl.1.0.0.UPF
H 1.00794 H.pbe-kjpaw_psl.1.0.0.UPF
ATOMIC_POSITIONS (alat)
Si 0.0 0.0 0.0
Si 0.5 0.5 0.5
H 0.5 0.5 0.0
H 0.0 0.0 0.5
K_POINTS (automatic)
4 4 4 0 0 0
运行命令:
mpirun -np 4 pw.x -in scf.in > scf.out
接下来,使用 NEGF 模块进行输运性质计算。假设我们已经优化了结构并获得了自洽波函数。
输入文件示例 (transport.in
):
&control
calculation = 'transport'
restart_mode = 'from_scratch'
prefix = 'nano_structure'
pseudo_dir = './pseudo/'
outdir = './out/'
/
&system
ibrav = 1
celldm(1) = 10.0
nat = 4
ntyp = 2
ecutwfc = 50
ecutrho = 200
nelec = 8
nspin = 2
t_rev = .true.
/
&electrons
mixing_beta = 0.7
/
&transport
k_points = 100
bias = (0.0, 0.5, 1.0)
energy_window = (0.0, 10.0)
/
ATOMIC_SPECIES
Si 28.0855 Si.pbe-n-kjpaw_psl.1.0.0.UPF
H 1.00794 H.pbe-kjpaw_psl.1.0.0.UPF
ATOMIC_POSITIONS (alat)
Si 0.0 0.0 0.0
Si 0.5 0.5 0.5
H 0.5 0.5 0.0
H 0.0 0.0 0.5
K_POINTS (automatic)
4 4 4 0 0 0
运行命令:
mpirun -np 4 tp.x -in transport.in > transport.out
传输矩阵方法(TMM)是一种基于散射理论的输运性质计算方法。TMM 通过计算电子在系统中的散射矩阵(S矩阵),进而得到传输矩阵(T矩阵),最终计算出输运性质。该方法适用于一维和准一维系统,如纳米线、分子结等。
在 Quantum Espresso 中,使用 TMM 方法需要设置一些关键参数。这些参数通常在输入文件中指定,例如 pw.x
和 pp.x
的输入文件。以下是一些常见的参数设置:
k-points: 用于定义 Brillouin 区中的积分路径。
electrode: 指定电极的结构和性质。
lead: 指定引线的结构和性质。
bias: 指定偏压范围。
energy_window: 指定能量窗口,用于计算传输矩阵。
运行 TMM 模拟通常需要多个步骤,包括结构优化、自洽场计算(SCF)和输运性质计算。以下是一个完整的示例流程,包括输入文件和命令行操作。
首先,需要对纳米结构进行结构优化,以确保系统处于最低能量状态。
输入文件示例 (scf.in
):
&control
calculation = 'scf'
restart_mode = 'from_scratch'
prefix = 'nano_structure'
pseudo_dir = './pseudo/'
outdir = './out/'
/
&system
ibrav = 1
celldm(1) = 10.0
nat = 4
ntyp = 2
ecutwfc = 50
ecutrho = 200
/
&electrons
mixing_beta = 0.7
/
ATOMIC_SPECIES
Si 28.0855 Si.pbe-n-kjpaw_psl.1.0.0.UPF
H 1.00794 H.pbe-kjpaw_psl.1.0.0.UPF
ATOMIC_POSITIONS (alat)
Si 0.0 0.0 0.0
Si 0.5 0.5 0.5
H 0.5 0.5 0.0
H 0.0 0.0 0.5
K_POINTS (automatic)
4 4 4 0 0 0
运行命令:
mpirun -np 4 pw.x -in scf.in > scf.out
接下来,使用 TMM 模块进行输运性质计算。假设我们已经优化了结构并获得了自洽波函数。
输入文件示例 (tmm.in
):
&control
calculation = 'tmm'
restart_mode = 'from_scratch'
prefix = 'nano_structure'
pseudo_dir = './pseudo/'
outdir = './out/'
/
&system
ibrav = 1
celldm(1) = 10.0
nat = 4
ntyp = 2
ecutwfc = 50
ecutrho = 200
nelec = 8
nspin = 2
t_rev = .true.
/
&electrons
mixing_beta = 0.7
/
&tmm
k_points = 100
bias = (0.0, 0.5, 1.0)
energy_window = (0.0, 10.0)
/
ATOMIC_SPECIES
Si 28.0855 Si.pbe-n-kjpaw_psl.1.0.0.UPF
H 1.00794 H.pbe-kjpaw_psl.1.0.0.UPF
ATOMIC_POSITIONS (alat)
Si 0.0 0.0 0.0
Si 0.5 0.5 0.5
H 0.5 0.5 0.0
H 0.0 0.0 0.5
K_POINTS (automatic)
4 4 4 0 0 0
运行命令:
mpirun -np 4 tmm.x -in tmm.in > tmm.out
输运性质计算的结果通常包括电流-电压特性(I-V曲线)、传输系数、态密度等。以下是一些常用的结果分析方法和工具。
电流-电压特性(I-V曲线)是描述纳米器件输运性质的重要参数。NEGF 和 TMM 方法都可以计算 I-V 曲线。结果通常保存在输出文件中,例如 transport.out
或 tmm.out
。
分析命令示例:
# 提取 I-V 曲线数据
grep -A 10 'I-V curve' transport.out > iv_curve.dat
# 使用 gnuplot 绘制 I-V 曲线
gnuplot
gnuplot 脚本示例 (iv_curve.gnu
):
# 设置图形标题
set title "I-V Curve of Nano Structure"
# 设置 x 轴标签
set xlabel "Bias Voltage (V)"
# 设置 y 轴标签
set ylabel "Current (A)"
# 设置数据文件分隔符
set datafile separator " "
# 绘制 I-V 曲线
plot "iv_curve.dat" u 1:2 w l
运行 gnuplot 脚本:
gnuplot iv_curve.gnu
传输系数(Transmission Coefficient)描述了电子在系统中的传输概率。结果通常保存在输出文件中,例如 transport.out
或 tmm.out
。
分析命令示例:
# 提取传输系数数据
grep -A 100 'Transmission Coefficient' transport.out > transmission.dat
# 使用 gnuplot 绘制传输系数
gnuplot
gnuplot 脚本示例 (transmission.gnu
):
# 设置图形标题
set title "Transmission Coefficient of Nano Structure"
# 设置 x 轴标签
set xlabel "Energy (eV)"
# 设置 y 轴标签
set ylabel "Transmission Coefficient"
# 设置数据文件分隔符
set datafile separator " "
# 绘制传输系数
plot "transmission.dat" u 1:2 w l
运行 gnuplot 脚本:
gnuplot transmission.gnu
态密度(Density of States, DOS)是描述系统能级分布的重要参数。结果通常保存在输出文件中,例如 scf.out
。
分析命令示例:
# 提取态密度数据
grep -A 100 'DOS' scf.out > dos.dat
# 使用 gnuplot 绘制态密度
gnuplot
gnuplot 脚本示例 (dos.gnu
):
# 设置图形标题
set title "Density of States of Nano Structure"
# 设置 x 轴标签
set xlabel "Energy (eV)"
# 设置 y 轴标签
set ylabel "DOS (states/eV)"
# 设置数据文件分隔符
set datafile separator " "
# 绘制态密度
plot "dos.dat" u 1:2 w l
运行 gnuplot 脚本:
gnuplot dos.gnu
多级系统输运性质计算是研究复杂纳米器件的重要手段。例如,可以研究包含多个纳米结构的复合器件的输运性质。
输入文件示例 (multi_level_transport.in
):
&control
calculation = 'transport'
restart_mode = 'from_scratch'
prefix = 'multi_level_structure'
pseudo_dir = './pseudo/'
outdir = './out/'
/
&system
ibrav = 1
celldm(1) = 10.0
nat = 8
ntyp = 2
ecutwfc = 50
ecutrho = 200
nelec = 16
nspin = 2
t_rev = .true.
/
&electrons
mixing_beta = 0.7
/
&transport
k_points = 100
bias = (0.0, 0.5, 1.0)
energy_window = (0.0, 10.0)
/
ATOMIC_SPECIES
Si 28.0855 Si.pbe-n-kjpaw_psl.1.0.0.UPF
H 1.00794 H.pbe-kjpaw_psl.1.0.0.UPF
ATOMIC_POSITIONS (alat)
Si 0.0 0.0 0.0
Si 0.5 0.5 0.5
H 0.5 0.5 0.0
H 0.0 0.0 0.5
Si 1.0 1.0 1.0
Si 1.5 1.5 1.5
H 1.5 1.5 1.0
H 1.0 1.0 1.5
K_POINTS (automatic)
4 4 4 0 0 0
运行命令:
mpirun -np 4 tp.x -in multi_level_transport.in > multi_level_transport.out
温度依赖输运性质计算是研究纳米器件在不同温度下的输运行为的重要工具。可以通过设置不同的温度参数来计算输运性质。
输入文件示例 (temperature_dependent_transport.in
):
&control
calculation = 'transport'
restart_mode = 'from_scratch'
prefix = 'temperature_structure'
pseudo_dir = './pseudo/'
outdir = './out/'
/
&system
ibrav = 1
celldm(1) = 10.0
nat = 4
ntyp = 2
ecutwfc = 50
ecutrho = 200
nelec = 8
nspin = 2
t_rev = .true.
/
&electrons
mixing_beta = 0.7
/
&transport
k_points = 100
bias = (0.0, 0.5, 1.0)
energy_window = (0.0, 10.0)
temperature = (300.0, 500.0, 700.0)
/
ATOMIC_SPECIES
Si 28.0855 Si.pbe-n-kjpaw_psl.1.0.0.UPF
H 1.00794 H.pbe-kjpaw_psl.1.0.0.UPF
ATOMIC_POSITIONS (alat)
Si 0.0 0.0 0.0
Si 0.5 0.5 0.5
H 0.5 0.5 0.0
H 0.0 0.0 0.5
K_POINTS (automatic)
4 4 4 0 0 0
运行命令:
mpirun -np 4 tp.x -in temperature_dependent_transport.in > temperature_dependent_transport.out
纳米线是一种典型的准一维纳米结构,其输运性质可以通过 NEGF 和 TMM 方法进行计算。以下是一个关于纳米线输运性质的完整实例。
在进行输运性质计算之前,首先需要对纳米线的结构进行优化,以确保系统处于最低能量状态。结构优化可以通过自洽场计算(SCF)来实现。
输入文件示例 (nano_wire_scf.in
):
&control
calculation = 'scf'
restart_mode = 'from_scratch'
prefix = 'nano_wire'
pseudo_dir = './pseudo/'
outdir = './out/'
/
&system
ibrav = 1
celldm(1) = 10.0
nat = 4
ntyp = 2
ecutwfc = 50
ecutrho = 200
/
&electrons
mixing_beta = 0.7
/
ATOMIC_SPECIES
Si 28.0855 Si.pbe-n-kjpaw_psl.1.0.0.UPF
H 1.00794 H.pbe-kjpaw_psl.1.0.0.UPF
ATOMIC_POSITIONS (alat)
Si 0.0 0.0 0.0
Si 0.5 0.5 0.5
H 0.5 0.5 0.0
H 0.0 0.0 0.5
K_POINTS (automatic)
4 4 4 0 0 0
运行命令:
mpirun -np 4 pw.x -in nano_wire_scf.in > nano_wire_scf.out
接下来,使用 NEGF 模块进行输运性质计算。假设我们已经优化了结构并获得了自洽波函数。
输入文件示例 (nano_wire_transport.in
):
&control
calculation = 'transport'
restart_mode = 'from_scratch'
prefix = 'nano_wire'
pseudo_dir = './pseudo/'
outdir = './out/'
/
&system
ibrav = 1
celldm(1) = 10.0
nat = 4
ntyp = 2
ecutwfc = 50
ecutrho = 200
nelec = 8
nspin = 2
t_rev = .true.
/
&electrons
mixing_beta = 0.7
/
&transport
k_points = 100
bias = (0.0, 0.5, 1.0)
energy_window = (0.0, 10.0)
/
ATOMIC_SPECIES
Si 28.0855 Si.pbe-n-kjpaw_psl.1.0.0.UPF
H 1.00794 H.pbe-kjpaw_psl.1.0.0.UPF
ATOMIC_POSITIONS (alat)
Si 0.0 0.0 0.0
Si 0.5 0.5 0.5
H 0.5 0.5 0.0
H 0.0 0.0 0.5
K_POINTS (automatic)
4 4 4 0 0 0
运行命令:
mpirun -np 4 tp.x -in nano_wire_transport.in > nano_wire_transport.out
计算完成后,需要对结果进行分析,提取重要的输运性质数据,如电流-电压特性(I-V曲线)和传输系数。
分析命令示例:
# 提取 I-V 曲线数据
grep -A 10 'I-V curve' nano_wire_transport.out > nano_wire_iv_curve.dat
# 使用 gnuplot 绘制 I-V 曲线
gnuplot
gnuplot 脚本示例 (nano_wire_iv_curve.gnu
):
# 设置图形标题
set title "I-V Curve of Nano Wire"
# 设置 x 轴标签
set xlabel "Bias Voltage (V)"
# 设置 y 轴标签
set ylabel "Current (A)"
# 设置数据文件分隔符
set datafile separator " "
# 绘制 I-V 曲线
plot "nano_wire_iv_curve.dat" u 1:2 w l
运行 gnuplot 脚本:
gnuplot nano_wire_iv_curve.gnu
分析命令示例:
# 提取传输系数数据
grep -A 100 'Transmission Coefficient' nano_wire_transport.out > nano_wire_transmission.dat
# 使用 gnuplot 绘制传输系数
gnuplot
gnuplot 脚本示例 (nano_wire_transmission.gnu
):
# 设置图形标题
set title "Transmission Coefficient of Nano Wire"
# 设置 x 轴标签
set xlabel "Energy (eV)"
# 设置 y 轴标签
set ylabel "Transmission Coefficient"
# 设置数据文件分隔符
set datafile separator " "
# 绘制传输系数
plot "nano_wire_transmission.dat" u 1:2 w l
运行 gnuplot 脚本:
gnuplot nano_wire_transmission.gnu
通过以上步骤,我们可以使用 Quantum Espresso 及其相关模块进行纳米尺度材料和器件的输运性质计算。NEGF 和 TMM 方法各有其优势和适用范围,可以根据具体的研究需求选择合适的方法。结构优化、自洽场计算和输运性质计算是整个流程的关键步骤,而结果分析则帮助我们更好地理解纳米器件的性能和行为。通过这些计算和分析,可以为纳米电子学和纳米热学的研究提供重要的理论基础和实验指导。
Datta, S. (1995). Electronic Transport in Mesoscopic Systems. Cambridge University Press.
Di Carlo, A., & Selloni, A. (2008). Non-equilibrium Green’s function approach to electron transport in nanoscale systems. Journal of Physics: Condensed Matter, 20(33), 333201.
Brandbyge, M., Mozos, J. L., Ordejón, P., Taylor, J., & Stokbro, K. (2002). Methodology for ab initio transport calculations in molecular and nanoscale systems. Journal of Physics: Condensed Matter, 14(11), 2711.
结构优化:
mpirun -np 4 pw.x -in scf.in > scf.out
输运性质计算(NEGF):
mpirun -np 4 tp.x -in transport.in > transport.out
输运性质计算(TMM):
mpirun -np 4 tmm.x -in tmm.in > tmm.out
结果分析(提取 I-V 曲线数据):
grep -A 10 'I-V curve' transport.out > iv_curve.dat
结果分析(提取传输系数数据):
grep -A 100 'Transmission Coefficient' transport.out > transmission.dat
结果分析(提取态密度数据):
grep -A 100 'DOS' scf.out > dos.dat
使用 gnuplot 绘制图形:
gnuplot iv_curve.gnu
gnuplot transmission.gnu
gnuplot dos.gnu
k-points: 用于定义 Brillouin 区中的积分路径,通常设置为自动模式。
electrode: 指定电极的结构和性质,包括电极的材料、晶格常数等。
lead: 指定引线的结构和性质,包括引线的材料、晶格常数等。
bias: 指定偏压范围,通常以列表形式给出多个偏压值。
energy_window: 指定能量窗口,用于计算格林函数或传输矩阵。
通过这些详细的步骤和参数设置,研究者可以高效地进行纳米尺度材料和器件的输运性质计算,从而推动纳米科技的发展。