QuantumATK Forum

QuantumATK => General Questions and Answers => Topic started by: hsuya on June 22, 2020, 22:16

Title: Comparing DOS contribution from various orbitals
Post by: hsuya on June 22, 2020, 22:16
I want to know that can we compare the contribution of various oritals to DOS. I checked that we can see the s, p, d,f contributions in DOS analyzer however if I want to differentiate between the contribution from s, p, d and f respectively. How to do that?
Title: Re: Comparing DOS contribution from various orbitals
Post by: Troels-Markussen on June 23, 2020, 08:42
Hi,

You need to use the ProjectedDensityOfStates analysis object.
When you in the ProjectedDensityOfStates select projections to be  "Elements and Orbitals" you will get the individual contribution from each orbital. In the case of the p-shell you will get three curves (p_x, p_y, p_z).

Regards,
Troels


Title: Re: Comparing DOS contribution from various orbitals
Post by: hsuya on June 24, 2020, 22:40
Thanks a lot!
Title: Re: Comparing DOS contribution from various orbitals
Post by: hsuya on June 24, 2020, 22:51
I want to create a plot of DOS as shown in the image attached. I am not able to do this using just projected DOS.
It is from the following paper https://www.sciencedirect.com/science/article/abs/pii/S0009261415008404 (https://www.sciencedirect.com/science/article/abs/pii/S0009261415008404). Can you tell how to do it?
Title: Re: Comparing DOS contribution from various orbitals
Post by: Troels-Markussen on June 25, 2020, 10:38
Hi,

The calculations can be run with something like

Code
ProjectOnShellsByElementAndSpin = ProjectionGenerator(atoms=ElementsProjection, l_quantum_numbers=True, spin=UpDownProjection)

projected_density_of_states = ProjectedDensityOfStates(
    configuration=bulk_configuration,
    kpoints=kpoint_grid,
    projections=ProjectOnShellsByElementAndSpin,
    energies=numpy.linspace(-10, 4, 1000)*eV,
    energy_zero_parameter=FermiLevel,
    bands_above_fermi_level=All,
    spectrum_method=TetrahedronMethod,
)

where I defined a new projection generator to project on elements, shells (s, p, d, etc.) and spin up/down.

Regarding the plotting, it will definitely be possible with the upcoming 2020.09 release. There you can rather easily customize plot to e.g. flip the sign of a given curve (in this case the spin-down component). For now, you might need to make the plots yourself by getting each individual pdos using p_xx = projected_density_of_states.evaluate(projection_index=xx), where xx is the index of the specific projection. And the plot the results using pylab or matplotlib.
Title: Re: Comparing DOS contribution from various orbitals
Post by: hsuya on June 26, 2020, 16:53
Okay. Thanks :)