Conductance of single-molecule

From phys824
Jump to navigationJump to search

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)