I need some help with how fill in properly the above mention section with a parser I’m writing.
The LOBSTER code calculates this, however I’m not sure how to fill the data to this section properly. The main issue is that the number_of_lm_atom_projected_dos is not the same for all atoms (for example for W atom I have 5s 6s 5p_y 5p_z 5p_x 5d_xy 5d_yz 5d_z^2 5d_xz 5d_x^2-y^2 and for C only 2s 2p_y 2p_z 2p_x), however several other quantities there assume this is the same for all atoms, for example the shape of atom_projected_dos_values_lm is [number_of_lm_atom_projected_dos, number_of_spin_channels, number_of_atoms, number_of_atom_projected_dos_values].
I’ve come upon this already in the past when I did some work on Wien2k parser. There one can calculate just a selected lm components of selected atoms, so the number_of_lm_atom_projected_dos might not be even consistent for the same atom type.
Right now I see just one option to define all of the projections for every atom. For example here it would be (s, p_y p_z p_x d_xy d_yz d_z^2 d_xz d_x^2-y^2) and just leave the ones which are not actually calculated at zero. This would be OK for LOBSTER because there all projections are calculated implicitly (this is with atomic basis set), so the other projections would be indeed zero. This would not work for the Wien2k though when only some of the projected DOS is calculated because we just don’t know about the others.
Any advice would be appreciated.