Author Topic: transmission spectrum  (Read 3971 times)

0 Members and 1 Guest are viewing this topic.

Offline qnsyhanjiu

  • Heavy QuantumATK user
  • ***
  • Posts: 33
  • Reputation: 0
    • View Profile
transmission spectrum
« on: April 9, 2011, 04:10 »
when self-consistent finished,I computer the transmission spectrum,the transmission cofficient is 0 .This is my script:
from ATK.TwoProbe import *
from ATK.MPI import processIsMaster

# Generate time stamp
if processIsMaster():
    import platform, time
    print '#',time.ctime()
    print '#',platform.node(),platform.platform()+'\n'

# Opening vnlfile
if processIsMaster(): file = VNLFile('AuFeCOT2Au_trans.vnl')

# Scattering elements and coordinates
scattering_elements = [Gold,     Gold,     Gold,     Gold,     
                       Gold,     Gold,     Gold,     Gold,     
                       Gold,     Gold,     Gold,     Gold,     
                       Gold,     Gold,     Gold,     Gold,     
                       Gold,     Gold,     Gold,     Gold,     
                       Gold,     Gold,     Gold,     Gold,     
                       Gold,     Gold,     Gold,     Gold,     
                       Gold,     Gold,     Gold,     Gold,     
                       Carbon,   Carbon,   Carbon,   Carbon,   
                       Carbon,   Carbon,   Carbon,   Carbon,   
                       Hydrogen, Hydrogen, Hydrogen, Hydrogen,
                       Hydrogen, Hydrogen, Hydrogen, Hydrogen,
                       Iron,     Carbon,   Carbon,   Carbon,   
                       Carbon,   Carbon,   Carbon,   Carbon,   
                       Carbon,   Hydrogen, Hydrogen, Hydrogen,
                       Hydrogen, Hydrogen, Hydrogen, Hydrogen,
                       Hydrogen, Gold,     Gold,     Gold,     
                       Gold,     Gold,     Gold,     Gold,     
                       Gold,     Gold,     Gold,     Gold,     
                       Gold,     Gold,     Gold,     Gold,     
                       Gold,     Gold,     Gold,     Gold,     
                       Gold,     Gold,     Gold,     Gold,     
                       Gold,     Gold,     Gold,     Gold,     
                       Gold,     Gold,     Gold,     Gold,     
                       Gold]
scattering_coordinates = [[  0.        ,   0.        ,   4.07800007],
                          [  0.        ,   2.8835814 ,   4.07800007],
                          [  0.        ,   5.7671628 ,   4.07800007],
                          [  0.        ,   8.65074444,   4.07800007],
                          [  2.8835814 ,   0.        ,   4.07800007],
                          [  2.8835814 ,   2.8835814 ,   4.07800007],
                          [  2.8835814 ,   5.7671628 ,   4.07800007],
                          [  2.8835814 ,   8.65074444,   4.07800007],
                          [  5.7671628 ,   0.        ,   4.07800007],
                          [  5.7671628 ,   2.8835814 ,   4.07800007],
                          [  5.7671628 ,   5.7671628 ,   4.07800007],
                          [  5.7671628 ,   8.65074444,   4.07800007],
                          [  8.65074444,   0.        ,   4.07800007],
                          [  8.65074444,   2.8835814 ,   4.07800007],
                          [  8.65074444,   5.7671628 ,   4.07800007],
                          [  8.65074444,   8.65074444,   4.07800007],
                          [  1.4417907 ,   1.4417907 ,   6.1170001 ],
                          [  1.4417907 ,   4.32537222,   6.1170001 ],
                          [  1.4417907 ,   7.20895386,   6.1170001 ],
                          [  1.4417907 ,  10.09253502,   6.1170001 ],
                          [  4.32537222,   1.4417907 ,   6.1170001 ],
                          [  4.32537222,   4.32537222,   6.1170001 ],
                          [  4.32537222,   7.20895386,   6.1170001 ],
                          [  4.32537222,  10.09253502,   6.1170001 ],
                          [  7.20895386,   1.4417907 ,   6.1170001 ],
                          [  7.20895386,   4.32537222,   6.1170001 ],
                          [  7.20895386,   7.20895386,   6.1170001 ],
                          [  7.20895386,  10.09253502,   6.1170001 ],
                          [ 10.09253502,   1.4417907 ,   6.1170001 ],
                          [ 10.09253502,   4.32537222,   6.1170001 ],
                          [ 10.09253502,   7.20895386,   6.1170001 ],
                          [ 10.09253502,  10.09253502,   6.1170001 ],
                          [  3.00554715,   5.06825432,  11.02264016],
                          [  3.60000394,   3.64764951,  11.01966818],
                          [  5.02483884,   3.06347858,  11.00989404],
                          [  6.44540297,   3.65794097,  10.99904331],
                          [  7.02954911,   5.08280861,  10.99347218],
                          [  6.43509244,   6.50341343,  10.99644416],
                          [  5.01025753,   7.08758436,  11.0062183 ],
                          [  3.58969341,   6.49312197,  11.01706904],
                          [  1.8750888 ,   5.06416577,  11.03102176],
                          [  2.80354606,   2.84538208,  11.02637995],
                          [  5.02893651,   1.9329897 ,  11.01111413],
                          [  7.24765669,   2.86145579,  10.99416681],
                          [  8.16001021,   5.08689752,  10.9854655 ],
                          [  7.23155295,   7.30568133,  10.99010731],
                          [  5.00616257,   8.21807347,  11.00537313],
                          [  2.78744231,   7.28960739,  11.02232045],
                          [  5.02913646,   5.07703446,  12.60752008],
                          [  3.02872382,   5.0712603 ,  14.22156797],
                          [  3.6231805 ,   3.6506555 ,  14.21859584],
                          [  5.04801539,   3.06648456,  14.20882187],
                          [  6.46857952,   3.66094695,  14.19797096],
                          [  7.05272566,   5.0858146 ,  14.19239984],
                          [  6.45826899,   6.50641941,  14.19537196],
                          [  5.03343408,   7.09059034,  14.20514593],
                          [  3.61286997,   6.49612795,  14.21599684],
                          [  1.89826261,   5.0671714 ,  14.22957454],
                          [  2.82671987,   2.84838759,  14.22493277],
                          [  5.05211035,   1.93599545,  14.20966706],
                          [  7.2708305 ,   2.86446153,  14.19271956],
                          [  8.18318401,   5.08990314,  14.18401823],
                          [  7.25472699,   7.30868684,  14.18866024],
                          [  5.0293364 ,   8.22107922,  14.20392595],
                          [  2.81061636,   7.29261314,  14.22087321],
                          [  0.        ,   0.        ,  19.71699968],
                          [  0.        ,   2.8835814 ,  19.71699968],
                          [  0.        ,   5.7671628 ,  19.71699968],
                          [  0.        ,   8.65074444,  19.71699968],
                          [  2.8835814 ,   0.        ,  19.71699968],
                          [  2.8835814 ,   2.8835814 ,  19.71699968],
                          [  2.8835814 ,   5.7671628 ,  19.71699968],
                          [  2.8835814 ,   8.65074444,  19.71699968],
                          [  5.7671628 ,   0.        ,  19.71699968],
                          [  5.7671628 ,   2.8835814 ,  19.71699968],
                          [  5.7671628 ,   5.7671628 ,  19.71699968],
                          [  5.7671628 ,   8.65074444,  19.71699968],
                          [  8.65074444,   0.        ,  19.71699968],
                          [  8.65074444,   2.8835814 ,  19.71699968],
                          [  8.65074444,   5.7671628 ,  19.71699968],
                          [  8.65074444,   8.65074444,  19.71699968],
                          [  1.4417907 ,   1.4417907 ,  21.75599972],
                          [  1.4417907 ,   4.32537222,  21.75599972],
                          [  1.4417907 ,   7.20895386,  21.75599972],
                          [  1.4417907 ,  10.09253502,  21.75599972],
                          [  4.32537222,   1.4417907 ,  21.75599972],
                          [  4.32537222,   4.32537222,  21.75599972],
                          [  4.32537222,   7.20895386,  21.75599972],
                          [  4.32537222,  10.09253502,  21.75599972],
                          [  7.20895386,   1.4417907 ,  21.75599972],
                          [  7.20895386,   4.32537222,  21.75599972],
                          [  7.20895386,   7.20895386,  21.75599972],
                          [  7.20895386,  10.09253502,  21.75599972],
                          [ 10.09253502,   1.4417907 ,  21.75599972],
                          [ 10.09253502,   4.32537222,  21.75599972],
                          [ 10.09253502,   7.20895386,  21.75599972],
                          [ 10.09253502,  10.09253502,  21.75599972]]*Angstrom
       

electrode_elements = [Gold, Gold]
electrode_coordinates = [[ 0.        ,  0.        ,  0.        ],
                         [ 1.44179073,  1.44179073,  2.039     ]]*Angstrom

electrode_cell = [[ 2.88358145,  0.        ,  0.        ],
                  [ 0.        ,  2.88358145,  0.        ],
                  [ 0.        ,  0.        ,  4.078     ]]*Angstrom

# Set up electrodes
electrode_configuration = PeriodicAtomConfiguration(
    electrode_cell,
    electrode_elements,
    electrode_coordinates
    )

# Set up two-probe configuration
twoprobe_configuration = TwoProbeConfiguration(
    (electrode_configuration,electrode_configuration),
    scattering_elements,
    scattering_coordinates,
    electrode_repetitions=[[4,4],[4,4]],
    equivalent_atoms=([0,0],[1,81])
    )
if processIsMaster(): nlPrint(twoprobe_configuration)
if processIsMaster(): file.addToSample(twoprobe_configuration, 'AuFeCOT2Au')

######################################################################
# Central region parameters
######################################################################
exchange_correlation_type = GGA.revPBE

iteration_mixing_parameters = iterationMixingParameters(
    algorithm = IterationMixing.Pulay,
    diagonal_mixing_parameter = 0.1,
    quantity = IterationMixing.Hamiltonian,
    history_steps = 6
)

electron_density_parameters = electronDensityParameters(
    mesh_cutoff = 150.0*Rydberg,
    initial_scaled_spin = [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
                            0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
                            0.,  0.,  0.,  0.,  0.,  0.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,
                            1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,
                            1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,
                            0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
                            0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
                            0.,  0.,  0.,  0.,  0.,  0. ]
)

basis_set_parameters_Common = basisSetParameters(
    type = DoubleZetaPolarized,
    radial_sampling_dr = 0.001*Bohr,
    energy_shift = 0.01*Rydberg,
    delta_rinn = 0.8,
    v0 = 40.0*Rydberg,
    charge = 0.0,
    split_norm = 0.15
)

basis_set_parameters_Gold = basisSetParameters(
    type = SingleZetaPolarized,
    energy_shift = 0.01*Rydberg,
    delta_rinn = 0.8,
    v0 = 40.0*Rydberg,
    charge = 0.0,
    split_norm = 0.15,
    element = Gold
)

basis_set_parameters = [
    basis_set_parameters_Common,
    basis_set_parameters_Gold
    ]

iteration_control_parameters = iterationControlParameters(
    tolerance = 1e-005,
    criterion = IterationControl.TotalEnergy,
    max_steps = 100
)

electrode_voltages = (0.0,0.0)*Volt

two_probe_algorithm_parameters = twoProbeAlgorithmParameters(
    electrode_constraint = ElectrodeConstraints.Off,
    initial_density_type = InitialDensityType.EquivalentBulk
)

energy_contour_integral_parameters = energyContourIntegralParameters(
    circle_points = 30,
    integral_lower_bound = 3*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
)

######################################################################
# Left electrode parameters
######################################################################
left_electrode_electron_density_parameters = electronDensityParameters(
    mesh_cutoff = 150.0*Rydberg,
    initial_scaled_spin = [ 0.,  0. ]
)

left_electrode_iteration_control_parameters = iterationControlParameters(
    tolerance = 1e-005,
    criterion = IterationControl.TotalEnergy,
    max_steps = 100
)

left_electrode_brillouin_zone_integration_parameters = brillouinZoneIntegrationParameters(
    monkhorst_pack_parameters = (30, 30, 100)
)

left_electrode_iteration_mixing_parameters = iterationMixingParameters(
    algorithm = IterationMixing.Pulay,
    diagonal_mixing_parameter = 0.1,
    quantity = IterationMixing.Hamiltonian,
    history_steps = 6
)

left_electrode_eigenstate_occupation_parameters = eigenstateOccupationParameters(
    temperature = 300.0*Kelvin
)

######################################################################
# Collect left electrode parameters
######################################################################
left_electrode_parameters = ElectrodeParameters(
    brillouin_zone_integration_parameters = left_electrode_brillouin_zone_integration_parameters,
    electron_density_parameters = left_electrode_electron_density_parameters,
    eigenstate_occupation_parameters = left_electrode_eigenstate_occupation_parameters,
    iteration_mixing_parameters = left_electrode_iteration_mixing_parameters,
    iteration_control_parameters = left_electrode_iteration_control_parameters
)

######################################################################
# Right electrode parameters
######################################################################
right_electrode_electron_density_parameters = electronDensityParameters(
    mesh_cutoff = 150.0*Rydberg,
    initial_scaled_spin = [ 0.,  0. ]
)

right_electrode_iteration_control_parameters = iterationControlParameters(
    tolerance = 1e-005,
    criterion = IterationControl.TotalEnergy,
    max_steps = 100
)

right_electrode_brillouin_zone_integration_parameters = brillouinZoneIntegrationParameters(
    monkhorst_pack_parameters = (30, 30, 100)
)

right_electrode_iteration_mixing_parameters = iterationMixingParameters(
    algorithm = IterationMixing.Pulay,
    diagonal_mixing_parameter = 0.1,
    quantity = IterationMixing.Hamiltonian,
    history_steps = 6
)

right_electrode_eigenstate_occupation_parameters = eigenstateOccupationParameters(
    temperature = 300.0*Kelvin
)

######################################################################
# Collect right electrode parameters
######################################################################
right_electrode_parameters = ElectrodeParameters(
    brillouin_zone_integration_parameters = right_electrode_brillouin_zone_integration_parameters,
    electron_density_parameters = right_electrode_electron_density_parameters,
    eigenstate_occupation_parameters = right_electrode_eigenstate_occupation_parameters,
    iteration_mixing_parameters = right_electrode_iteration_mixing_parameters,
    iteration_control_parameters = right_electrode_iteration_control_parameters
)

######################################################################
# Initialize self-consistent field calculation
######################################################################
two_probe_method = TwoProbeMethod(
    electrode_parameters = (left_electrode_parameters,right_electrode_parameters),
    exchange_correlation_type = exchange_correlation_type,
    iteration_mixing_parameters = iteration_mixing_parameters,
    electron_density_parameters = electron_density_parameters,
    basis_set_parameters = basis_set_parameters,
    iteration_control_parameters = iteration_control_parameters,
    energy_contour_integral_parameters = energy_contour_integral_parameters,
    two_center_integral_parameters = two_center_integral_parameters,
    electrode_voltages = electrode_voltages,
    algorithm_parameters = two_probe_algorithm_parameters
)
if processIsMaster(): nlPrint(two_probe_method)

# Restore self consistent calculation from check point file
scf = restoreSelfConsistentCalculation(
    filename = 'AuFeCOT2Au-scf.nc'
)
######################################################################
# Calculate physical properties
######################################################################
import numpy
transmission_spectrum = calculateTransmissionSpectrum(
    self_consistent_calculation = scf,
    energies = numpy.arange(-2.0, 2.0, 0.01)*electronVolt,
    brillouin_zone_integration_parameters = brillouinZoneIntegrationParameters((30, 30)),
    green_function_infinitesimal = 1.0e-5*electronVolt
)
if processIsMaster(): nlPrint(transmission_spectrum)
if processIsMaster(): file.addToSample(transmission_spectrum, 'AuFeCOT2Au', 'Transmission Spectrum')