XSPECTRA A Tool for X-ray Absorption Spectroscopy...

93
XSPECTRA A Tool for X-ray Absorption Spectroscopy Calculations Oana Bun˘ au School on Numerical Methods for Materials Science Related to Renewable Energy Applications Trieste 28th November 2012 , 1/62

Transcript of XSPECTRA A Tool for X-ray Absorption Spectroscopy...

  • XSPECTRAA Tool for X-ray Absorption Spectroscopy

    Calculations

    Oana Bunău

    School on Numerical Methods for Materials Science Related to Renewable EnergyApplications

    Trieste28th November 2012

    , 1/62

  • XAS is a probe of the empty states projected on theabsorbing atom

    σ(ω) = 4π2α~ω∑j

    ∑f ,g

    |〈f |Ô|g〉|2 δ (~ω − (Ef − Eg ))

    , 1/62

  • About XSPECTRA

    Scope: provides interpretation of XAS spectra

    within the single particle approximation

    near edge XAS @ K and L1 edges with linear polarization

    distributed within the Quantum Espresso package

    free (GNU licence)

    Please acknowledge:

    C. Gougoussis, M. Calandra, A. P. Seitsonen, and F. Mauri in Phys. Rev.B 80, 075102 (2009)

    P. Giannozzi et al. in J. Phys. Condens. Matter 21, 395502 (2009)

    M. Taillefumier, D. Cabaret, A. M. Flank, F. Mauri in Phys. Rev. B 66,195107 (2002)

    , 2/62

  • 1 The PAW theory

    2 The Lanczos algorithm

    3 Hands on XSPECTRA

    4 Examples

    5 Summary

    , 3/62

  • 1 The PAW theory

    2 The Lanczos algorithm

    3 Hands on XSPECTRA

    4 Examples

    5 Summary

    , 4/62

  • The PAW methodWe need to reconstruct the all electron states

    Both the probed states |f 〉 and the core level |g〉 are all electron statesWith pseudopotentials we normally get pseudo states.

    To reconstruct the all electron ones, use:

    The projector augmented wave method PAW

    All electron Pseudo

    |Ψ〉 mapping←−−−→ |Ψ̃〉

    P. E. Blochl, Phys. Rev. B 50, 17953 (1994)

    , 5/62

  • The PAW methodP. E. Blochl in Phys. Rev. B 50, 17953 (1994)

    |Ψ〉 = T |Ψ̃〉 T is linearT 6= 1̂ in the core (augmentation) region only

    T̂ = 1̂ +∑

    R TR = 1̂ +∑

    R (|ΦRn〉 − |Φ̃Rn〉)〈p̃Rn|

    R the coordinates of nuclei

    |ΦRn〉 the all electron partial waves|Φ̃Rn〉 the pseudo partial waves

    The PAW projectors |p̃Rn〉 are defined as:

    〈p̃Rn|Φ̃R′n′〉 = δRR′δnn′ inside0 outside the augmentation region

    , 6/62

  • The PAW methodP. E. Blochl in Phys. Rev. B 50, 17953 (1994)

    |Ψ〉 = T |Ψ̃〉 T is linearT 6= 1̂ in the core (augmentation) region only

    T̂ = 1̂ +∑

    R TR = 1̂ +∑

    R (|ΦRn〉 − |Φ̃Rn〉)〈p̃Rn|

    R the coordinates of nuclei

    |ΦRn〉 the all electron partial waves|Φ̃Rn〉 the pseudo partial waves

    The PAW projectors |p̃Rn〉 are defined as:

    〈p̃Rn|Φ̃R′n′〉 = δRR′δnn′ inside0 outside the augmentation region

    , 6/62

  • PAW for XASM. Taillefumier et al. in Phys. Rev. B 66, 195107 (2002)

    By using |f 〉 = T |f̃ 〉 and the localization of |g〉:

    σ(ω) = 4π2α~ω∑j

    ∑f ,g

    |〈f̃ |Φ̃R0〉|2 δ (~ω − (Ef − Eg ))

    where |Φ̃R0〉 =∑

    n |p̃nR0〉〈φnR0 |Ô|g〉

    |g〉 the all electron initial (core) level, without hole|φnR0〉 the all electron partial waves, localized on the absorberÔ = � · r + 12 (� · r)(k · r) the transition operator|p̃nR0〉 the PAW projectorsR0 the position of the absorbing atom

    , 7/62

  • PAW for XASM. Taillefumier et al. in Phys. Rev. B 66, 195107 (2002)

    |Φ̃R0〉 =∑n

    |p̃nR0〉〈φnR0 |Ô|g〉

    The sum runs over a complete set ⇔ infinite number of projectors

    In practice a finite number of projectors is enough.

    1 projector/channel (l)

    generally yields wrong intensitieswrong dipole/quadrupole ratio

    2 projectors/channel (l)

    correct intensities in the near edge region (≈ 50 eV above the edge,in most of the cases)need to be linearly independent (i.e. ⇔ span a 2×2 subspace)

    To simulate the extended edge (EXAFS) more projectors are needed, butthen you might want to use another method

    , 8/62

  • 1 The PAW theory

    2 The Lanczos algorithm

    3 Hands on XSPECTRA

    4 Examples

    5 Summary

    , 9/62

  • The sum over the empty states

    σ(ω) = 4π2α~ω∑j

    ∑f ,g

    |〈f̃ |Φ̃R0〉|2 δ (~ω − (Ef − Eg ))

    The direct sum over the empty states f is very expensive.

    Instead, re-write (δ → 0):

    σ(ω) = 4πα~ω∑j

    ∑g

    |〈Φ̃R0 |Im(H̃ − Eg − ~ω − iδ)−1|Φ̃R0〉|2

    with H̃ = T †HT the pseudo-Hamiltonian

    Solve by using the Lanczos algorithm and the continued fraction.

    Advantage: the empty states are not calculated explicitly. The sum overempty states depends on the occupied bands only.

    , 10/62

  • The sum over the empty states

    σ(ω) = 4π2α~ω∑j

    ∑f ,g

    |〈f̃ |Φ̃R0〉|2 δ (~ω − (Ef − Eg ))

    The direct sum over the empty states f is very expensive.

    Instead, re-write (δ → 0):

    σ(ω) = 4πα~ω∑j

    ∑g

    |〈Φ̃R0 |Im(H̃ − Eg − ~ω − iδ)−1|Φ̃R0〉|2

    with H̃ = T †HT the pseudo-Hamiltonian

    Solve by using the Lanczos algorithm and the continued fraction.

    Advantage: the empty states are not calculated explicitly. The sum overempty states depends on the occupied bands only.

    , 10/62

  • The Lanczos algorithm and the continued fraction

    M(E ) = 〈Φ̃R0 |Im(H̃ − E − iδ)−1|Φ̃R0〉 = ? (E = Eg + ~ω)

    Scope: Calculate without brute force diagonalization

    1. Use the Lanczos recursive algorithm to bring H̃ in a tridiagonal form.2. Use the continued fraction to evaluate the matrix element above.

    See more in:C. Lanczos in J. Res. Natl. Bur. Stand. 45, 255 (1950)C. Lanczos in J. Res. Natl. Bur. Stand. 49, 33 (1952)R. Haydock, V. Heine and M. Kelly in J. Phys C 5, 2845 (1972)M. Taillefumier, D. Cabaret, A. M. Flank, F. Mauri in Phys. Rev. B 66, 195107(2002)B. Walker and R. Gebauer in J. Chem. Phys 127 164106 (2007)C. Gougoussis, M. Calandra, A. P. Seitsonen, and F. Mauri in Phys. Rev. B 80,075102 (2009)

    , 11/62

  • The Lanczos algorithm and the continued fraction

    M(E ) = 〈Φ̃R0 |Im(H̃ − E − iδ)−1|Φ̃R0〉 = ? (E = Eg + ~ω)

    Scope: Calculate without brute force diagonalization

    1. Use the Lanczos recursive algorithm to bring H̃ in a tridiagonal form.2. Use the continued fraction to evaluate the matrix element above.

    The Lanczos basis {|ui 〉}:

    |u0〉 =|Φ̃R0〉√〈Φ̃R0 |Φ̃R0〉

    H̃|ui 〉 = ai |ui 〉+ bi+1|ui+1〉+ bi |ui−1〉

    H̃ =

    a0 b1 0 0 0b1 a1 b2 0 00 b2 a2 b3 0

    0 0 b3. . .

    . . .

    0 0. . .

    . . .. . .

    , 11/62

  • The Lanczos algorithm and the continued fraction

    M(E ) = 〈Φ̃R0 |Im(H̃ − E − iδ)−1|Φ̃R0〉 = ? (E = Eg + ~ω)

    Scope: Calculate without brute force diagonalization

    1. Use the Lanczos recursive algorithm to bring H̃ in a tridiagonal form.2. Use the continued fraction to evaluate the matrix element above.

    The Lanczos basis {|ui 〉}:

    |u0〉 =|Φ̃R0〉√〈Φ̃R0 |Φ̃R0〉

    H̃|ui 〉 = ai |ui 〉+ bi+1|ui+1〉+ bi |ui−1〉

    M(E ) =〈Φ̃R0 |Φ̃R0〉

    a0 − E − iδ −b21

    a1−E−iδ−b22

    ...

    , 11/62

  • Lanczos within XSPECTRASome useful input parameters

    M(E ) =〈Φ̃R0 |Φ̃R0〉

    a0 − E − iδ −b21

    a1−E−iδ−b22

    a2−E−iδ−b23···

    will eventually converge when the Lanczos space is large enough.

    Related keywords:

    xniter = maximum number of iterations (maximum dimension of theLanczos basis)

    xerror = convergence threshold on the integral of the XAS crosssection

    xcheck conv = number of iteration between two convergence checks

    xgamma = Lorentzian broadening (related to the core-hole lifetime)

    , 12/62

  • Lanczos within XSPECTRASome useful input parameters

    M(E ) =〈Φ̃R0 |Φ̃R0〉

    a0 − E − iδ − b21

    a1−E−iδ−b22

    a2−E−iδ−b23···

    will eventually converge when the Lanczos space is large enough.

    Related keywords:

    xsave = save file storing the Lanczos a and b parameters

    terminator = .true. imposes the use of a terminator ⇔(ai , bi ) = (aN , bN) for i > N, allowing an analytical form of thecontinued fraction

    The convergence depends strongly on the broadening parameter

    , 12/62

  • Case of multiple absorbers

    If the unit cell contains several absorbers: σtot =∑

    j σj

    If two or more equivalent atoms, calculate one of them and infer thecross section of the peers by using group theory ( see C. Brouder in J.Phys.: Condens. Matter 2 70138, 1990)

    If two or more non-equivalent atoms of the absorbing species, you needto run as many calculations (pw + XSPECTRA) as the number ofnon-equivalent atoms.Mind the core-level shift (see S. Gao et al. in Phys. Rev. B 77 115122,2008).

    , 13/62

  • Case of multiple absorbers

    If the unit cell contains several absorbers: σtot =∑

    j σj

    If two or more equivalent atoms, calculate one of them and infer thecross section of the peers by using group theory ( see C. Brouder in J.Phys.: Condens. Matter 2 70138, 1990)

    If two or more non-equivalent atoms of the absorbing species, you needto run as many calculations (pw + XSPECTRA) as the number ofnon-equivalent atoms.Mind the core-level shift (see S. Gao et al. in Phys. Rev. B 77 115122,2008).

    , 13/62

  • 1 The PAW theory

    2 The Lanczos algorithm

    3 Hands on XSPECTRAPrepare the GIPAW pseudopotentialsExtracting the core wavefunctionPrepare the (supercell) SCF input fileRun a SCF calculationRun XSPECTRA

    4 ExamplesC K edge in diamondSi K edge in SiO2Ni K edge in NiO

    5 Summary

    , 14/62

  • cp -r $WORKSHOP/Tutorial XSpectra /scratch/cd /scratch/Tutorial XSpectra/

    Directory structure:

    ./input/ input files for the examples

    ./outdir/ tmp output

    ./pseudo/ pseudopotentials for this tutorialthe script upf2plotcore.sh

    ./Gipaw pseudo generation/ input files necessary to generate GIPAWpseudopotentials with and without a core-hole

    ./solutions/ reference outputs for the files in ./input/

    ./References/ relevant papers, the .pdf of these lecturesmanual page INPUT XSPECTRA

    , 15/62

  • cp -r $WORKSHOP/Tutorial XSpectra /scratch/cd /scratch/Tutorial XSpectra/

    Directory structure:

    ./input/ input files for the examples

    ./outdir/ tmp output

    ./pseudo/ pseudopotentials for this tutorialthe script upf2plotcore.sh

    ./Gipaw pseudo generation/ input files necessary to generate GIPAWpseudopotentials with and without a core-hole

    ./solutions/ reference outputs for the files in ./input/

    ./References/ relevant papers, the .pdf of these lecturesmanual page INPUT XSPECTRA

    , 15/62

  • Steps to run XSPECTRA

    1 Prepare the GIPAW pseudopotentials2 Extract the core wavefunction ./upf2plotcore.sh pseudo.UPF3 Prepare the (supercell) SCF input file4 Run a SCF calculation: pw.x < prefix.scf.in > prefix.scf.out5 Run XSPECTRA: xspectra.x < prefix.xspectra.in > prefix.xspectra.out

    , 16/62

  • 1 The PAW theory

    2 The Lanczos algorithm

    3 Hands on XSPECTRAPrepare the GIPAW pseudopotentialsExtracting the core wavefunctionPrepare the (supercell) SCF input fileRun a SCF calculationRun XSPECTRA

    4 ExamplesC K edge in diamondSi K edge in SiO2Ni K edge in NiO

    5 Summary

    , 17/62

  • GIPAWGauge independent PAW pseudopotential

    The GIPAW pseudopotential includes all the reconstruction informationneeded to run XSPECTRA

    needed for the absorbing atom only (non-absorbing atoms acceptany kind of pseudopotential)

    contains the following information on the absorbing atom:

    the core wavefunction without holethe all electron atomic statesthe Blochl projectors

    can be obtained with the atomic code ld1.x

    , 18/62

  • Exercise: Generate a C GIPAW in order to calculate the dipolarcontribution at the C K edge in diamond

    Projector 1st projector 2nd projectorchannel energy energy

    optional s 2s 3smandatory p 2p 3p

    Remember that a minimum of 2 projectors/channel is needed !!

    , 19/62

  • Generating GIPAW pseudopotentialNo core hole

    File ./Gipaw Pseudo Generation/C.ld1.in

    &input

    title=’C’, ! atomic symbol

    prefix=’C’, ! prefix

    zed=6.0, ! atomic number

    config=’1s2 2s2 2p1.5 3s0 3p0’, ! atomic configuration

    iswitch=3,

    dft=’PBE’, ! xc functional

    rel=1

    /

    ........

    ”!” marks the beginning of a comment

    , 20/62

  • Generating GIPAW pseudopotentialNo core hole

    File ./Gipaw Pseudo Generation/C.ld1.in

    &input

    title=’C’, ! atomic symbol

    prefix=’C’, ! prefix

    zed=6.0, ! atomic number

    config=’1s2 2s2 2p1.5 3s0 3p0’, ! atomic configuration

    iswitch=3,

    dft=’PBE’, ! xc functional

    rel=1

    /

    ........

    Atomic configuration of the isolated atom.In the case of C needs a bit of ionization.Since we want to generate projectors at the 2s, 2p, 3s, 3p energies thesestates need to be included.

    , 20/62

  • Generating GIPAW pseudopotentialNo core hole

    File ./Gipaw Pseudo Generation/C.ld1.in

    &input

    title=’C’, ! atomic symbol

    prefix=’C’, ! prefix

    zed=6.0, ! atomic number

    config=’1s2 2s2 2p1.5 3s0 3p0’, ! atomic configuration

    iswitch=3,

    dft=’PBE’, ! xc functional

    rel=1

    /

    ........

    Exchange correlation functional.Must be the same for all the atoms.

    , 20/62

  • Generating GIPAW pseudopotentialNo core hole

    File ./Gipaw Pseudo Generation/C.ld1.in

    &input

    title=’C’, ! atomic symbol

    prefix=’C’, ! prefix

    zed=6.0, ! atomic number

    config=’1s2 2s2 2p1.5 3s0 3p0’, ! atomic configuration

    iswitch=3,

    dft=’PBE’, ! xc functional

    rel=1

    /

    ........

    Defaults.No need to touch

    , 20/62

  • Generating GIPAW pseudopotentialWith hole

    File ./Gipaw Pseudo Generation/C/Ch.ld1.in

    &input

    title=’Ch’, ! atomic symbol

    prefix=’C’, ! prefix

    zed=6.0, ! atomic number

    config=’1s1 2s2 2p1.5 3s0 3p0’, ! atomic configuration

    iswitch=3,

    dft=’PBE’, ! xc functional

    rel=1

    /

    ........

    Keep the same atomic number and put the hole on the 1s state.You can of course define fractional holes (e.g. 1s0.5) but use with care !!

    , 21/62

  • Generating GIPAW pseudopotentialWith hole

    File ./Gipaw Pseudo Generation/Ch.ld1.in

    ........

    &inputp

    file pseudopw=’C.star1s-pbemt gipaw.UPF’,

    pseudotype=2 ! type of pseudopotential

    lloc=1, ! angular momentum of

    ! the local channel

    tm=.true., ! Trouiller-Martins pseudization

    lgipaw reconstruction=.true., ! include GIPAW information

    /

    ........

    , 22/62

  • Generating GIPAW pseudopotentialWith hole

    File ./Gipaw Pseudo Generation/Ch.ld1.in

    ........

    &inputp

    file pseudopw=’C.star1s-pbemt gipaw.UPF’,

    pseudotype=2 ! type of pseudopotential

    lloc=1, ! angular momentum of

    ! the local channel

    tm=.true., ! Trouiller-Martins pseudization

    lgipaw reconstruction=.true., ! include GIPAW information

    /

    ........

    2 for norm conserving3 for ultrasoft

    , 22/62

  • Generating GIPAW pseudopotentialWith hole

    File ./Gipaw Pseudo Generation/Ch.ld1.in

    ........

    &inputp

    file pseudopw=’C.star1s-pbemt gipaw.UPF’,

    pseudotype=2 ! type of pseudopotential

    lloc=1, ! angular momentum of

    ! the local channel

    tm=.true., ! Trouiller-Martins pseudization

    lgipaw reconstruction=.true., ! include GIPAW information

    /

    ........

    This flag is needed to insert GIPAW reconstruction information

    , 22/62

  • Generating GIPAW pseudopotentialWith hole

    File ./Gipaw Pseudo Generation/Ch.ld1.in

    ........

    2 ! number of states

    2S 1 0 2.0 0 1.5 1.5 ! standard C valence states for

    2P 2 1 1.5 0 1.5 1.5 ! pseudization

    &test

    /

    4 ! number of projectors

    2S 1 0 2.0 0 1.5 1.5 ! list of projectors

    2P 2 1 1.5 0 1.5 1.5

    3S 2 0 0.0 0 1.5 1.5

    3P 3 1 0.0 0 1.5 1.5

    EOF

    , 23/62

  • Generating GIPAW pseudopotentialAvailability

    Now run:

    ld1.x < C.ld1x.in > C.ld1x.out

    ld1.x < Ch.ld1x.in > Ch.ld1x.out

    to get C.pbe-mt gipaw.UPF and C.star1s.pbe-mt gipaw.UPF pp files

    About the notation system:

    starNs = core-hole in the Ns state

    PBE = the exchange correlation functional

    gipaw = contains GIPAW information

    Some GIPAW pseudopotentials are already available in the QuantumEspresso pseudopotential table, e.g. Ni.star1s-pbe-sp-mt gipaw.UPF

    If not, you may find pslibrary on www.qe-forge.org useful. Add thereconstruction information (gipaw flag + list of projectors) to the existingld1 inputs and generate your own GIPAW pseudopotentials.

    , 24/62

  • Generating GIPAW pseudopotentialAvailability

    Now run:

    ld1.x < C.ld1x.in > C.ld1x.out

    ld1.x < Ch.ld1x.in > Ch.ld1x.out

    to get C.pbe-mt gipaw.UPF and C.star1s.pbe-mt gipaw.UPF pp files

    About the notation system:

    starNs = core-hole in the Ns state

    PBE = the exchange correlation functional

    gipaw = contains GIPAW information

    Some GIPAW pseudopotentials are already available in the QuantumEspresso pseudopotential table, e.g. Ni.star1s-pbe-sp-mt gipaw.UPF

    If not, you may find pslibrary on www.qe-forge.org useful. Add thereconstruction information (gipaw flag + list of projectors) to the existingld1 inputs and generate your own GIPAW pseudopotentials.

    , 24/62

  • 1 The PAW theory

    2 The Lanczos algorithm

    3 Hands on XSPECTRAPrepare the GIPAW pseudopotentialsExtracting the core wavefunctionPrepare the (supercell) SCF input fileRun a SCF calculationRun XSPECTRA

    4 ExamplesC K edge in diamondSi K edge in SiO2Ni K edge in NiO

    5 Summary

    , 25/62

  • Extracting the core wavefunction

    The core wavefunction without hole can be obtained with the ld1.x codeby performing an all electron calculation on the isolated atom.

    Alternatively, if you have a GIPAW pseudopotential without core hole youcan use the script upf2plotcore.sh

    ./upf2plotcore.sh C.pbemt gipaw.UPF > C.wfc

    → C.wfc is needed by XSPECTRA→ a copy of upf2plotcore.sh is saved in ./pseudo

    , 26/62

  • 1 The PAW theory

    2 The Lanczos algorithm

    3 Hands on XSPECTRAPrepare the GIPAW pseudopotentialsExtracting the core wavefunctionPrepare the (supercell) SCF input fileRun a SCF calculationRun XSPECTRA

    4 ExamplesC K edge in diamondSi K edge in SiO2Ni K edge in NiO

    5 Summary

    , 27/62

  • Generating the SCF inputsCalculations with core hole require a supercell

    1 use the GIPAW pseudopotentials with core hole for each atom of theabsorbing species

    , 28/62

  • Generating the SCF inputsCalculations with core hole require a supercell

    1 use the GIPAW pseudopotentials with core hole for each atom of theabsorbing species

    2 build a supercell to eliminate spurious interaction between thecore-hole and its periodic images

    3 increase gradually the supercell’s dimension until convergence isachieved

    Typically 6 to 7 Å are needed between the core hole and its images

    , 28/62

  • 1 The PAW theory

    2 The Lanczos algorithm

    3 Hands on XSPECTRAPrepare the GIPAW pseudopotentialsExtracting the core wavefunctionPrepare the (supercell) SCF input fileRun a SCF calculationRun XSPECTRA

    4 ExamplesC K edge in diamondSi K edge in SiO2Ni K edge in NiO

    5 Summary

    , 29/62

  • Electronic structure generation

    File ./Diamond/diamondh.scf.in

    &control

    calculation=’scf’,

    pseudo dir = ’$PSEUDO_DIR/’,

    outdir=’$TMP DIR/’,

    prefix=’diamondh’,

    /

    ..........

    Flag to be specified when performing the electronic structure calculation

    , 30/62

  • Electronic structure generationFile ./input/diamondh.scf.in

    ..........

    &system

    ibrav = 1, ! type of Bravais lattice

    celldm(1) = 6.740256, ! cell parameter

    nat=8, ! number of atoms

    ntyp=2, ! number of atom types

    nbnd=16, ! number of bands

    tot charge = 1, ! charge of the cell

    ecutwfc=40.0, ! cutoff energy

    /

    ..........

    , 31/62

  • Electronic structure generation

    File ./input/diamondh.scf.in

    ..........

    &system

    ibrav = 1, ! type of Bravais lattice

    celldm(1) = 6.740256, ! cell parameter

    nat=8, ! number of atoms

    ntyp=2, ! number of atom types

    nbnd=16, ! number of bands

    tot charge = 1, ! charge of the cell

    ecutwfc=40.0, ! cutoff energy

    /

    ..........

    8 atom supercellThe total charge of the cluster needs to be specified when the core holeis present, to compensate for the extra electron in the empty states.

    , 31/62

  • Electronic structure generation

    File ./input/diamondh.scf.in

    ..........

    &system

    ibrav = 1, ! type of Bravais lattice

    celldm(1) = 6.740256, ! cell parameter

    nat=8, ! number of atoms

    ntyp=2, ! number of atom types

    nbnd=16, ! number of bands

    tot charge = 1, ! charge of the cell

    ecutwfc=40.0, ! cutoff energy

    /

    ..........

    The absorbing atom needs to be considered different from the other Catoms. The core hole breaks the symmetry of the crystal.

    , 31/62

  • Electronic structure generation

    File ./Diamond/diamondh.scf.in

    ........

    ATOMIC SPECIES

    C h 12.0 Ch PBE TM 2pj.UPF

    C 12.0 C PBE TM 2pj.UPF

    ATOMIC POSITIONS crystal

    C h 0.0 0.0 0.0

    C 0.0 0.5 0.5

    C 0.5 0.0 0.5

    C 0.5 0.5 0.0

    C 0.75 0.75 0.25

    C 0.75 0.25 0.75

    C 0.25 0.75 0.75

    C 0.25 0.25 0.25

    K POINTS automatic

    4 4 4 0 0 0

    EOF

    , 32/62

  • 1 The PAW theory

    2 The Lanczos algorithm

    3 Hands on XSPECTRAPrepare the GIPAW pseudopotentialsExtracting the core wavefunctionPrepare the (supercell) SCF input fileRun a SCF calculationRun XSPECTRA

    4 ExamplesC K edge in diamondSi K edge in SiO2Ni K edge in NiO

    5 Summary

    , 33/62

  • XSPECTRA input file

    File ./input/diamondh.xspectra.in

    &input xspectra

    calculation=’xanes dipole’, ! type of calculation

    prefix=’diamondh’,

    outdir=’$TMP DIR/’,

    xepsilon(1)=1.0; xepsilon(2)=0.0, ! polarization

    xepsilon(3)=0.0; xcoordcrys=.true. ! polarization

    xiabs=1, ! type of the absorber

    ef r=$FERMI LEVEL, ! Fermi energy in Ry

    /

    ........

    , 34/62

  • XSPECTRA input file

    File ./input/diamondh.xspectra.in

    &input xspectra

    calculation=’xanes dipole’, ! type of calculation

    prefix=’diamondh’,

    outdir=’$TMP DIR/’,

    xepsilon(1)=1.0; xepsilon(2)=0.0, ! polarization

    xepsilon(3)=0.0; xcoordcrys=.true. ! polarization

    xiabs=1, ! type of the absorber

    ef r=$FERMI LEVEL, ! Fermi energy in Ry

    /

    ........

    ’xanes dipole’,’xanes quadrupole’If ’xanes quadrupole’, both ~� and ~k need to be specified

    , 34/62

  • XSPECTRA input file

    File ./input/diamondh.xspectra.in

    &input xspectra

    calculation=’xanes dipole’, ! type of calculation

    prefix=’diamondh’,

    outdir=’$TMP DIR/’,

    xepsilon(1)=1.0; xepsilon(2)=0.0, ! polarization

    xepsilon(3)=0.0; xcoordcrys=.true. ! polarization

    xiabs=1, ! type of the absorber

    ef r=$FERMI LEVEL, ! Fermi energy in Ry

    /

    ........

    Same as for the SCF calculationThe Fermi energy, or LUMO, must be taken from the previous step.Alternatively, it can be calculated in XSPECTRA by settingcalculation=’fermi level’ (insulating case only)

    , 34/62

  • XSPECTRA input file

    File ./input/diamondh.xspectra.in

    &input xspectra

    calculation=’xanes dipole’, ! type of calculation

    prefix=’diamondh’,

    outdir=’$TMP DIR/’,

    xepsilon(1)=1.0; xepsilon(2)=0.0, ! polarization

    xepsilon(3)=0.0; xcoordcrys=.true. ! polarization

    xiabs=1, ! type of the absorber

    ef r=$FERMI LEVEL, ! Fermi energy in Ry

    /

    ........

    Projections of the polarization vectorxcoordcrys=.true. ⇒ crystal basexcoordcrys=.false. ⇒ cartesian

    , 34/62

  • XSPECTRA input file

    File ./input/diamondh.xspectra.in

    &input xspectra

    calculation=’xanes dipole’, ! type of calculation

    prefix=’diamondh’,

    outdir=’$TMP DIR/’,

    xepsilon(1)=1.0; xepsilon(2)=0.0, ! polarization

    xepsilon(3)=0.0; xcoordcrys=.true. ! polarization

    xiabs=1, ! type of the absorber

    ef r=$FERMI LEVEL, ! Fermi energy in Ry

    /

    ........

    Rank of the absorbing atom under ATOMIC SPECIES in the electronicstructure calculation input.

    , 34/62

  • XSPECTRA input fileParameters controlling the Lanczos process

    File ./input/diamond.xspectra.in

    &input xspectra

    x save file=’diamondh.xspectra.sav’,

    xerror=0.001,

    xniter=1000,

    xcheck conv=50,

    xonly plot=.false.

    /

    ........

    See explanations on slide no. 12Use xonly plot=.true. to replot spectra from a previous run(stored in the .sav file)

    , 35/62

  • XSPECTRA input fileParameters for the plot

    File ./input/diamondh.xspectra.in

    ..........

    &plot

    xnepoint=300, ! number of energy points

    xgamma=0.8, ! core hole linewidth in eV

    xemin=-10.0, ! energy min in eV

    xemax=30.0, ! energy max in eV

    terminator=.true., ! use a terminator for Lanczos (faster!)

    cut occ states=.true., ! treatment of occupied states

    /

    .......

    The cut occ states flag controls whether transition below the Fermi levelare considered or not in calculating the cross section.Only cut occ states=.true. has a physical meaning

    , 36/62

  • XSPECTRA input fileParameters for the plot

    File ./input/diamondh.xspectra.in

    ..........

    &pseudos

    filecore=’C.wfc’, ! the core wfc

    r paw(1)=3.2, ! PAW radius for l=1 channel

    /

    &cut occ

    cut desmooth=0.1,

    /

    4 4 4 0 0 0

    EOF

    , 37/62

  • XSPECTRA input fileParameters for the plot

    File ./input/diamondh.xspectra.in

    ..........

    &pseudos

    filecore=’C.wfc’, ! the core wfc

    r paw(1)=3.2, ! PAW radius for l=1 channel

    /

    &cut occ

    cut desmooth=0.1,

    /

    4 4 4 0 0 0

    EOF

    Obtained at the previous step with ./upf2plotcore.sh.

    , 37/62

  • XSPECTRA input fileParameters for the plot

    File ./input/diamondh.xspectra.in

    ..........

    &pseudos

    filecore=’C.wfc’, ! the core wfc

    r paw(1)=3.2, ! PAW radius for l=1 channel

    /

    &cut occ

    cut desmooth=0.1,

    /

    4 4 4 0 0 0

    EOF

    Radius of the augmentation regionA good choice in general is rpaw = 1.5*rcut with rcut the cutoff radius inthe norm conserving generationDecrease if projectors are linearly dependentDo not touch if in doubt...

    , 37/62

  • XSPECTRA input fileParameters for the plot

    File ./input/diamondh.xspectra.in

    ..........

    &pseudos

    filecore=’C.wfc’, ! the core wfc

    r paw(1)=3.2, ! PAW radius for l=1 channel

    /

    &cut occ

    cut desmooth=0.1,

    /

    4 4 4 0 0 0

    EOF

    Parameters specifying how to cut smoothly the occupied states (if metal).Full explanation in Ch. Brouder, M. Alouani, K.H. Bennemann in Phys.Rev. B 54 7334 (1996)Accurate but time-consuming. Alternative: use xgamma=0.1 andconvolute as post-process.

    , 37/62

  • XSPECTRA input fileParameters for the plot

    File ./input/diamondh.xspectra.in

    ..........

    &pseudos

    filecore=’C.wfc’, ! the core wfc

    r paw(1)=3.2, ! PAW radius for l=1 channel

    /

    &cut occ

    cut desmooth=0.1,

    /

    4 4 4 0 0 0

    EOF

    The k point sampling is not necessarily the same as in the SCF run.

    , 37/62

  • XSPECTRA output files

    prefix.xspectra.out is the talkative file containing information aboutthe run

    prefix.xspectra.dat contains the XAS spectrum and can be visualizedwith usual plotting tools (gnuplot, xmgrace)

    prefix.xspectra.sav is the save file, containing information on theLanczos process (a and b vectors)

    , 38/62

  • XSPECTRA output files

    prefix.xspectra.out is the talkative file containing information aboutthe run

    prefix.xspectra.dat contains the XAS spectrum and can be visualizedwith usual plotting tools (gnuplot, xmgrace)

    prefix.xspectra.sav is the save file, containing information on theLanczos process (a and b vectors)

    # final state angular momentum: 1

    # broadening parameter (in eV): 0.1

    # absorbing atom type: 1

    # Energy (eV) sigma

    -10.00000000 0.00219117

    -9.88988989 0.00229325

    -9.77977978 0.00240286

    , 38/62

  • XSPECTRA output files

    prefix.xspectra.out is the talkative file containing information aboutthe run

    prefix.xspectra.dat contains the XAS spectrum and can be visualizedwith usual plotting tools (gnuplot, xmgrace)

    prefix.xspectra.sav is the save file, containing information on theLanczos process (a and b vectors)

    Keep the save file if you want to:

    resume a previously interrupted run

    replot spectrum with different

    broadeningenergy range

    , 38/62

  • 1 The PAW theory

    2 The Lanczos algorithm

    3 Hands on XSPECTRA

    4 ExamplesC K edge in diamondSi K edge in SiO2Ni K edge in NiO

    5 Summary

    , 39/62

  • The effect of the core holeC K edge in diamond

    Task 1 Apply the previous steps to obtain the spectra with and withoutcore hole, at the C K edge in diamond.

    What you’ve already done:generate GIPAW pseudopotentials for C, with and without core holegenerate the core wavefunction without hole C.wfc

    What you need to do now:1. Make sure that the C.wfc and C*UPF are in the right directory2. Make sure you have the correct paths in *.scf.in and *.xspectra.in3. Run the SCF calculation:

    pw.x < diamond.scf.in > diamond.scf.outpw.x < diamondh.scf.in > diamondh.scf.out

    4. Run the XAS calculation:xspectra.x < diamond.xspectra.in > diamond.xspectra.outxspectra.x < diamondh.xspectra.in > diamondh.xspectra.out

    What can you tell about the importance of the core hole ?, 40/62

  • The effect of the core holeC K edge in diamond

    0.00

    0.05

    0.10

    0.15

    0.20

    -5 0 5 10 15 20 25 30

    XA

    S (

    u.a

    .)

    Energy (eV)

    C K edge in diamond

    with core holeno hole

    The effect of the core hole is huge.

    It is usually the case when the Fermilevel lies in the same band probed bythe XAS.

    What happens when you increase the size of the supercell ?

    , 41/62

  • Increasing the size of the supercell

    Task 21. Write the SCF input for a larger supercell.2. Perform a XSPECTRA calculation with core hole on this newstructure.

    For instance, double the 8 atom supercell in one of the directions⇓

    16 atoms.

    Check your input with xcrysden –pwi prefix.scf.in

    For the sake of comparison, keep a k point sampling equivalent to theone of the 8 atom supercell, both for SCF and XAS calculations.

    Precaution For accurate calculations always choose supercells that obeythe symmetry of the crystal. In this case, the 2×2×2 instead of the2×2×1

    , 42/62

  • Increasing the size of the supercell

    8 atoms supercell

    ibrav = 1,

    nat=8,

    celldm(1) = 6.740256,

    celldm(2) = 1,

    celldm(3) = 1,

    K POINTS automatic

    4 4 4 0 0 0

    16 atoms supercell

    ibrav = 8,

    nat=16,

    celldm(1) = 6.740256,

    celldm(2) = 1,

    celldm(3) = 2

    K POINTS automatic

    4 4 2 0 0 0

    , 43/62

  • Increasing the size of the supercell

    from M. Taillefumier et al.

    Phys. Rev. B 66, 195107 (2002)

    + The appropriate treatment ofthe core hole requires thesolution of the two bodyproblem (Bethe Salpeterequation), but this is veryexpensive.

    + Usually taking into account thecore hole self-consistently is areasonable approximation.

    , 44/62

  • C K edge in diamond

    Choose one of the two cases (with or without hole).

    Task 31. Add another projector to the l = 1 channel.2. Re-run the SCF and XAS calculations.3. Check the linear dependence of the projectors (see *xspectra.out)

    Task 4 Eliminate one of the projectors for the l = 0 channel. Whathappens ?

    Task 5 Calculate the dipolar spectrum for another polarization direction,e.g. (123), and compare to the (100). Use the 8 atom supercell.

    , 45/62

  • Number of projectorsC K edge in diamond

    0.00

    0.05

    0.10

    -5 0 5 10 15 20 25 30

    XA

    S (

    u.a

    .)

    Energy (eV)

    C K edge in diamond

    3 proj l=12 proj l=1

    This is a typical example where 3 projectors / l=1 channel are needed.

    Adding a projector will never shift the positions of peaks in the spectra,at most it affects intensities.

    Projectors for the l=0 channel are not important @ K edges.

    , 46/62

  • Polarization effectsTensor formalism

    + The XAS of non cubic samples depends on the orientation of thepolarization.

    + The absorption tensor of the crystal obeys the symmetry of thespace group

    + The atomic absorption tensors obey the specific point groupsymmetry

    Cubic (e.g. diamond):

    σ =

    σ0 0 00 σ0 00 0 σ0

    Hexagonal (e.g. SiO2):

    σ =

    σ|| 0 00 σ|| 00 0 σ⊥

    for dipolar E1-E1 transitions only !

    , 47/62

  • Polarization effectsTensor formalism

    + The XAS of non cubic samples depends on the orientation of thepolarization.

    + The absorption tensor of the crystal obeys the symmetry of thespace group

    + The atomic absorption tensors obey the specific point groupsymmetry

    (�∗x �∗y �∗z )

    σxx σxy σxzσyx σyy σyzσzx σzy σzz

    �∗x�∗y�∗z

    , 47/62

  • 1 The PAW theory

    2 The Lanczos algorithm

    3 Hands on XSPECTRAPrepare the GIPAW pseudopotentialsExtracting the core wavefunctionPrepare the (supercell) SCF input fileRun a SCF calculationRun XSPECTRA

    4 ExamplesC K edge in diamondSi K edge in SiO2Ni K edge in NiO

    5 Summary

    , 48/62

  • Si K edge in SiO2Linear dichroism

    Task 6 Calculate the spectra for in plane (σ||) and out of plane (σ⊥)polarizations.

    1. ./upf2plotcore.sh Si PBE TM 2pj.UPF > Si.wfc2. pw.x < SiO2.scf.in > SiO2.scf.out3. xspectra.x < SiO2.xspectra plane.in > SiO2.xspectra plane.out4. xspectra.x < SiO2.xspectra c.in > SiO2.xspectra c.out

    Task 7 Check that the spectra are invariant for any � ⊥ Oz

    Task 8 Try to restart the Lanczos from a previously interrupted run (fileSiO2.xspectra restart 1.in). Check the manual page(./References/INPUT XSPECTRA.txt) for more information.

    1. Use the time limit keyword to interrupt a run2. Use restart mode = ’restart’ to resume3. Check the output *.out

    , 49/62

  • Si K edge in SiO2Linear dichroism

    0.0000

    0.0025

    0.0050

    0.0075

    -5 0 5 10 15 20 25 30 35 40

    XA

    S (

    u.a

    .)

    Energy (eV)

    Si K edge in SiO2

    in planeout of plane

    The dipolar spectrum for a given polarization direction can be expressed as alinear combination of these two elementary spectra.

    The dipolar spectrum for a powder: σiso =σ100+σ010+σ001

    3

    , 50/62

  • Si K edge in SiO2Converged results

    C. Gougoussis et al. in Phys. Rev. B 80, 075102 (2009)

    , 51/62

  • 1 The PAW theory

    2 The Lanczos algorithm

    3 Hands on XSPECTRAPrepare the GIPAW pseudopotentialsExtracting the core wavefunctionPrepare the (supercell) SCF input fileRun a SCF calculationRun XSPECTRA

    4 ExamplesC K edge in diamondSi K edge in SiO2Ni K edge in NiO

    5 Summary

    , 52/62

  • Ni K edge in NiOThe magnetic primitive cell

    File ./input/NiO.scf.in:

    &system

    ibrav = 5, celldm(1) =9.67155, celldm(4)=0.8333333333,

    starting magnetization(1)=1.0, starting magnetization(2)=-1.0,

    tot magnetization = 0

    /

    ATOMIC SPECIES

    Ni 58.6934 Ni PBE TM 2pj.UPF

    B 58.6934 Ni PBE TM 2pj.UPF

    O 15.9994 O PBE TM.UPF

    ATOMIC POSITIONS crystal

    Ni 0.0000000000 0.0000000000 0.0000000000

    B -.5000000000 1.5000000000 -.5000000000

    O 0.7500000000 -.2500000000 -.2500000000

    O -.7500000000 0.2500000000 0.2500000000

    The magnetic primitive cell contains two Ni atoms AF-coupled., 53/62

  • Ni K edge in NiODipolar E1-E1 and quadrupolar E2-E2 contributions

    Task 10 Calculate the dipolar and quadrupolar contributions to thespectra for one of the absorbing Ni.

    1. ./upf2plotcore.sh Ni PBE TM 2pj.UPF > Ni.wfc2. pw.x < NiO.scf.in > NiO.scf.out3. xspectra.x < NiO.xspectra fermi.in > NiO.xspectra fermi.out4. xspectra.x < NiO.xspectra dip.in > NiO.xspectra dip.out5. xspectra.x < NiO.xspectra qua.in > NiO.xspectra qua.out

    , 54/62

  • Ni K edge in NiODipolar E1-E1 and quadrupolar E2-E2 contributions

    0.0000

    0.0005

    0.0010

    0.0015

    0.0020

    0.0025

    0.0030

    0 5 10 15 20

    XA

    S (

    u.a

    .)

    Energy (eV)

    Ni K edge in NiO

    quadrupole x 15dipole

    Dipolar contribution always dominates, due to the higher overlap withthe 1s radial function.

    , 55/62

  • Ni K edge in NiOSpin resolved signal

    Plot the up and down contributions to the spectra.File NiO *.dat:

    # final state angular momentum: 1

    # broadening parameter (in eV): 0.900000000000

    # absorbing atom type: 1

    # Energy (eV) sigmatot sigmaup sigmadown

    -10.00000000 0.00001279 0.00000644 0.00000635

    -9.89966555 0.00001289 0.00000649 0.00000640

    -9.79933110 0.00001298 0.00000654 0.00000645

    -9.69899666 0.00001308 0.00000659 0.00000650

    , 56/62

  • Ni K edge in NiOSpin resolved signal

    0

    4

    8

    12

    16

    0 5 10 15 20

    XA

    S (

    u.a

    .)

    Energy (eV)

    Ni K edge in NiO

    dipole E1-E1

    updown

    0.0

    0.5

    1.0

    1.5

    2.0

    -2 0 2 4 6 8 10 12 14

    XA

    S (

    u.a

    .)

    Energy (eV)

    Ni K edge in NiO

    quadrupole E2-E2

    updown

    , 57/62

  • Ni K edge in NiOSpin resolved signal

    Task 11 Calculate the second Ni atom and compare with the first one.

    Hint: use xiabs = 2 in NiO.xspectra-qua.in

    , 58/62

  • Ni K edge in NiOSpin resolved signal

    Task 11 Calculate the second Ni atom and compare with the first one.

    Hint: use xiabs = 2 in NiO.xspectra-qua.in

    0.0

    0.5

    1.0

    1.5

    2.0

    -2 0 2 4 6 8 10 12 14

    XA

    S (

    u.a

    .)

    Energy (eV)

    Ni K edge in NiO

    Up states in

    quadrupole E2-E2

    transitions

    Ni1 upNi2 up

    Ni1 ↑ = Ni2 ↓Ni1 ↓ = Ni2 ↑

    +Ni1 ≡ Ni2

    Calculating only one of the two Ni is enough, since they are symmetry related(time reversal symmetry)

    , 58/62

  • Ni K edge in NiOSpin resolved signal

    Task 11 Calculate the second Ni atom and compare with the first one.

    Hint: use xiabs = 2 in NiO.xspectra-qua.in

    0.0

    0.5

    1.0

    1.5

    2.0

    -2 0 2 4 6 8 10 12 14

    XA

    S (

    u.a

    .)

    Energy (eV)

    Ni K edge in NiO

    Up states in

    quadrupole E2-E2

    transitions

    Ni1 upNi2 up

    Ni1 ↑ = Ni2 ↓Ni1 ↓ = Ni2 ↑

    +Ni1 ≡ Ni2

    Task 12 Turn the antiferromagnet into a feeble ferrimagnet.

    Hint: Lower the accuracy in the SCF run (pedagogical purpose only).Check what happens.

    , 58/62

  • 1 The PAW theory

    2 The Lanczos algorithm

    3 Hands on XSPECTRA

    4 Examples

    5 Summary

    , 59/62

  • XSPECTRA features

    calculates K and L1 edges (dipole E1-E1 and quadrupole E2-E2 withlinear polarization)

    supports all standard DFT functionals available in QuantumEspresso (PZ,PBE,PZ+U,PBE+U)

    supports both ultrasoft and norm conserving pseudopotentials

    the pseudopotential of the absorbing species must containinformation on the core states (GIPAW)

    the all electron reconstruction is performed within GIPAW

    the summation over the empty states is done using a Lanczosalgorithm and a continued fraction approach

    a supercell is needed to model the core hole

    Not yet supported:

    spin-orbit coupling

    circular polarization

    hybrid functionals

    , 60/62

  • XSPECTRA features

    calculates K and L1 edges (dipole E1-E1 and quadrupole E2-E2 withlinear polarization)

    supports all standard DFT functionals available in QuantumEspresso (PZ,PBE,PZ+U,PBE+U)

    supports both ultrasoft and norm conserving pseudopotentials

    the pseudopotential of the absorbing species must containinformation on the core states (GIPAW)

    the all electron reconstruction is performed within GIPAW

    the summation over the empty states is done using a Lanczosalgorithm and a continued fraction approach

    a supercell is needed to model the core hole

    Not yet supported:

    spin-orbit coupling

    circular polarization

    hybrid functionals

    , 60/62

  • History

    First implementation of XAS calculation using the PAW method belongsto M. Taillefumier, D. Cabaret, A. M. Flank, F. Mauri in Phys. Rev. B66, 195107 (2002).

    norm conserving

    dipolar E1-E1 transitions

    The method was improved and ported in Quantum Espresso by C.Gougoussis, M. Calandra, A. P. Seitsonen, and F. Mauri in Phys. Rev. B80, 075102 (2009).

    norm conserving and ultrasoft pseudopotentials

    dipolar E1-E1 and quadrupolar E2-E2 transitions

    supports DFT+U

    Please cite these works if you use XSPECTRA results in yourpublications, as well as P. Giannozzi et al. in J. Phys. Condens. Matter21, 395502 (2009)

    , 61/62

  • Please feel free to contact me: bunau at unizar.es

    , 62/62

    The PAW theoryThe Lanczos algorithmHands on XSPECTRAPrepare the GIPAW pseudopotentialsExtracting the core wavefunctionPrepare the (supercell) SCF input fileRun a SCF calculationRun XSPECTRA

    ExamplesC K edge in diamondSi K edge in SiO2Ni K edge in NiO

    Summary