Conductance of single-molecule
From phys824
Using Tight Binding Method
Lead Hamiltonians:
import numpy as np
H_lead = np.array([[ 0. , -1. , 0.2, 0. ],
[-1. , 0. , -1. , 0.2],
[ 0.2, -1. , 0. , -1. ],
[ 0. , 0.2, -1. , 0. ]])
Scattering Hamiltonian:
H_scat = np.array([[ 0., -1 , 0, 0, 0, 0. ],
[-1 , 0 , 0.2, 0, 0, 0. ],
[ 0 ,0.2 , 0,-0.8, 0, 0. ],
[ 0 , 0 ,-0.8, 0,0.2, 0. ],
[ 0 , 0 , 0, 0.2, 0,-1 ],
[ 0 , 0 , 0, 0, -1, 0 ]])
Set calculator for transport calculations:
from ase.transport.calculators import TransportCalculator
tcalc = TransportCalculator(h=H_scat, # Scattering Hamiltonian
h1=H_lead, # Lead 1 (left)
h2=H_lead, # Lead 2 (right)
pl=2) # principal layer size
Run the calculation:
tcalc.set(energies=np.arange(-3, 3, 0.02)) T_e = tcalc.get_transmission()
Plot transmission vs energy
import pylab pylab.plot(tcalc.energies, T_e)