Author Topic: k-point labeling problem in ATK and Virtual NanoLab results  (Read 19882 times)

0 Members and 1 Guest are viewing this topic.

Offline Quantamania

  • Heavy QuantumATK user
  • ***
  • Posts: 38
  • Reputation: 0
  • Profoundly deaf and legally blind since birth.
    • View Profile
One of the problems with producing band structures from ATK and Virtual NanoLab is the lack of critical k-point identification.  In other words, the programs cannot label these k-points properly.  There is not much difficulty with how k-points are applied in these programs.

I came across this while working to reproduce an all-electron calculation done on graphite in 1997 by J. C. Botteger in Physical Review B with LDA for exchange correlation and DZDP as the basis set for the carbon atoms.  I wanted to see how close I could get my band structure to resemble this reported band structure, so I played around with the given k-points for the hexagonal Brillouin zone.  Gradually, I managed to do it with excellent agreement between the two samples and now have useful information that might help other users.  My attached picture shows how well I did this, with the top diagram my LDA results and the bottom diagram the literature band structure.

The hexagonal Brillouin zone has six critical k-points.  These are high symmetry k-points that are labeled in reported band structure diagrams (the letters on the bottom of them).  The k-points include Gamma (center of cell), A (center of hexagonal face), M (center of rectangular face), H (vertex of the polyhedron), L (midpoint of an edge joining a hexagonal face with a rectangular face), and finally K (midpoint of an edge joining rectangular faces).

I was able to determine where these k-points are for Virtual NanoLab, so users can more readily reproduce band structures of hexagonal crystals.

Here are the coordinate mappings you should use when attempting this task:

K = (1/3, 1/3, 0)
G = (0, 0, 0)
M = (0, 1/2, 0)
H = (1/3, 1/3, 1/2)
A = (0, 0, 1/2)
L = (0, 1/2, 1/2)

I think that a future version of ATK and Virtual NanoLab should be able to properly label critical k-points, based on the coordinates.  I realized there was a problem when I varied the different coordinates and ended up getting 'Gamma' and 'M' on the endpoints in the band structure diagrams consistently.  That meant I could not trust the program on this, so I had to do the task manually with trial runs on the same material.  Has anyone else decoded other kinds of Brillouin zones (fcc, bcc, simple cubic, and tetragonal) in this manner?  Or do you have any other reflections on the graphite band structure?

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5576
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: k-point labeling problem in ATK and Virtual NanoLab results
« Reply #1 on: April 29, 2009, 09:28 »
I completely agree that this point is weak in VNL, and it will be improved in the next version.

But, as often - NanoLanguage comes to the rescue already now! :-) I have written my own band structure module, which I intend to publish as a tutorial in the near future. It's not 100% ready, but I'd be glad to share it with anyone who wants to test it. Just contact me directly via mail, and I will send a preview copy.

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5576
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: k-point labeling problem in ATK and Virtual NanoLab results
« Reply #2 on: April 29, 2009, 09:39 »
To show the module in action, I have attached the band structure of graphite, generated with the following script:
Code
from ATK.KohnSham import *
from bandstructure import *

route = RouteInBrillouinZone('Hexagonal')
route.setRoute('KGMKHALH')

scf = restoreSelfConsistentCalculation ('graphite.nc')
bs = calculateBandStructure(scf,route,40)

plot_params = {
    'plot_color' : 'b',
    'plot_symbol' : '-',
    'ylabel' : 'Energy (eV)',
    'grid' : True,
    'title' : 'Band structure of graphite',
    'image_filename' : 'graphite_bandstructure.png',
    'ymin' : -20,
    'ymax' : 10,
}

bs.plot(**plot_params)
The calculation was done with DZP and 5x5x5 k-points (just as a demonstration).

Offline Quantamania

  • Heavy QuantumATK user
  • ***
  • Posts: 38
  • Reputation: 0
  • Profoundly deaf and legally blind since birth.
    • View Profile
Re: k-point labeling problem in ATK and Virtual NanoLab results
« Reply #3 on: April 30, 2009, 01:26 »
That plot looks really clean and will definitely help in the future.  I noted that the DZP and low k-point number (I had 20x20x20 in my calculations) placed the K-H line below the Fermi energy level, not the same as the all-electron basis set results.  The DZDP basis set and large k-point numbers helped me replicate that particular plot.  The picture I posted in the opening post was actually used in a doctorate proposal defense that I passed today!  It will be really helpful in making pictures with labels for publications.

Can we look at how it works with other crystal systems, for others who might be working with those structures other than hexagonal crystals, so we can make sure the k-points are being correctly identified?

Thanks very much for replying.

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5576
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
A tutorial/add-on module for band structure calculations based on symmetry labels for the common lattices (not monoclinic...) is being developed. I've sent you a preview by email, enjoy! :)

Offline Quantamania

  • Heavy QuantumATK user
  • ***
  • Posts: 38
  • Reputation: 0
  • Profoundly deaf and legally blind since birth.
    • View Profile
Took a quick glance at the PDF.  I immediately noticed a lack of pictures in it.  I think that we need some in the tutorial PDF to help those who are visually oriented.  We should definitely have pictures for all of the Bravais lattices, as well as their respective Brillouin zones.  Perhaps some diagrams showing just the k-points labeled, and others showing the lines labeled.  I did not notice anything wrong with the labeling of k-points, and you have done well covering the complete set of Bravais lattices.  However, I think we need to discuss cases of low-dimensional situations, such as structures that exhibit less than three-dimensional features (like the pi-stack wire and conducting polymers).  So a section that covers how to handle such cases would be a great addition.  People are already making routine calculations on two-dimensional structures (graphene comes to mind) and in those situations, many k-points and lines from three-dimensional structures merge together or vanish into degeneracy.  I will take a closer look at the prototype when a new one is developed or posted on the forum for everyone to check out.

Offline hellboy

  • Heavy QuantumATK user
  • ***
  • Posts: 47
  • Reputation: 0
    • View Profile
Re: k-point labeling problem in ATK and Virtual NanoLab results
« Reply #6 on: October 2, 2010, 16:14 »
Dear Sir

Where can i find band structure module that could be imported to plot band structures of nanotubes?

regards...

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5576
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: k-point labeling problem in ATK and Virtual NanoLab results
« Reply #7 on: October 2, 2010, 16:30 »
There's no need for an external script, it's built into ATK 10.8 now :)