Author Topic: Eigenchannel Transmission  (Read 4362 times)

0 Members and 1 Guest are viewing this topic.

Offline srdguezb

  • Regular QuantumATK user
  • **
  • Posts: 12
  • Reputation: 0
    • View Profile
Eigenchannel Transmission
« on: April 25, 2010, 19:58 »
Hello

I'm sorry if this is a basic question but I have not found the correct answer.

The question is:

'I would like to obtain the transmission of each eigenchannel for a 3D two-probe system.
The way I try it is
  1. I make up a Morhkost grid.
  2. For each energy
     2.1. For each k-point
           2.1. I use the function calculateTransmissionEigenchannel for that energy and k-point. In this way I obtain the transmission for each eigenchannel at that energy and k-point.
     2.2. For each eigenchannel I sum the results of the above k-point loop and divide by NumberOfKpoints*NumberOfKpoints.
The results are right but the program is too slow.

Is there an alternative procedure, as calculateTransmissionSpectrum, but that provides information for each channel?'

Thank you


Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5576
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: Eigenchannel Transmission
« Reply #1 on: April 25, 2010, 23:58 »
Well, there isn't any faster way than to compute them, it takes the time it takes :)

However, depending on exactly how you set up the script, you may be introducing various amounts of overhead. To determine that, however, you would have to post the script.

Generally speaking, your approach should be

1. Converge the self-consistent two-probe calculation. Never mind any "analysis", just make sure to store the NetCDF (checkpoint) file.

2. Perform all analysis from the checkpoint file, using the function restoreSelfConsistentCalculation() to restore the SCF object, then calculate what you want from that, just as if it were at the end of the main script

3. You don't have to give the k-points one by one to calculateTransmissionEigenvalues(). As you can see from its manual entry, you can in fact give it your entire list of k-points in one single call. Then just loop over the results instead, to print them for instance.

You will still have to loop over energies in my point 3, but you can skip the loop in your point 2.1.

Offline srdguezb

  • Regular QuantumATK user
  • **
  • Posts: 12
  • Reputation: 0
    • View Profile
Re: Eigenchannel Transmission
« Reply #2 on: April 27, 2010, 10:17 »
Thank you