Dear Anders,
Thanks for your reply.
You mean, if there is gate voltage or I have two different electrodes, in order to get a quick convergence, I had better to use
electrode_voltages=(0.5*bias,-0.5*bias) than
electrode_voltages=(1.0*bias, 0.0*bias)? And If I have the same electrode and there are no gate voltage,
electrode_voltages=(0.5*bias,-0.5*bias) and
electrode_voltages=(1.0*bias, 0.0*bias) are exactly the same?
Also, another qestion that may related to this thread that if I just want to get the
transmission spectrum and
current for 1.0 V based on a 0.0 V converged *nc file, I should write in the py file that
device_configuration = nlread("Au-C6H4S2-Au-0.0.nc")[0]
calculator=calculator(
electrode_voltages=(0.5*Volt, -0.5*Volt))
device_configuration.setCalculator(
calculator(),
initial_state=device_configuration)
device_configuration.update()
nlsave("Au-C6H4S2-Au-1.0.nc", device_configuration)
transmission_spectrum = TransmissionSpectrum(
configuration=device_configuration,
energies=numpy.linspace(-2,2,400)*eV,
kpoints=MonkhorstPackGrid(6,6),
energy_zero_parameter=AverageFermiLevel,
infinitesimal=1.36057e-05*eV,
self_energy_calculator=RecursionSelfEnergy(),
)
nlsave("Au-C6H4S2-Au-1.0.nc", transmission_spectrum)
nlprint(transmission_spectrum)
iv_curve = IVCurve(
configuration=device_configuration,
biases=[1.0, ]*Volt,
energies=numpy.linspace(-2,2,101)*eV,
kpoints=MonkhorstPackGrid(6,6),
self_energy_calculator=RecursionSelfEnergy(),
energy_zero_parameter=AverageFermiLevel,
infinitesimal=1e-06*eV,
selfconsistent_configurations_filename="Au-C6H4S2-Au-1.0.nc",
)
nlsave('Au-C6H4S2-Au-1.0.nc', iv_curve)
nlprint(iv_curve)
For the transmission spectrum calculation, I have no doubt, but for the cuurrent calculation, I think the ATK will calculate again the transmission spectrum and then get the current. How can I calculate the current based on the already calculated transmission spectrum?
Thanks so much.