Transport Calculations
This section covers the calculation and analysis of quantum transport properties, including transmission functions, current-voltage characteristics, and spin-dependent transport.
Transmission Function
Theory
The transmission function \(T(E)\) gives the probability of electron transmission at energy E:
where \(\Gamma_{1,2}\) are the contact broadening matrices.
Implementation
Basic transmission calculation:
from gauNEGF.transport import cohTrans
import numpy as np
# Energy grid
E = np.linspace(-5, 5, 1000)
# Calculate transmission
F_eV = negf.F*27.211386 #Convert from hartrees to eV
T = cohTrans(E, F_eV, negf.S, sig1, sig2)
Current Calculations
Landauer Formula
The current is calculated using the Landauer formula:
where \(f_{1,2}(E)\) are the Fermi functions for the contacts.
Implementation
Current calculation at finite bias:
from gauNEGF.transport import quickCurrent
# Calculate current
F_eV = negf.F*27.211386 #Convert from hartrees to eV
I = quickCurrent(
F_eV, negf.S,
sig1, sig2,
fermi=negf.fermi,
qV=0.1
)
IV Characteristics
Generate current-voltage curves:
# Voltage range
V = np.arange(0, 0.5, 0.1)
# Calculate IV curve
I = []
for v in V:
negf.setVoltage(v)
negf.SCF()
F_eV = negf.F*27.211386 #Convert from hartrees to eV
I.append(quickCurrent(
F_eV, negf.S,
sig1, sig2,
fermi=negf.fermi,
qV=v
))
Spin-Dependent Transport
Theory
Spin-dependent transport calculations account for the spin-selective transmission of electrons through molecular systems. This is particularly important for chiral molecules exhibiting the chiral-induced spin selectivity (CISS) effect [Zoellner2020].
The spin-orbit coupling effects are included using an on-site approximation [Fernandez2006], which provides an efficient method for calculating relativistic effects in localized basis sets.
For spin-dependent transport, we consider four transmission channels:
The spin-dependent transmission function for each channel can be calculated as:
where σ denotes the spin channel.
Implementation
Spin-resolved transmission:
from gauNEGF.transport import cohTransSpin
# Calculate spin-resolved transmission
T, Tspin = cohTransSpin(
E, negf.F, negf.S,
sig1, sig2,
spin='u' # 'u' for unrestricted
)
# Access components
T_up_up = Tspin[:, 0]
T_up_down = Tspin[:, 1]
T_down_up = Tspin[:, 2]
T_down_down = Tspin[:, 3]
Analysis Tools
Density of States
Calculate and analyze DOS:
from gauNEGF.transport import DOS
# Calculate DOS
dos, dos_list = DOS(
E, negf.F, negf.S,
sig1, sig2
)
Transmission Analysis
Analyze transmission features:
# Plot transmission vs energy
plt.semilogy(E, T)
plt.xlabel('Energy (eV)')
plt.ylabel('Transmission')
# Find transmission peaks
peaks = np.where(T > 0.5)[0]
for p in peaks:
plt.axvline(E[p], color='r', ls='--')
Example Analysis
Complete Analysis Workflow
Example of a comprehensive transport analysis:
# Initialize system
negf = NEGF('molecule', basis='lanl2dz')
negf.setContactBethe([1,2,3], [6,7,8], 'Au2')
har_to_eV = 27.211386
# Run NEGF-DFT to get quilibrium density
negf.setVoltage(0.0)
negf.SCF(1e-3, 0.02, 200)
# Calculate transmission
E = np.linspace(-5, 5, 1000)
T = cohTransE(E+negf.fermi, negf.F*har_to_eV, negf.S, negf.g)
# Calculate DOS
dos, _ = DOSE(E+negf.fermi, negf.F*har_to_eV, negf.S, negf.g)
# Generate IV curve
V = np.linspace(0, 2, 21)
I = []
for v in V:
negf.setVoltage(v)
negf.SCF()
I.append(quickCurrent(
negf.F*har_to_eV, negf.S,
sig1, sig2,
fermi=negf.fermi,
qV=v
))
# Plot results
import matplotlib.pyplot as plt
fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(15, 5))
# Transmission
ax1.semilogy(E, T)
ax1.set_xlabel(r'$E - E_F$ (eV)')
ax1.set_ylabel('Transmission')
# DOS
ax2.plot(E, dos)
ax2.set_xlabel(r'$E - E_F$ (eV)')
ax2.set_ylabel('DOS')
# IV curve
ax3.plot(V, I)
ax3.set_xlabel('Voltage (V)')
ax3.set_ylabel('Current (A)')
plt.tight_layout()
plt.show()
Next Steps
Review Best Practices for Production Calculations for tips on production calculations.
Zöllner, M. S., Varela, S., Medina, E., Mujica, V., & Herrmann, C. (2020). Insight into the Origin of Chiral-Induced Spin Selectivity from a Symmetry Analysis of Electronic Transmission. Journal of Chemical Theory and Computation, 16(5), 2914-2929. DOI: 10.1021/acs.jctc.9b01078
Fernández-Seivane, L., Oliveira, M. A., Sanvito, S., & Ferrer, J. (2006). On-site approximation for spin–orbit coupling in linear combination of atomic orbitals density functional methods. Journal of Physics: Condensed Matter, 18(34), 7999-8013. DOI: 10.1088/0953-8984/18/34/012