QuantumATK > Scripts, Tutorials and Applications

Hexagonal plot of transmission coefficients

(1/4) > >>

Anders Blom:
Normally when you plot the k-point resolved transmission, it becomes a square plot of T vs kA and kB (the actual point K=kA*b1+kB*b2 where b1,2 are the reciprocal lattice vectors), because that is how we sample the Brillouin zone.

In the hexagonal case, it is more illustrative to see the plot in the actual Brillouin zone, i.e. as a function of kx,ky in the hexagon. To make that plot is rather challenging because as it turns out, the Monkhorst-Pack regular grid in kA,kB space actually samples points in the 2nd Brillouin zone, which you then have to map back into the first zone. And, there are some tricks needed in matplotlib to get a hexagonal axis plot. But in the end, you can get the attached picture!

The labels K and M have been added afterwards in an image editing program.

The inspiration for this came from PRB 80, 035408 (2009).

Roc2019:
Dear Dr. Blom,

Would you like to update this script for the latest version?   It doesn't work for the 2019.12.sp1 version.

Thank you so much.

Anders Blom:
Minor changes, but a bit tricky because of deprecation of matplotlib.mlab.griddata

Roc2019:
Thank you Dr. Blom for your new script.

It works now. However, a strange pic is printed, as shown in the attachment named "pic".
It seems that the new script doesn't need the transmission sprectum and only reads the band structure?

I just got the band of graphene from input.py and the pic from the new script.

The new script seems only to  print the Fermi surface of CBM or VBM (like the Ferm_ surface.py script in the examples https://docs.quantumatk.com/tutorials/topological_insulator_bi2se3/topological_insulator_bi2se3.html)? not the transmission coefficient?
So, 1 ) Would you like to update the script to plot the transission coefficients in the hexgonal?
2) Would you like to update the script to plot the spin texture  for the newest version 2019.12.sp1?
3) It's great if you can also update the script for calculating the topological invariants

Thank you so much.

Anders Blom:
Ok, I didn't notice the original script was for transmission - it is more outdated than the band structure version because nxplot was deprecated already in Matplotlib 1.3. So, more work to update it. But my main problem is actually that I have no good data to test the plot with, I deleted all old "nc" files a long time ago.

Thus, I made a blind attempt to apply the same changes as for band structure - maybe it works, but if not perhaps you can provide me a test HDF5 file with transmission data to experiment on?

The reason for the strange plot is that  you have computed a usual band structure, from G to K to M etc. For this plot you need to get eigenvalues on a regular k-point mesh around the K point (or in the whole zone). The transmission spectrum already has such data, though. I have attached also a script to generate the input data for the band structure plot.

For the other questions, that is outside my expertise, but I understand you are saying the scripts in the tutorial do not work anymore? That should be considered a "bug" and I can report it to have it fixed.