Author Topic: Script for calculate the bandgap.  (Read 75032 times)

0 Members and 1 Guest are viewing this topic.

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5576
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: Script for calculate the bandgap.
« Reply #15 on: May 25, 2009, 09:13 »
The way the picture looks, this system is metallic and hence there is no band gap. The script assumes a band gap exists; if it doesn't you may indeed get weird results. This is a good example of the importance of not just applying a script like this and trust the results blindly, but one must always investigate the results in detail.

Offline privador

  • Regular QuantumATK user
  • **
  • Posts: 21
  • Reputation: 0
    • View Profile
Re: Script for calculate the bandgap.
« Reply #16 on: May 26, 2009, 00:43 »
Quote
The way the picture looks, this system is metallic and hence there is no band gap. The script assumes a band gap exists; if it doesn't you may indeed get weird results. This is a good example of the importance of not just applying a script like this and trust the results blindly, but one must always investigate the results in detail.
Do u consider any  single line around Fermi level as 0 bandgap?Should it be between "somehing"

Offline Nordland

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 812
  • Reputation: 18
    • View Profile
Re: Script for calculate the bandgap.
« Reply #17 on: May 26, 2009, 07:31 »
Judging from the bandstructure you have plotted, I am sure this is a metallic system per definition. If one fills the energy bands of a material with available electrons and ends up with a top band partly filled then the material is a metal.
The band that twist around the fermi level and hences it is only partly filled. If this material was subjected to a optics study, you would find that  it was a metallic system with intraband absorption.

Offline Nordland

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 812
  • Reputation: 18
    • View Profile
Re: Script for calculate the bandgap.
« Reply #18 on: May 26, 2009, 07:32 »
On a note: Yes - the script I wrote, does assume, that if the system is metallic, it is not caused by a partly filled band.

Offline esp

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 318
  • Country: us
  • Reputation: 3
    • View Profile
    • University of Minnesota
Re: Script for calculate the bandgap.
« Reply #19 on: February 7, 2012, 07:08 »
i tried this script and it gives me an error: cannot find "ATK.KohnSham" library ..

also, what file is the input?  it is not an nc file?


Offline Nordland

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 812
  • Reputation: 18
    • View Profile
Re: Script for calculate the bandgap.
« Reply #20 on: February 7, 2012, 09:45 »
This script is very old :) at least 2008.10 very old :)

This script does not work in the newer version of ATK. I think there is another way for getting the bandgap somewhere on the forum. Let me look.

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5576
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: Script for calculate the bandgap.
« Reply #21 on: February 7, 2012, 10:25 »
You can try the script in http://quantumwise.com/forum/index.php?topic=1013.0 instead, although I generally warn against treating the calculation of the band gap as a black box - you have to inspect the band structure and make sure you ask for the right thing. Ideally you should use the DOS with a dense enough k-point sampling, and then get the gap from there. If on the other hand you want the specific gap at a particular k-point, you can use a very simple approach:
Code: python
import sys
b = nlread(sys.argv[1], BulkConfiguration)[0]
t = Bandstructure(b, route=['G','G'], points_per_segment=2)
vbmax_ix = numpy.where(t.evaluate()[0]<=0.*eV)[0][-1]
cbmin_ix = numpy.where(t.evaluate()[0]>=0.*eV)[0][0]
bandgap = t.evaluate()[0][cbmin_ix]-t.evaluate()[0][vbmax_ix]
print "Direct band gap at Gamma point", bandgap
Save as bandgap.py and use as "atkpython bandgap.py file.nc", assuming the first BulkConfiguration in the NC file is the relevant one (else modify the script as needed). This is for the Gamma point, but if you want another k-point just change the route.

Offline esp

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 318
  • Country: us
  • Reputation: 3
    • View Profile
    • University of Minnesota
Re: Script for calculate the bandgap.
« Reply #22 on: February 7, 2012, 19:15 »
Thank you

Offline esp

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 318
  • Country: us
  • Reputation: 3
    • View Profile
    • University of Minnesota
Re: Script for calculate the bandgap.
« Reply #23 on: February 21, 2012, 10:34 »
i am working with degenerately doped regions and need the bandgap, and distance from Ec and Ev to Ef ... how can I do this?  I don't see information on how the bandstructure object is constructed ..

i see a conversion of 1 HArtree to 27.211396132 eV .. is there a way to do this in atk automatically?  i need the fermi level in eV
« Last Edit: February 21, 2012, 10:48 by esp »

Offline Nordland

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 812
  • Reputation: 18
    • View Profile
Re: Script for calculate the bandgap.
« Reply #24 on: February 21, 2012, 12:46 »
There is several options.


If you have an energy E, you can write:

# Convert the energy E to a float.
print E.inUnitsOf(eV)

# Conver the energy E to another unit.
print E.convertTo(eV)

Offline esp

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 318
  • Country: us
  • Reputation: 3
    • View Profile
    • University of Minnesota
Re: Script for calculate the bandgap.
« Reply #25 on: February 26, 2012, 02:25 »
I could really use a solution to my question above about Ec, Ev, Ef calculations .. any ideas?

Offline Nordland

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 812
  • Reputation: 18
    • View Profile
Re: Script for calculate the bandgap.
« Reply #26 on: February 26, 2012, 14:06 »
All you need is to find the band gap of your graphene 1d systems?

Offline esp

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 318
  • Country: us
  • Reputation: 3
    • View Profile
    • University of Minnesota
Re: Script for calculate the bandgap.
« Reply #27 on: February 26, 2012, 21:11 »
No, I need the bandgap, and Ec and Ev (or distance from Ef) for heavily doped (n+/p+) graphene regions ... the scripts i have seen so far assume no doping and do not give Ec and Ev, only bandgap

Offline esp

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 318
  • Country: us
  • Reputation: 3
    • View Profile
    • University of Minnesota
Re: Script for calculate the bandgap.
« Reply #28 on: February 26, 2012, 21:14 »
what i need to do is this:  given a bandstructure, i want to programmatically set the bias voltages for transmission calcs, ... i cannot arbitrarily set bias to say 0.4V because when making a TFET i need to line up the band correctly for maximum current ... since transmission calcs take a whole day to complete, i need to speed up the time by selecting the bias window properly .. the only way to do that is by knowing the Ec and Ev values beforehand, then setting the bias appropriately ... if calcs were fast enough i could just run many biases, but they take so long i cannot be productive without some technique to speed things up .. this is the idea

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5576
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: Script for calculate the bandgap.
« Reply #29 on: February 26, 2012, 21:22 »
But if you are able to compute the band gap Eg=Ec-Ev then by definition you know Ec and Ev - otherwise you wouldn't be able to subtract them. So look in the script for Eg, and you're sure to have Ec and Ev.