QuantumATK Forum

QuantumATK => General Questions and Answers => Topic started by: mantun on June 23, 2014, 09:08

Title: Transmission_eigenvalues k_point
Post by: mantun on June 23, 2014, 09:08
I want to calculate the transmission eigenvalue on a set of k_points. The kpoints is a 200*200 mesh on fermi level, so it's not practical to put them one by one. Can you show how to make it in simple Python language?My atk version is 13.8. Thanks
Title: Re: Transmission_eigenvalues k_point
Post by: Anders Blom on June 24, 2014, 05:27
Just make a double-loop:

Code: python
for kA in numpy.linspace(-0.5,0.5,200):
    for kB in numpy.linspace(-0.5,0.5,200):
        tr_eig = TransmissionEigenvalues(device_configuration, energy=0*eV, k_point=[kA,kB])
        nlprint("k=(%g,%g)" % (kA,kB))
        nlprint(tr_eig)

Beware however that this may take some time!
Title: Re: Transmission_eigenvalues k_point
Post by: mantun on June 24, 2014, 15:15
Thank you! Its previous version 2008 has this function. It doesn't take much time if i am not mistaken.
Title: Re: Transmission_eigenvalues k_point
Post by: Anders Blom on June 25, 2014, 04:23
ATK 2008 did not have transmission eigenvalues, so you may be mistaking transmission "eigenvalues" for transmission "coefficients". To get the coefficients, it's a very different approach:

Code: python
t = TransmissionSpectrum(...)
coefficients = t.coefficients()

Here "coefficients" is T(k) for the k-point sampling chosen for the computation of the transmission spectrum.
Title: Re: Transmission_eigenvalues k_point
Post by: mantun on June 25, 2014, 09:42
ATK 2008 did not have transmission eigenvalues, so you may be mistaking transmission "eigenvalues" for transmission "coefficients". To get the coefficients, it's a very different approach:

Code: python
t = TransmissionSpectrum(...)
coefficients = t.coefficients()

Here "coefficients" is T(k) for the k-point sampling chosen for the computation of the transmission spectrum.


yes, i'm mistaken. You mean that in calculating transmission spectrum, the transmission efficients of the kpoints which is a parameter in transmission_spectrum function is computed first and then add up. Additional, there is no such a transmission_coefficient function in 13.8, am i right? What,s the differeence between transmission coefficients and transmission eigenvalues?
Title: Re: Transmission_eigenvalues k_point
Post by: mantun on June 25, 2014, 10:58
I have one more question. there exists several eigenstates that contribute to the transmission coefficients for a paticular E (energy) and K (k point) which correspond to a eigenvalue. That is to say, these eigenvalues add up to transmission coefficient. In the calculation of eigenvalues in ATK 13.8, what we get is the sum of eigenvalue for a particular (E, k) ?
Title: Re: Transmission_eigenvalues k_point
Post by: mantun on June 25, 2014, 15:22
I get all the answer exept "In the calculation of eigenvalues in ATK 13.8, what we get is the sum of eigenvalue for a particular (E, k) ?". Can you respond to this question? Thanks
Title: Re: Transmission_eigenvalues k_point
Post by: Anders Blom on June 25, 2014, 15:34
The relation is

T(E) = sum_k T(E,k)

where we call T(E,k) transmission coefficients.

T(E,k) = sum_i T_i(E,k)

where T_i(E,k) are the transmission eigenvalues, which are limited to the range [0,1]. Each transmission eigenvalue corresponds to a particular transmission eigenchannel (and hence eigenstate).