Conductance of single-molecule: Difference between revisions
From phys824
Jump to navigationJump to search
Line 1: | Line 1: | ||
===Using Tight Binding Method=== | ===Using Tight Binding Method=== | ||
Lead Hamiltonians: | Lead Hamiltonians: | ||
<pre> | <pre> | ||
import numpy as np | |||
H_lead = np.array([[ 0. , -1. , 0.2, 0. ], | H_lead = np.array([[ 0. , -1. , 0.2, 0. ], | ||
[-1. , 0. , -1. , 0.2], | [-1. , 0. , -1. , 0.2], | ||
Line 15: | Line 17: | ||
[ 0 , 0 , 0, 0.2, 0,-1 ], | [ 0 , 0 , 0, 0.2, 0,-1 ], | ||
[ 0 , 0 , 0, 0, -1, 0 ]]) | [ 0 , 0 , 0, 0, -1, 0 ]]) | ||
</pre> | |||
Set calculator for transport calculations: | |||
<pre> | |||
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 | |||
</pre> | |||
Run the calculation: | |||
<pre> | |||
tcalc.set(energies=np.arange(-3, 3, 0.02)) | |||
T_e = tcalc.get_transmission() | |||
</pre> | |||
Plot transmission vs energy | |||
<pre> | |||
import pylab | |||
pylab.plot(tcalc.energies, T_e) | |||
</pre> | </pre> |
Revision as of 22:02, 29 November 2012
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)