Open zrqustc opened 5 years ago
Wish the developers can add this function to SUMO~ Great codes by the way
Sumo gets the orbital-projected bandstructure for Vasp calculations using this method in Pymatgen: https://pymatgen.org/_modules/pymatgen/electronic_structure/bandstructure.html#BandStructure.get_projections_on_elements_and_orbitals
This seems to sum the data together from different directions before it reaches Sumo. In principle we could replace it with some similar function in Sumo, but it would make more sense to change Pymatgen; either by adding a get_projections_on_elements_and_orbitals_and_directions
or by adding an optional parameter to the existing function which changes the logic and returns all the sub-orbitals. @utf how feasible does that seem?
It should be simple to add the function you suggest to Pymatgen via either method. I prefer the modifying the existing function tbh.
We could then look at implementing this in sumo.
One thing to note is that that what VASP calls the px,py, pz, etc orbits might not be what you are expecting. These labels are only valid for orbitals that are oriented along the x, y and z cartesian directions. So if you have anything other than rocksalt these orbitals will be essentially meaningless for most atoms. You can reorient the cartesian axes so that the orbitals are aligned correctly but for many crystal structures this will only align 1 atom correctly.
Unless you are really careful and know your orbitals are aligned correctly, plotting a band structure with these labels will be pointless.
Thanks for your reply. I think px,py, and pz calculated by projecting the Kohn-Sham wave functions onto spherical harmonics. Please see the PROCAR. The atoms site is the center. So, we just get the weights of orbitals from PROCAR. We can plot the fat bands according to different orbitals of atoms.
Hi @zrqustc, this is correct. But the orientation of the spherical harmonics is determined by the cartesian x, y, and z directions. If bonds between atoms do not fall exactly along the x, y, and z directions the px, py, and pz orbitals will not be aligned along the cartesian axes, so the lm-decomposed orbitals will not capture the orbitals correctly.
A better method would be to use the LOBSTER package, which can rotate the spherical harmonic orbitals for each site to maximize overlap between the projected atomic orbitals and the actual wave functions.
Pymatgen has recently added support for LOBSTER decomposed projected band structures which will be much more robust. For more details see:
For sumo, I would be more inclined to add support for LOBSTER fatbands rather than Vasp lm-decomposed projected band structures (as mentioned in #60).
I made a rough diagram indicating what I mean:
Note this issue will also affect lm-decomposed density of states...
@utf That is great.Thanks for your clarification. Right now, I fully understand what you say. I will think about it. I thought we can directly get the weights from PROCAR. I will take a look at the module you mentioned. Thanks again.
Hi all, I want to plot all the orbitals associated with my materials in the band structure. How to do this? Kindly help.
Thanking you, Subhasmita
Dear developers, I know SUMO can plot projection bands with s,p, d orbitals. How about projections according to px,py,pz ,dxy, dz2 and so on?
Best, Ruiqi