Author Topic: How to obtain DOS from a subband  (Read 5071 times)

0 Members and 1 Guest are viewing this topic.

Offline kaypu

  • QuantumATK Guru
  • ****
  • Posts: 135
  • Country: 00
  • Reputation: 1
    • View Profile
How to obtain DOS from a subband
« on: May 6, 2013, 04:36 »
Dear QuantumWise staff:

     The bandstructure of zigzag graphene nanoribbons(n=12)is shown in the attachment. there are three subbands in the  energy region of [0eV, 2eV].
      i want to get the DOS of a specified subband in the energy region of [0eV, 2eV](red arrow or blue arrow )
how to compile the script in atk 2012.8.2?
« Last Edit: May 6, 2013, 04:43 by kaypu »

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5418
  • Country: dk
  • Reputation: 89
    • View Profile
    • QuantumATK at Synopsys
Re: How to obtain DOS from a subband
« Reply #1 on: May 8, 2013, 14:14 »
This is a bit difficult, however in your case which is one-dimensional you can compute the DOS from the E-k relationship.

I actually had an old script for that, so I dusted it off and adapted it for band projection. Attached is the module script as well as an example of how to use it, and with an example of a CNT (4,4) band structure projected onto bands 31 and 32 (the two bands closest to the Fermi level).

(For those keeping track, this is very similar to the code in http://quantumwise.com/forum/index.php?topic=261.msg1512.)

UPDATED with a slightly modified script for better energy range selection.
« Last Edit: May 13, 2013, 11:22 by Anders Blom »

Offline kaypu

  • QuantumATK Guru
  • ****
  • Posts: 135
  • Country: 00
  • Reputation: 1
    • View Profile
Re: How to obtain DOS from a subband
« Reply #2 on: May 9, 2013, 14:21 »
Thank you professor Anders, but i still don't know how to run the script

Please forgive my ignorance.

i run the script of "dos1_use",  something wrong with it :
**************
Traceback (most recent call last):
  File "c:\users\kaypu\appdata\local\temp\0897743753502428.py", line 4, in <module>
    from dos1d import DOS1D, plotDOS
ImportError: No module named dos1d
*******************
should i put the scripts 'dos1d' and 'dos1_use' in the same folder? i don't know how to do

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5418
  • Country: dk
  • Reputation: 89
    • View Profile
    • QuantumATK at Synopsys
Re: How to obtain DOS from a subband
« Reply #3 on: May 9, 2013, 22:42 »
In ATK 12.8 (and earlier), when you run scripts from the Job Manager in VNL, the scripts are not executed in the folder they reside, but in TEMP. Therefore this kind of script needs to be run from the command line. In 13.8, things will improve, I hope. So you should run
Code
atkpython dos1d_use.py
in the directory where your NC file is and where dos1d.py is.

Offline kaypu

  • QuantumATK Guru
  • ****
  • Posts: 135
  • Country: 00
  • Reputation: 1
    • View Profile
Re: How to obtain DOS from a subband
« Reply #4 on: May 10, 2013, 03:34 »
thank you professro Anders
it works, but another problem comes up

Traceback (most recent call last):
  File "dos1d_use.py", line 15, in <module>
    dos = DOS1D(configuration,num_k_points)
  File "C:\Users\kaypu\Desktop\dos1d.py", line 28, in __init__
    self._bandstructure = Bandstructure(configuration,kpoints=self._kpoints)
TypeError: __init__() got an unexpected keyword argument 'kpoints'

what'wrong with it (scripts attached)
« Last Edit: May 10, 2013, 03:36 by kaypu »

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5418
  • Country: dk
  • Reputation: 89
    • View Profile
    • QuantumATK at Synopsys
Re: How to obtain DOS from a subband
« Reply #5 on: May 10, 2013, 09:28 »
The script requires ATK 12.8.

Offline kaypu

  • QuantumATK Guru
  • ****
  • Posts: 135
  • Country: 00
  • Reputation: 1
    • View Profile
Re: How to obtain DOS from a subband
« Reply #6 on: May 13, 2013, 09:00 »
thank you professor Anders

the script works, but the results are not satisfactory.

i have calculated the bandstructure of ZGNRs (n=12) and marked the subbands with band index in the attachment.

the Dos of 24 and 25 bands is shown in the attachment, for ZGNRS the sharp peak will appear near the fermi. but  there are no dos near the fermi level, why?

the script of dos1d.py has not been modified. the modified dos1d_use.py is in the attachment

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5418
  • Country: dk
  • Reputation: 89
    • View Profile
    • QuantumATK at Synopsys
Re: How to obtain DOS from a subband
« Reply #7 on: May 13, 2013, 09:31 »
You should use the broadened versions of the DOS, the "raw" data that you present is just input for that.

Why no DOS at the Fermi level? You have two bands merging at E=0 and creating a large DOS.

Offline kaypu

  • QuantumATK Guru
  • ****
  • Posts: 135
  • Country: 00
  • Reputation: 1
    • View Profile
Re: How to obtain DOS from a subband
« Reply #8 on: May 13, 2013, 10:46 »
thank you professor,
another question:
the total DOS of ZGNRs(n=12) is shown in the attachment, there is a sharp peak near 1.5eV, which is mainly from subband (band index=25), but the projecting subband in 25.png is not shown, why?

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5418
  • Country: dk
  • Reputation: 89
    • View Profile
    • QuantumATK at Synopsys
Re: How to obtain DOS from a subband
« Reply #9 on: May 13, 2013, 10:56 »
As clearly shown in your first graph the peak at 1.5 is caused by the bottom of band 26 and has nothing to do with band 25.

There is however something a bit wrong with the selection of the energy range, it should automatically give 0 to about 2.4 eV for the lowest conduction band, but it seems cut off at 1.8 eV. I'll have a look at that.

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5418
  • Country: dk
  • Reputation: 89
    • View Profile
    • QuantumATK at Synopsys
Re: How to obtain DOS from a subband
« Reply #10 on: May 13, 2013, 11:19 »
I made a small update to better select the energy range automatically. The file in the original post has been modified.

Attached is my picture of band 25 for ZGNR-12.
« Last Edit: May 13, 2013, 11:23 by Anders Blom »

Offline kaypu

  • QuantumATK Guru
  • ****
  • Posts: 135
  • Country: 00
  • Reputation: 1
    • View Profile
Re: How to obtain DOS from a subband
« Reply #11 on: May 13, 2013, 13:13 »
thank you  professor Anders