<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>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".</p>
<p>The absorption and emission do seem to be separated in
SRC_broadening/valancebroadening.f by:<br>
</p>
<p>if(ABSORB) then</p>
<p>! ABSORPTION PART:</p>
<p>else</p>
<p>! EMISSION PART:<br>
</p>
<p>endif<br>
</p>
<p>Their seems to be two possible problems though:</p>
<p>1. W is defined as an integer on line 15 of valancebroadening.f
in WIEN2k 24.1 with:<br>
</p>
<p>integer,intent(in) :: w<br>
</p>
<p>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:<br>
</p>
<p>if (W.gt.0.and.W.le.3) then<br>
</p>
<p>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:</p>
<p>implicit real*8 (a-h,o-z)</p>
<p>for when W was read from a file on line 87:<br>
</p>
<p>READ(5,*,END=915,ERR=915)W</p>
<p>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:<br>
</p>
<p> elseif (X(i1).gt.E1) then<br>
gamma=W</p>
<p>Maybe it could be changed to:<br>
</p>
<p> elseif (X(i1).gt.E1) then<br>
gamma=wshift<br>
</p>
<p>Although, there may be another problem where g0 could be
missing. In lorentz.F, you might notice that lines 131-132 have:</p>
<p> elseif (X(i1).gt.E1) then<br>
gamma=g0+W</p>
<p>On page 36 of J. Luitz's dissertation [2], you might have noticed
the table there has<br>
</p>
<p>E1 < E ≤ E0: Γ(E) = Γ0 + W<br>
</p>
<p>Of note, the table in section 8.4.2 in the WIEN2k 23.2 usersguide
[1] has:</p>
<p>line 2: ELNES/<font color="#ff0000">ABS</font>/EMIS/PES Type of
input spectrum<br>
</p>
<p>The modus on line 104 of SRC_broadening/broadening.f has <font
color="#0000ff">ABSORB</font> instead of <font color="#ff0000">ABS</font>.
So, I believe that word got cuttoff when it was put in the
usersguide.<br>
</p>
<p>Regarding (ii), equation 1.82 on page 36 of J. Luitz's
dissertation has:</p>
<p>I1(E) = I0(E) - 1/π*[Γ(E)/(E-Ei)^2 + Γ(E)^2]<br>
</p>
<p>Comparing it to the valancebroadening.f source code:</p>
<p>
yend(i2)=yend(i2)+y(i1)/pi* &<br>
(atan((X(i1)-X(i2)+delta)/gamma) &<br>
-(atan((X(i1)-X(i2)-delta)/gamma)))</p>
<p>It seems like I0(E) might be yend(i2). The Γ the gamma. The E-Ei
the X(i1)-X(i2).<br>
</p>
<p>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 ∞.<br>
</p>
<p>Equation (6.7) in D. Holec's dissertation [4] is:</p>
<p>Ibroadened(E) = Integral{I(E′)*Γ/[π*(E-E')^2+Γ^2]*dE'}</p>
<p>Holec cites [5] for the above equation, which I currently don't
have access to.<br>
</p>
<p>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.<br>
</p>
<p>I haven't come across a paper explaining or deriving where the
delta comes from in the valancebroadening.f source code.<br>
</p>
<p>Not a complete answer, but hopefully it can help a little.<br>
</p>
[1]
<a class="moz-txt-link-freetext" href="http://susi.theochem.tuwien.ac.at/reg_user/textbooks/usersguide.pdf">http://susi.theochem.tuwien.ac.at/reg_user/textbooks/usersguide.pdf</a><br>
[2]
<a class="moz-txt-link-freetext" href="https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=6d2f48c116f16935da4a001154488f3b1f6ffa33">https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=6d2f48c116f16935da4a001154488f3b1f6ffa33</a><br>
[3] <a class="moz-txt-link-freetext" href="https://eprints.gla.ac.uk/32589/1/32589.pdf">https://eprints.gla.ac.uk/32589/1/32589.pdf</a><br>
[4]
<a class="moz-txt-link-freetext" href="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">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</a><br>
[5] <a class="moz-txt-link-freetext" href="https://link.springer.com/book/10.1007/3-540-54162-4">https://link.springer.com/book/10.1007/3-540-54162-4</a><br>
<p>Kind Regards,</p>
Gavin<br>
WIEN2k user<br>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">On 4/19/2025 4:16 PM, Francisco Garcia
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CANk22oRNw2V3VKe0E5NfBtH2tBYwdB+TQ_96Bm97kz8g3h00RQ@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">
<div>
<div>Dear Prof. Blaha,
<p
style="line-height:100%;margin-bottom:0in;background:transparent"><br>
</p>
<p
style="line-height:100%;margin-bottom:0in;background:transparent">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.</p>
<p
style="line-height:100%;margin-bottom:0in;background:transparent"><br>
</p>
<p
style="line-height:100%;margin-bottom:0in;background:transparent">(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?<br>
</p>
<p
style="line-height:100%;margin-bottom:0in;background:transparent"><br>
</p>
<p
style="line-height:100%;margin-bottom:0in;background:transparent">
subroutine
ValenceBroadening(X,Y,yend,w,absorb,istep,wshift,E0,E1,E2,EF,delta,nimax)<br>
!
VALENCE BROADENING : the array y is broadened by
convolution with a Lorentz-function.<br>
! The result
is in array yend. Three different broadening schemes are
available :<br>
! - w=0 : the width of the Lorentz
does not depend on energy<br>
! - w=1 : the width of
the Lorentz varies linearly with energy<br>
! - w=2 :
the width of the Lorentz varies quadratically with energy<br>
!
- w=3 : the width of the Lorentz is given by the scheme
of
Moreau et al.</p>
<p
style="line-height:100%;margin-bottom:0in;background:transparent">.</p>
<p
style="line-height:100%;margin-bottom:0in;background:transparent">.</p>
<p
style="line-height:100%;margin-bottom:0in;background:transparent">.</p>
<p
style="line-height:100%;margin-bottom:0in;background:transparent">!
EMISSION PART: <br>
if(E0.NE.E2) then<br>
if (X(i1).gt.E0) then<br>
gamma=W*(1-((X(i1)-E0)/(EF-E0)))**2<br>
elseif (X(i1).gt.E1) then<br>
gamma=W<br>
else<br>
gamma=W+W*(1-((X(i1)-E2)/(E1-E2)))**2<br>
endif<br>
else<br>
gamma=W*(1-((X(i1)-E0)/(EF-E0)))**2<br>
endif<br>
endif</p>
<p
style="line-height:100%;margin-bottom:0in;background:transparent"><br>
</p>
<p
style="line-height:100%;margin-bottom:0in;background:transparent"><br>
</p>
<p
style="line-height:100%;margin-bottom:0.2in;background:transparent">(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:</p>
<p
style="line-height:100%;margin-bottom:0in;background:transparent">
do i2=1,nimax<br>
<br>
yend(i2)=yend(i2)+y(i1)/pi* &<br>
(atan((X(i1)-X(i2)+delta)/gamma) &<br>
-(atan((X(i1)-X(i2)-delta)/gamma)))<br>
<br>
enddo</p>
<p
style="line-height:100%;margin-bottom:0in;background:transparent"><br>
</p>
<p
style="line-height:100%;margin-bottom:0in;background:transparent">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.</p>
<p
style="line-height:100%;margin-bottom:0in;background:transparent"><br>
</p>
<p
style="line-height:100%;margin-bottom:0in;background:transparent">Thank
you Sir.</p>
<p
style="line-height:100%;margin-bottom:0in;background:transparent"><br>
</p>
<p
style="line-height:100%;margin-bottom:0in;background:transparent">FG</p>
</div>
</div>
</div>
</blockquote>
</body>
</html>