QuantumATK Forum

QuantumATK => General Questions and Answers => Topic started by: cca_rmv on August 25, 2013, 00:20

Title: K-resolved Device dos
Post by: cca_rmv on August 25, 2013, 00:20
Is it possible to calculate the k-resoved device DOS at some given some specified energy just as transmission? It in many case would provide direct interpretation of the transmission and would be very useful. The same question was posed few years back and my understanding is, it was added in wishlist (http://quantumwise.com/forum/index.php?topic=1298.0#.Uhkupz8bi7g).  If it is not developed yet, would you please guide me how I can obtain such quantity?
Title: Re: K-resolved Device dos
Post by: kstokbro on August 26, 2013, 11:48
We average over the k-point, so the information is lost in our current analysis object.
We need to introduce a new analysis object where this information is kept.
 I have put it on our backlog.
Title: Re: K-resolved Device dos
Post by: kstokbro on August 26, 2013, 23:35
I have made a special script for you:
atkpython alo.py
This will generate a device configuration in the file alo.nc

atkpython kdos.py
This will calculate the k-point resolved DOS at one energy. Check the script for how it works and parameters that can be set. The data will be saved in kdos.nc

atkpython kdos_plot.py
Will read and plot the data in kdos.py

The scripts are quick prototypes, there are no parameter checks, so use them with care.
However, they illustrate our powerful API which we plan to document and make public such that it is easy for a user to generate such scipts
Title: Re: K-resolved Device dos
Post by: ramkrishna on November 18, 2013, 17:49
Dear Sir,
    Is it possible to extract data from this script in a format like [kx - ky - DDOS]? It will be very much helpful then.

Thanks
Ramkrishna

Title: Re: K-resolved Device dos
Post by: ramkrishna on November 19, 2013, 19:03
Dear Sir,
    I was trying to extract data by the following command in kdos_plot.py

for k, e in zip(K_A, K_B, T_uu): 
    print K_A,K_B, e

but it is giving an error,

Traceback (most recent call last):
  File "/tmp/4443785749120040.py", line 40, in <module>
    for k, e in zip(K_A, K_B, T_uu): 
ValueError: too many values to unpack

Can you please let me know what will be the right command for this particular script so that I can print in [K_A, K_B, T_uu]??

Thanks
Ramkrishna



Title: Re: K-resolved Device dos
Post by: Anders Blom on November 19, 2013, 21:15
Without knowing if it will work, just from a pure Python perspective, it should be

Code: python
for ka, kb, e in zip(K_A, K_B, T_uu): 
    print ka, kb, e
Title: Re: K-resolved Device dos
Post by: ramkrishna on November 19, 2013, 21:29
Dear Sir,
     It is printing but the presentation is not in a nice format like [ka kb T_uu] (as the one from the transmission Analyzer )so that I can inspect the variation in a specific manner.

[-0.47619048 -0.42857143 -0.38095238 -0.33333333 -0.28571429 -0.23809524
 -0.19047619 -0.14285714 -0.0952381  -0.04761905  0.          0.04761905
  0.0952381   0.14285714  0.19047619  0.23809524  0.28571429  0.33333333
  0.38095238  0.42857143  0.47619048] [-0.47619048 -0.47619048 -0.47619048 -0.47619048 -0.47619048 -0.47619048
 -0.47619048 -0.47619048 -0.47619048 -0.47619048 -0.47619048 -0.47619048
 -0.47619048 -0.47619048 -0.47619048 -0.47619048 -0.47619048 -0.47619048
 -0.47619048 -0.47619048 -0.47619048] [ 0.00743461  0.00587408  0.00423439  0.00312964  0.00248038  0.00210845
  0.00189715  0.00178561  0.00174135  0.00173784  0.001743    0.00173836
  0.00174201  0.00178595  0.0018971   0.00210884  0.00248341  0.00313857
  0.00425135  0.00589493  0.00744511]
[-0.47619048 -0.42857143 -0.38095238 -0.33333333 -0.28571429 -0.23809524
 -0.19047619 -0.14285714 -0.0952381  -0.04761905  0.          0.04761905
  0.0952381   0.14285714  0.19047619  0.23809524  0.28571429  0.33333333
  0.38095238  0.42857143  0.47619048] [-0.42857143 -0.42857143 -0.42857143 -0.42857143 -0.42857143 -0.42857143
 -0.42857143 -0.42857143 -0.42857143 -0.42857143 -0.42857143 -0.42857143
 -0.42857143 -0.42857143 -0.42857143 -0.42857143 -0.42857143 -0.42857143
 -0.42857143 -0.42857143 -0.42857143] [ 0.00587407  0.0048207   0.00361679  0.00273193  0.00218128  0.0018592
  0.00167816  0.0015872   0.00155727  0.00156288  0.00157177  0.00156494
  0.00156034  0.00159003  0.00168055  0.00186343  0.00219283  0.00275768
  0.00365859  0.00486589  0.00589492]
[-0.47619048 -0.42857143 -0.38095238 -0.33333333 -0.28571429 -0.23809524
 -0.19047619 -0.14285714 -0.0952381  -0.04761905  0.          0.04761905
  0.0952381   0.14285714  0.19047619  0.23809524  0.28571429  0.33333333
  0.38095238  0.42857143  0.47619048] [-0.38095238 -0.38095238 -0.38095238 -0.38095238 -0.38095238 -0.38095238
 -0.38095238 -0.38095238 -0.38095238 -0.38095238 -0.38095238 -0.38095238
 -0.38095238 -0.38095238 -0.38095238 -0.38095238 -0.38095238 -0.38095238
 -0.38095238 -0.38095238 -0.38095238] [ 0.00423439  0.00361679  0.00285563  0.00223702  0.00181582  0.00155648
  0.00141041  0.00134205  0.00132772  0.00134342  0.00135656  0.0013474
  0.00133411  0.00134909  0.00141805  0.00156796  0.00183746  0.00227359
  0.00290278  0.00365859  0.00425135]


Thanks
Ramkrishna
Title: Re: K-resolved Device dos
Post by: Anders Blom on November 19, 2013, 22:18
Try

Code: python
nkk = int(numpy.sqrt(n_k))
kk=K_A[0,:][0:nkk]
for ia in range(nkk):
    for ib in range(nkk):
        print kk[ia],kk[ib],T_uu[ia,ib]
Title: Re: K-resolved Device dos
Post by: ramkrishna on November 19, 2013, 22:44
Thanks a lot. It works.

Regards
Ramkrishna
Title: Re: K-resolved Device dos
Post by: ramkrishna on December 5, 2013, 23:37
Dear Sir,
     Does this 'kdos.py' can be used to calculate the k resolved bulk DOS for both spin up and spin down at a particular energy like as done for device DOS??

Thanks
Ramkrishna
Title: Re: K-resolved Device dos
Post by: Anders Blom on December 5, 2013, 23:51
Look at the comment on line 49
Title: Re: K-resolved Device dos
Post by: ramkrishna on December 6, 2013, 02:22
Dear Sir,
     I have checked the script "kdos.py". From line 49, I can understand that the device DOS can be calculated for spin down also. Actually I was asking, is it possible to generate k resolved bulk DOS (obtained from bulk configuration instead of device configuration) from this script? I was trying to modify it by changing deviceConfiguration by Bulkconfiguration in line 7. Now within line 17 to 26 it is calling electrode_fermi_levels. In case of bulk configuration we don't have the electrodes. So, how can we modify this so that we can get k resolved bulk DOS also. It will be very helpful.

Thanks
Ramkrishna
Title: Re: K-resolved Device dos
Post by: kstokbro on December 6, 2013, 14:43
see post:
http://quantumwise.com/forum/index.php?topic=2555.msg11944;topicseen#msg11944
Title: Re: K-resolved Device dos
Post by: cca_rmv on May 23, 2014, 06:44
More on this topic.  I am wondering if there is a way to project k-resolved DOS of a device to specific atoms and their orbitals (preferably both l and m)?
Title: Re: K-resolved Device dos
Post by: Anders Blom on May 26, 2014, 15:32
What do you mean by k-point resolved DOS? Do you mean the LocalDensityOfStates (real-space) or DeviceDensityOfStates, for a particular k-point?
Title: Re: K-resolved Device dos
Post by: cca_rmv on May 28, 2014, 23:34
What I really want is to plot contribution form particular atom in device dos, however in 2D Brillouin zone as function of kx and ky at E=EF.  I was essentially thinking if there is anyway of inserting elements information line 38 i.e, parallel_calculator = NLEngine.ParallelDensityOfStatesCalculator(stdv_energies, stdv_kpoints of above script kdos.py.
Title: Re: K-resolved Device dos
Post by: cca_rmv on August 22, 2018, 04:36
I am trying to use kdos.py with  2015.2 version, but getting error like "ParallelDensityOfStatesCalculator_calculate() takes exactly 7 arguments (6 given)".   Script worked for the older version 13.8.2...  I would appreciate any idea to make this script usable for newer version of atk as well.

Thank you.   
Title: Re: K-resolved Device dos
Post by: Ulrik G. Vej-Hansen on August 22, 2018, 12:38
We no longer support the 2015 versions, please consider upgrading to a more recent version. Please search our documentation for a solution, but it is not guaranteed to work for such an old version.

P.S. The 2015.2 release does not exist, so I believe you made a typo in the version number.
Title: Re: K-resolved Device dos
Post by: cca_rmv on August 22, 2018, 16:12
I agree the version number should be  2015.1 not 2015.2. .  Would you please point me what documents to search, I obviously looked as much as I can find, however so far no luck..
Thank you
Title: Re: K-resolved Device dos
Post by: Ulrik G. Vej-Hansen on August 23, 2018, 09:25
Could you post the script, please? It will make it easier to understand what you are trying to do.
Title: Re: K-resolved Device dos
Post by: cca_rmv on August 23, 2018, 22:31
 I am trying to run kdos.py script posted on August 26, 2013..  see above in the same post.

Title: Re: K-resolved Device dos
Post by: Petr Khomyakov on August 29, 2018, 14:04
Unfortunately, 2013 and 2015 versions of VNL-ATK are no longer supported.
Title: Re: K-resolved Device dos
Post by: cca_rmv on August 31, 2018, 18:37
What is the last version you support? I got the same error with version 2016.3.  I would appreciate if you can help with this error..

Title: Re: K-resolved Device dos
Post by: Petr Khomyakov on September 1, 2018, 20:08
We support 2017.12 and 2018.06. There is one more issue with that script, as it has underscore (private) functions that are not used in newer versions anymore.  I think that instead of k-resolved DOS, you could calculate k-resolved Transmission Spectrum at zero bias for a perfect bulk system in the direction of interest. Transmission Spectrum is proportional to DOS, so that it will give you essentially the same information for making a qualitative analysis and visualization of DOS distribution over the 2D Brillouin zone.