8
« on: November 11, 2012, 15:41 »
Dear everyone,
I calculated the dependence of electric currents on gate voltage for my three_probe system, some things have troubled me till now. To be specific, a series of gate voltages (..., -3, -2.4, -2.0, -1.6, -1.2, -0.8, -0.4, 0.0, 0.4, 0.8, 1.2, 1.6, 2.0V, ...) were respectively applied to the three_probe system with the same bias voltage of 2V, but the calculated electric currents almostly remained constant. I can not understand this result. The followings are my scripts and some results. The version of my ATK is 2008.10.0. Does anyone have the similar experience, and could you give any advice?
Thank you for your attentions.
I-Vg_Vd.py
from ATK.TwoProbe import *
import numpy
import ATK
ATK.setVerbosityLevel(1)
#############################################################
##### Read the atomic configuration from a VNL file##########
#############################################################
vnl_file = VNLFile("xxxx.vnl")
configurations = vnl_file.readAtomicConfigurations()
two_probe_conf = configurations["xxxx"]
###############################################
# setting global parameters
###############################################
kpoints = (1,1,50)
mesh_cutoff = 150.*Rydberg
xc = GGA.PBE
temperature = 300.*Kelvin
tolerance = 1e-4
diagonal_mixing_parameter = 0.10
history_steps = 6
max_steps = 300
###############################################
# setting basis sets
###############################################
basis_set_parameters = [basisSetParameters(DoubleZetaPolarized,element = Carbon),
basisSetParameters(DoubleZetaPolarized,element = Hydrogen)]
scf = restoreSelfConsistentCalculation("yyy.nc")
###############################################
# setting two electrodes parameters
###############################################
electrode_brillouin_zone_integration_parameters = brillouinZoneIntegrationParameters(
monkhorst_pack_parameters = (kpoints)
)
electrode_electron_density_parameters = electronDensityParameters(
mesh_cutoff = mesh_cutoff,
)
electrode_iteration_control_parameters = iterationControlParameters(
tolerance = tolerance,
criterion = IterationControl.Strict,
max_steps = max_steps
)
electrode_iteration_mixing_parameters = iterationMixingParameters(
algorithm = IterationMixing.Pulay,
diagonal_mixing_parameter = diagonal_mixing_parameter,
quantity = IterationMixing.Hamiltonian,
history_steps = history_steps
)
electrode_eigenstate_occupation_parameters = eigenstateOccupationParameters(
temperature = temperature
)
electrode_parameters = ElectrodeParameters(
brillouin_zone_integration_parameters = electrode_brillouin_zone_integration_parameters,
electron_density_parameters = electrode_electron_density_parameters,
eigenstate_occupation_parameters = electrode_eigenstate_occupation_parameters,
iteration_mixing_parameters = electrode_iteration_mixing_parameters,
iteration_control_parameters = electrode_iteration_control_parameters
)
###############################################
# setting scattering region parameters
###############################################
ite_mix_para = iterationMixingParameters(
diagonal_mixing_parameter = diagonal_mixing_parameter,
quantity = IterationMixing.Hamiltonian,
history_steps = history_steps
)
ite_con_para = iterationControlParameters(
tolerance = tolerance,
criterion = IterationControl.Strict,
max_steps = max_steps
)
ele_den_para = electronDensityParameters(
mesh_cutoff = mesh_cutoff,
)
two_probe_algorithm_parameters = twoProbeAlgorithmParameters(
electrode_constraint = ElectrodeConstraints.RealSpaceDensity,
initial_density_type = InitialDensityType.EquivalentBulk
)
energy_contour_integral_parameters = energyContourIntegralParameters(
circle_points = 50,
integral_lower_bound = 4.0*Rydberg,
fermi_line_points = 10,
fermi_function_poles = 4,
real_axis_infinitesimal = 0.01*electronVolt,
real_axis_point_density = 0.02*electronVolt
)
two_center_integral_parameters = twoCenterIntegralParameters(
cutoff = 2500.0*Rydberg,
points = 1024
)
#################################################################################
###################### TwoProbeMethod and ThreeProbeMethod ###################
#################################################################################
for voltage in numpy.arange(-6.0, 6.0+0.5, 0.4): # gate_valtages
two_probe_method = TwoProbeMethod(
exchange_correlation_type = xc,
electrode_parameters = (electrode_parameters, electrode_parameters),
electrode_voltages = (-1.0, 1.0)*Volt,
iteration_mixing_parameters = ite_mix_para,
iteration_control_parameters = ite_con_para,
energy_contour_integral_parameters = energy_contour_integral_parameters,
two_center_integral_parameters = two_center_integral_parameters,
electron_density_parameters = ele_den_para,
basis_set_parameters = basis_set_parameters,
algorithm_parameters = two_probe_algorithm_parameters
)
three_probe_method = GatedTwoProbeMethod(
two_probe_method = two_probe_method,
gate_voltage = (voltage)*Volt,
surface_atoms = (48,36)
)
###########################################################################################
###################### SCF #############################################################
###########################################################################################
scf = executeSelfConsistentCalculation(
atomic_configuration = two_probe_conf,
method = three_probe_method,
initial_calculation = scf,
runtime_parameters = runtimeParameters(verbosity_level = 1,
checkpoint_filename = 'GhgScfTrans-gate-%.1f.nc' % voltage)
)
############################################################################################
################### Calculate physical properties ##########################################
############################################################################################
current = calculateCurrent(scf)
############################################################################################
################### OutPuts ##########################################
############################################################################################
print "%.1f\t\t%.2e" %(voltage, current.inUnitsOf(Ampere))
some resuts
-4.0 -6.79e-21
-3.9 -6.79e-21
-3.9 -6.79e-21
-3.8 -6.79e-21
-3.7 -6.79e-21
-3.6 -6.80e-21
-3.5 -6.80e-21
-3.4 -6.80e-21
-3.3 -6.80e-21
-3.2 -6.80e-21
-3.1 -6.80e-21
-3.0 -6.80e-21
-2.9 -6.80e-21
-2.8 -6.80e-21
-2.7 -6.80e-21
-2.6 -6.80e-21
-2.5 -6.80e-21
-2.4 -6.80e-21
-2.3 -6.80e-21
-2.2 -6.80e-21
-2.1 -6.80e-21
-2.0 -6.80e-21
-1.9 -6.80e-21
-1.8 -6.80e-21
-1.7 -6.80e-21
-1.6 -6.80e-21
-1.5 -6.80e-21
-1.4 -6.80e-21
-1.3 -6.80e-21
-1.2 -6.80e-21
-1.1 -6.80e-21
-1.0 -6.80e-21
-0.9 -6.81e-21
-0.8 -6.81e-21
-0.7 -6.81e-21
-0.6 -6.81e-21
-0.5 -6.81e-21
-0.4 -6.81e-21
....
4.0 -6.82e-21