zerothi / ts-tbt-sisl-tutorial

Tutorials for the sisl-TBtrans-TranSiesta suite
Creative Commons Attribution Share Alike 4.0 International
33 stars 30 forks source link

About TS_04 and general N>2 electrode #15

Closed yuefei-huang closed 3 years ago

yuefei-huang commented 3 years ago

Hello Nick, In your TS_04 tutorial, you said "Although we have 4 electrodes we will only use two different chemical potentials One for each chain."

In your vertical carbon chain setup in this tutorial, can one apply 0.5 V between y-1 and y-2 electrode, and apply 0.0 V between x-1 and x-2 electrode? So they will have chemical potenial: x-1 0.0eV x-2 0.0eV y-1 0.25eV y-2 -0.25eV

Is it allowed in TranSIESTA to have individual control over 4 different chemical potentials? I am trying to do so but have ran into various kinds of errors.

Thank you!

zerothi commented 3 years ago

Sure it is. You can define any number of chemical potentials, so long as it is smaller than or equal to the number of electrodes. If you have errors, it is probably something you have forgotten in the input.

yuefei-huang commented 3 years ago

But some requirements in the code seems to be quite strange.

  1. The value of TS.Voltage in the N>2 case must be equivalent to the maximum difference between the chemical potential of any two electrodes according to manual. For example if you want to fix voltage between y-1 and y-2 to be 0.2V, and let the voltage between x-1 and x-2 scan from -0.5V to 0.5V. In this case, TS.Voltage sometimes should be equal to 0.2eV, sometimes should be equal to the chemical potential difference between x-1 and x-2 electrode, which is changing.

  2. In a biased calculation, two chemical potentials are the same, is not allowed. I modified your RUN.fdf to define chemical potential of x-1 and x-2 separately, but with the same definition. It should be equivalent to your original RUN.fdf physically. Then in the TranSIESTA step it reported error: "Two chemical potentials: x1 and x2 are the same, in bias calculations this is not allowed." I attached the .fdf and output. Why is it not allowed to do so?

RUN.fdf.txt RUN.out.txt

Thank you!

zerothi commented 3 years ago

But some requirements in the code seems to be quite strange.

  1. The value of TS.Voltage in the N>2 case must be equivalent to the maximum difference between the chemical potential of any two electrodes according to manual. For example if you want to fix voltage between y-1 and y-2 to be 0.2V, and let the voltage between x-1 and x-2 scan from -0.5V to 0.5V. In this case, TS.Voltage sometimes should be equal to 0.2eV, sometimes should be equal to the chemical potential difference between x-1 and x-2 electrode, which is changing.

I don't see your point? TS.Voltage should always be the largest difference between any two chemical potentials. So when x-1 and x-2 have a V=0.1, then TS.Voltage should be 0.2 because you have fixed y-1 and y-2 to 0.2. I agree that this is a little annoying, but that is currently the only way the parameterization works. I agree it would be nice if it worked differently, but I haven't done that.

  1. In a biased calculation, two chemical potentials are the same, is not allowed. I modified your RUN.fdf to define chemical potential of x-1 and x-2 separately, but with the same definition. It should be equivalent to your original RUN.fdf physically. Then in the TranSIESTA step it reported error: "Two chemical potentials: x1 and x2 are the same, in bias calculations this is not allowed." I attached the .fdf and output. Why is it not allowed to do so?

This is not allowed because that means you will be calculating the same thing again and again. So there is no point in having two chemical potentials with the same value, see discussion in Sec. 2.2 in http://dx.doi.org/10.1016/j.cpc.2016.09.022.
Therefore TranSiesta does not allow you to do this.

zerothi commented 3 years ago

Is there anything else I can do? Otherwise I will close the issue?

yuefei-huang commented 3 years ago

Hello Nick,

Thank you very much for explaining! I just thought the requirements add some difficulty in scripting, it requires "piecewise" scripting for different voltage. However it is understandable and not a big problem.

The issue can be closed. Thank you!