[Wien] Valence Broadening of Emission Spectrum
Gavin Abo
gabo13279 at gmail.com
Sun Apr 20 13:40:56 CEST 2025
Regarding (i), maybe the programmers tried to use W for the type of
"absorption" broadening (1: linear, 2:Muller, 3: Moreau) and for the
energy dependent broadening parameter for "emission".
The absorption and emission do seem to be separated in
SRC_broadening/valancebroadening.f by:
if(ABSORB) then
! ABSORPTION PART:
else
! EMISSION PART:
endif
Their seems to be two possible problems though:
1. W is defined as an integer on line 15 of valancebroadening.f in
WIEN2k 24.1 with:
integer,intent(in) :: w
2. While restricting W between 1-3 for the "absorption" broadening, it
might an issue to restrict it to be not greater than 3 for the
"emission" broadening on line 31:
if (W.gt.0.and.W.le.3) then
In SRC_lorentz/lorentz.F, there look to be is another implementation of
this broadening. It looks like W there was a real (instead of an
integer) set by line 19:
implicit real*8 (a-h,o-z)
for when W was read from a file on line 87:
READ(5,*,END=915,ERR=915)W
A possibly quick fix might be see if W could be changed to wshift, since
wshift is a real*8. In valancebroadening.f, take for example:
elseif (X(i1).gt.E1) then
gamma=W
Maybe it could be changed to:
elseif (X(i1).gt.E1) then
gamma=wshift
Although, there may be another problem where g0 could be missing. In
lorentz.F, you might notice that lines 131-132 have:
elseif (X(i1).gt.E1) then
gamma=g0+W
On page 36 of J. Luitz's dissertation [2], you might have noticed the
table there has
E1 < E ≤ E0: Γ(E) = Γ0 + W
Of note, the table in section 8.4.2 in the WIEN2k 23.2 usersguide [1] has:
line 2: ELNES/ABS/EMIS/PES Type of input spectrum
The modus on line 104 of SRC_broadening/broadening.f has ABSORB instead
of ABS. So, I believe that word got cuttoff when it was put in the
usersguide.
Regarding (ii), equation 1.82 on page 36 of J. Luitz's dissertation has:
I1(E) = I0(E) - 1/π*[Γ(E)/(E-Ei)^2 + Γ(E)^2]
Comparing it to the valancebroadening.f source code:
yend(i2)=yend(i2)+y(i1)/pi* &
(atan((X(i1)-X(i2)+delta)/gamma) &
-(atan((X(i1)-X(i2)-delta)/gamma)))
It seems like I0(E) might be yend(i2). The Γ the gamma. The E-Ei the
X(i1)-X(i2).
D. A. Eustace et. al. have a paper titled "Probing Magnetic order in
EELS of Chromite Spinels using both Multiple Scattering (FEFF8.2) and
DFT (WIEN2k)" [3]. They have an equation (3) with a definite integral
with lower and upper bounds from -∞ to ∞.
Equation (6.7) in D. Holec's dissertation [4] is:
Ibroadened(E) = Integral{I(E′)*Γ/[π*(E-E')^2+Γ^2]*dE'}
Holec cites [5] for the above equation, which I currently don't have
access to.
Perhaps, the second term in equation 1.82 is missing the integral and an
initial spectrum I(E') for convolution with Lorentzian function. Maybe
the I(E') is y(i1) in the valancebroadening.f source code.
I haven't come across a paper explaining or deriving where the delta
comes from in the valancebroadening.f source code.
Not a complete answer, but hopefully it can help a little.
[1] http://susi.theochem.tuwien.ac.at/reg_user/textbooks/usersguide.pdf
[2]
https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=6d2f48c116f16935da4a001154488f3b1f6ffa33
[3] https://eprints.gla.ac.uk/32589/1/32589.pdf
[4]
https://www.researchgate.net/profile/David-Holec/publication/303383794_Multi-scale_modelling_of_III-nitrides_from_dislocations_to_the_electronic_structure/links/5825f21208aeebc4f8a1e2ea/Multi-scale-modelling-of-III-nitrides-from-dislocations-to-the-electronic-structure.pdf
[5] https://link.springer.com/book/10.1007/3-540-54162-4
Kind Regards,
Gavin
WIEN2k user
On 4/19/2025 4:16 PM, Francisco Garcia wrote:
> Dear Prof. Blaha,
>
>
> I have two questions about the valence band emission spectra
> calculation in the subroutine valencebroadening.f: one question is
> about the usage of the parameter W and the other question is on how
> the Lorenztian convolution is done.
>
>
> (i) I thought W was a flag which determines which flavour of the
> broadening parameter gamma will be used (see the initial comments in
> the subroutine valencebroadening.f below). However, gamma appears to
> be a multiple of W in the emission calculation (please see below),
> which I find very confusing. Any reason(s) why?
>
>
> subroutine
> ValenceBroadening(X,Y,yend,w,absorb,istep,wshift,E0,E1,E2,EF,delta,nimax)
> ! VALENCE BROADENING : the array y is broadened by convolution
> with a Lorentz-function.
> ! The result is in array yend. Three different broadening schemes
> are available :
> ! - w=0 : the width of the Lorentz does not depend on energy
> ! - w=1 : the width of the Lorentz varies linearly with energy
> ! - w=2 : the width of the Lorentz varies quadratically with energy
> ! - w=3 : the width of the Lorentz is given by the scheme of Moreau
> et al.
>
> .
>
> .
>
> .
>
> ! EMISSION PART:
> if(E0.NE.E2) then
> if (X(i1).gt.E0) then
> gamma=W*(1-((X(i1)-E0)/(EF-E0)))**2
> elseif (X(i1).gt.E1) then
> gamma=W
> else
> gamma=W+W*(1-((X(i1)-E2)/(E1-E2)))**2
> endif
> else
> gamma=W*(1-((X(i1)-E0)/(EF-E0)))**2
> endif
> endif
>
>
>
> (ii) My second question is how the convolution of the
> Gaussian-broadened DOS with the Lorentzian was performed. In the
> subroutine valencebroadening.f, the Lorenztian convolution was
> computed as follows after setting gamma:
>
> do i2=1,nimax
>
> yend(i2)=yend(i2)+y(i1)/pi* &
> (atan((X(i1)-X(i2)+delta)/gamma) &
> -(atan((X(i1)-X(i2)-delta)/gamma)))
>
> enddo
>
>
> It appears that an integral in the closed form was used to evaluate
> the convolution. I know that the integral of the Lorenztian can be
> obtained in a closed form: $$\int \frac{\gamma^2}{\pi(x^2+\gamma^2)}
> dx = \frac{\gamma}{\pi}} arctan(x / \gamma)$$. So that seems to be
> part of the explanation. But I am highly interested in how the above
> discretization was obtained from the convolution.
>
>
> Thank you Sir.
>
>
> FG
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://zeus.theochem.tuwien.ac.at/pipermail/wien/attachments/20250420/c3893adf/attachment.htm>
More information about the Wien
mailing list