Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - srdguezb

Pages: [1]
1
Hello

I know there are several posts about transmission eigenvalues. Particularly good explained is http://quantumwise.com/forum/index.php?topic=349.0. However I have a basic question and I need some support (replies or bibliography) to understand this issue.

My question is: "As far as I understand the concept of "transmission eigenchannel" it refers to a set of k-states in the left electrode that are mapped to the same set of k-states into the right electrode. The procedure to obtain them should be the following: For a fixed energy, we need to calculate for each k-state in the left contact its composition in k-states in the right contact. Once calculated the above for every k-state in the left contact we obtain 1 (and only 1) transmission matrix, which depends on energy but not in k. The diagonalization of that matrix provides a several sets of k-states.

However, atk calculates the transmission eigenvalues depending on energy and left k-point, T(E,k), and you wrote that for a particular energy E and k-point k, you take the trace of tt^\dag. So my questions are the following : for every E, and every k, do you calculate one transmission matrix? The procedure is not to build one transmission matrix which contains every k-point for a fixed energy and calculate the trace?


If this is correct, which is the relation between 'my' transmission eigenchannel and yours?"

PD: We're considering 3-D contacts.

2
General Questions and Answers / 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


3
Hello everybody,

my question is the next one: I think atk provides 2 'equivalent' ways to obtain the transmission spectrum:
  1. Calculate T(E,k) and integrate in k. If the used k's are obtained with the Monhkorst procedure, T(E) is obtained straightforward by adittion and divide by N^2.
  2. Use Trasmission spectrum function.
The question is: Should both approaches provide the same results?

Thus, I have calculated a .nc file with a selfconsistent_calculation, load a variable scf_calc with those data and set up this script by changing few things of that provided by the tutorial 'Transmission Coefficients'

#First way
N=        10
T=        []
K=        []
energies= numpy.arange(-5,5,0.1)*electronVolt
reduced_grid= MonkhorstPackGrid_ReducedToFirstOctant(N)
K=            reduced_grid.getPickedKPoints()
for E in energies:
 tr_limited = calculateTransmissionCoefficients(
  self_consistent_calculation=scf_calc,
  energy = E,
  quantum_numbers = K
 )
 tr_reconstructed = reduced_grid.reconstructT(tr_limited)
 TE = sum(sum(tr_reconstructed))/(N*N)
 if processIsMaster():
  print E,TE
  if -1e-3*eV<E<1e-3*eV:
   saveTransmissionCoefficients(tr_reconstructed,'trcoeff_k100Red_E0eV.cpk')

#Second way
bzip= brillouinZoneIntegrationParameters((N,N))
electron_transmission = calculateTransmissionSpectrum(
 self_consistent_calculation = scf_calc,
 energies = energies,
 brillouin_zone_integration_parameters=bzip
 )
energies = electron_transmission.energies()
coefficients = electron_transmission.coefficients()
if processIsMaster():
   print 'Energy (eV)      Transmission'
   print '-----------------------------------'
   for i in range(len(energies)):
      print "%g\t%g" % ( energies.inUnitsOf(eV),coefficients )



Thank you

4
Hi,

I've got a Intel Core 2 Quad CPU with Ubuntu 8.04 and kernel 2.6.24-24 generic.

If I install atk-2008.10.0 for i386 I have no problem for running but with atk-2008.10.0 for x64 and write

atk --version

or

atk -version

the machine answers with the next message:

/usr/local/atk-2008.10.0/bin/atk_exec:  3: Syntax error: Unterminated quoted string

Can you help me to make the 64 bits version to work?

Thanks

Admin mod: Removing poll and correcting spelling mistake in subject to help searching

Pages: [1]