QuantumATK Forum

QuantumATK => General Questions and Answers => Topic started by: baizq on September 19, 2011, 16:17

Title: negative k-resolved transmission coefficient
Post by: baizq on September 19, 2011, 16:17
Dear colleagues,

I was calculating the transport properties of a MTJ structure when something strange happened. I got a k-resolved transmission coefficient spectrum which contained some k points with negative values. Please see attachment...

Is there any physical meaning for a negative transmission coefficient? Or why it happend?

BTW, is there anybody who has the script to extract the k-resolved transmission coefficients from the .nc file? I remember there was a script for the older version of ATK...

Thanks so much!
baizq
Title: Re: negative k-resolved transmission coefficient
Post by: nori on September 19, 2011, 17:13
Quote
Is there any physical meaning for a negative transmission coefficient?
No, always the negative transmission coefficient in ATK is an artifact or due to bugs.
I feel the magnitude of negative coefficients is relatively large so it may be better that you use DirectSelfEnergy or RecursionSelfEnergy instead of KrylovSelfEnergy.
Title: Re: negative k-resolved transmission coefficient
Post by: Anders Blom on September 19, 2011, 22:29
ATK uses the Krylov method by default because it's faster, but sometimes it can give negative DOS or transmission, in which case you had better switch over to e.g. the RecursionSelfEnergy method.

To get the coefficients out in the new version is very easy, as proven by the fact that you have plotted the data already - so you have the numbers :) It's basically a matter of

Code: python
t = nlread("file.nc",TransmissionSpectrum)[0]
values = t.transmission()

then values will be a list data[n][e][k], where n, e, k are integers looping over the number of spins, energies and kpoints.
Title: Re: negative k-resolved transmission coefficient
Post by: baizq on September 21, 2011, 08:18
Quote
Is there any physical meaning for a negative transmission coefficient?
No, always the negative transmission coefficient in ATK is an artifact or due to bugs.
I feel the magnitude of negative coefficients is relatively large so it may be better that you use DirectSelfEnergy or RecursionSelfEnergy instead of KrylovSelfEnergy.

Hi nori,

Thanks so much for your kind help.

Should I use DirectSelfEnergy or RecursionSelfEnergy for the self-consistent calculation or just for transmission spectrum calculation after scf?  ???

 ;)
baizq

Title: Re: negative k-resolved transmission coefficient
Post by: baizq on September 21, 2011, 08:22
ATK uses the Krylov method by default because it's faster, but sometimes it can give negative DOS or transmission, in which case you had better switch over to e.g. the RecursionSelfEnergy method.

To get the coefficients out in the new version is very easy, as proven by the fact that you have plotted the data already - so you have the numbers :) It's basically a matter of

Code: python
t = nlread("file.nc",TransmissionSpectrum)[0]
values = t.transmission()

then values will be a list data[n][e][k], where n, e, k are integers looping over the number of spins, energies and kpoints.


Hi Anders,

Thanks very much for your help.

What is the difference between Krylov and Recursion.... ;D Is RecursionSelfEnergy more accurate than Krylov?

baizq
Title: Re: negative k-resolved transmission coefficient
Post by: Anders Blom on September 21, 2011, 10:59
It's usually enough to only redo the transmission/DOS calculation. I would try the Recursion method first. The methods do not really differ in accuracy, Krylov is just faster (but has some numerical stability issues, in some cases).
Title: Re: negative k-resolved transmission coefficient
Post by: nori on September 21, 2011, 12:32
Quote
Should I use DirectSelfEnergy or RecursionSelfEnergy for the self-consistent calculation or just for transmission spectrum calculation after scf?
In 0 bias calculation, the recursion method is used as default.
Even if the calculation was under finite bias, I think it's OK because you could converge the SCF normally.
Please note that the sensitivity to self energy method is different between SCF and transmission.

Krylov method ignores fast decaying modes (= almost 0) while Recursion and Direct method include all decaying modes.
such ignored modes don't usually affect accuracy but in some cases cause inaccuracy.
Title: Re: negative k-resolved transmission coefficient
Post by: baizq on September 22, 2011, 18:01
Dear nori and Anders,

Yes, the negative values are eliminated by using RecursionSelfEnergy. Thank you so much for your help.  :) :) :)

baizq