Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Zhongjun Li

Pages: [1]
1
Dear everyone,
At a certain bias voltage of 0.4 V, I have calculated drain current of Id  at different gate voltages. when the gate voltages are set to -6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6 V, the dependent curve of Id on gate voltages is smooth, and the trend is consistent with the experimental result. However, as the gate voltages are set to fractions, such as -6.5,-5.5,-4.5,-3.5,-2.5,-1.5,......or -6.1,-6.2,-6.3,-6.4,-6.5,-6.6,......, the curve shows very obvious oscillations. I can not understand and resolve my question. Have you experienced this case? maybe your experiences can lead me out of my troubles. Thank you for your attention.

2
Dear everyone,
In order to achieve local density of state of my system, I want to write the configurations, electron density, and LDOS to a vnl file named LDOS-10.VNL, the part script as following:
...................................
   two_probe_conf = configurations["aaaa"]
....................................
    # Calculate electron density from old NetCDF data
    electron_density = calculateElectronDensity(scf)
    # Calculate local DOS for non-electrode atoms
    ldos = calculateLocalDensityOfStates(
        scf,
        energy = 0.0*eV,
        quantum_number = (0.0,0.0)
        )
    # Store obtained results in vnl file using different IDs

    file=VNLFile("LDOS-10.vnl"
    file.addToSample(two_probe_conf, 'LDOS-10')    #line 173
   file.addToSample(electron_density, 'LDOS-10')   #line 174
   file.addToSample(ldos, 'LDOS-10')                    #line 175
the above script can not work, and the errors are as

SError: [Errno 2] No such file or directory: 'LDOS-10.vnl'
Traceback (most recent call last):
File "<string>", line 174, in ?
OSError: [Errno 2] No such file or directory: 'LDOS-10.vnl'
Traceback (most recent call last):
  File "GhG9_LDOS_Vb04.py", line 174, in ?
    vnl_file.addToSample(electron_density, 'LDOS-10')
OSError: [Errno 2] No such file or directory: 'LDOS-10.vnl'
Traceback (most recent call last):
  File "<string>", line 175, in ?
OSError: [Errno 2] No such file or directory: 'LDOS-10.vnl'

These errors may be caused by the writing data  in parallel version of ATK.
How can I modify my script to resolve my question. Now I have no enough money to buy higher version of ATK.
Thank you for your attention.

3
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

Pages: [1]