コード例 #1
0
import matplotlib.pyplot as plt
import numpy as np

############################################################################
# compute the transmission coefficient of an impurity
# connected to two electrodes that each contains 2 state per unit cell
#
#
#			 - o - o - o - o --- A --- o - o - o - o -
#			   | x | x | x |  x  |  x  | x | x | x |
#			 - o - o - o - o --- A --- o - o - o - o -
#
############################################################################

# define the junction
system = Junction()

# impurity hamiltonian
e, alpha = 2, -2
h0 = np.array([[e, alpha], [alpha, -e]])

# add the molecule hamiltonian
system.add_central_matrix(h0=h0)

# inetractions between electrode layers
beta = -2.0
hi = beta * np.eye(2)

# add the electrodes
system.add_electrode_matrix(h0=h0, hi=hi, vmol=hi)
system.add_electrode_matrix(h0=h0, hi=hi, vmol=hi)
コード例 #2
0
ファイル: wire.py プロジェクト: gharib85/huskython
from husky.hamiltonian.ElectronicSystem import Junction
from husky.transport.negf import NEGFsolver
from husky.transport.esqc import ESQCsolver

import matplotlib.pyplot as plt
import numpy as np
import scipy.linalg as spla

import sys

############################################################################
# compute the transmission coefficient of a monoatomic gold wire
############################################################################

# create the junction
system = Junction()

# add the xyz files of the different part
system.add_molecule_xyz('./mol.xyz')
system.add_electrode_xyz('./elec1.xyz', trans=[0, 0, -7.06])
system.add_electrode_xyz('./elec2.xyz', trans=[0, 0, +7.06])

# write a xyz just to make sure that everything went ok
system.write_xyz()

# add the exended Huckel parameters
system.add_huckel_parameters('./Au.param')

# compute the hamiltonians/overlaps using extended huckel theory
# the lowdin_ortho option controls the orthogonalization of the matrices
# if true a lowdin orthogonalization is performed.
コード例 #3
0
ファイル: wire.py プロジェクト: gharib85/huskython
from husky.hamiltonian.model import tight_binding as tb

import matplotlib.pyplot as plt
import numpy as np

############################################################################
# Compute the transmission coefficient of a wire connected to two electrodes
# Each cell of each electrode contains here one states
#
#        - o - o - o - o -- A = A = A = A = A -- o - o - o - o -
#
############################################################################

# define the junction
system = Junction()

# add the molecule hamiltonian
N, e, a = 8, 0, -1
system.add_central_matrix(h0=tb.linear_aromatic(N=N, e=e, a=a))

# define the electrodes
e0, vi, vmol = 0., -2.5, -0.5
v1, v2 = np.zeros(N), np.zeros(N)
v1[0], v2[-1] = vmol, vmol

system.add_electrode_matrix(h0=np.array([e0]), hi=np.array([vi]), vmol=v1)
system.add_electrode_matrix(h0=np.array([e0]), hi=np.array([vi]), vmol=v2)

# compute the band structure of the right electrode
system.electrodes['0'].band_structure(nK=250,
コード例 #4
0
from husky.hamiltonian.ElectronicSystem import Junction
from husky.transport.negf import NEGFsolver
from husky.transport.esqc import ESQCsolver

import matplotlib.pyplot as plt
import numpy as np

import sys

############################################################################
# compute the transmission coefficient of a monoatomic gold wire
############################################################################

# create the junction
system = Junction()

# add the xyz files of the different part
# for the elecrode we here specify only the first cell
# and the translation vector to automatically
# generate the second cell
system.add_molecule_xyz("./mol.xyz")

#system.add_electrode_xyz('./elec1.xyz',trans=[-7.0667673,0,0])
#system.add_electrode_xyz('./elec2.xyz',trans=[+7.0667673,0,0])

#system.add_electrode_xyz('./elec1_2unit.xyz')#,trans=[-7.0667673*2,0,0])
#system.add_electrode_xyz('./elec2_2unit.xyz')#,trans=[+7.0667673*2,0,0])

system.add_electrode_xyz("elec1_1atom.xyz")  #,trans=[0,0,-5])
system.add_electrode_xyz("elec2_1atom.xyz")  #,trans=[0,0,5])
コード例 #5
0
import matplotlib.pyplot as plt 
import numpy as np

import sys

############################################################################
# compute the transmission coefficient of a benzene tight-binding
# molecule between two electrodes. Each cell of each electrode contains here
# a single state.
############################################################################



# define the junction
system = Junction()

# add the molecule hamiltonian
system.add_central_matrix(h0=tb.cyclic_aromatic(N=6,e=0,a=-1.))

# add the electrodes
e0,vi,vmol = 0.,-2.5, 1.
system.add_electrode_matrix(h0 = np.array([e0]), hi = np.array([vi]),vmol = np.array([vmol,0,0,0,0,0]))
system.add_electrode_matrix(h0 = np.array([e0]), hi = np.array([vi]),vmol = np.array([0,0,vmol,0,0,0]))

# compute the band structure of the electrode
system.electrodes['0'].band_structure(nK = 250, nE=250, filename='bandstructure_0.png')

##########################################################
#				ESQC
##########################################################