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')