Author Topic: negative k-resolved transmission coefficient  (Read 7692 times)

0 Members and 1 Guest are viewing this topic.

Offline baizq

  • QuantumATK Guru
  • ****
  • Posts: 100
  • Country: us
  • Reputation: 3
    • View Profile
negative k-resolved transmission coefficient
« 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

Offline nori

  • QuantumATK Guru
  • ****
  • Posts: 122
  • Reputation: 12
    • View Profile
Re: negative k-resolved transmission coefficient
« Reply #1 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.

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5576
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: negative k-resolved transmission coefficient
« Reply #2 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.

Offline baizq

  • QuantumATK Guru
  • ****
  • Posts: 100
  • Country: us
  • Reputation: 3
    • View Profile
Re: negative k-resolved transmission coefficient
« Reply #3 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


Offline baizq

  • QuantumATK Guru
  • ****
  • Posts: 100
  • Country: us
  • Reputation: 3
    • View Profile
Re: negative k-resolved transmission coefficient
« Reply #4 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

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5576
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: negative k-resolved transmission coefficient
« Reply #5 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).

Offline nori

  • QuantumATK Guru
  • ****
  • Posts: 122
  • Reputation: 12
    • View Profile
Re: negative k-resolved transmission coefficient
« Reply #6 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.

Offline baizq

  • QuantumATK Guru
  • ****
  • Posts: 100
  • Country: us
  • Reputation: 3
    • View Profile
Re: negative k-resolved transmission coefficient
« Reply #7 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