$30 off During Our Annual Pro Sale. View Details »

feff85exafs: open source standards for EXAFS analysis

Bruce Ravel
August 23, 2015

feff85exafs: open source standards for EXAFS analysis

We present recent developments on feff85exafs, a version of feff tailored for EXAFS analysis and released with a license allowing for modification and redistribution. First, we have made capabilities of feff available in the form of libraries which can be compiled against programs written in Fortran or C or bound for use by dynamic languages such as Python or Perl. Second, we have developed a framework wherein aspects of the theory can be examined for their impact on EXAFS data analysis by methodical testing against a curated suite of measured EXAFS data. We demonstrate that the use of self-consistent potentials has scant impact on EXAFS fitting results.

Bruce Ravel

August 23, 2015
Tweet

More Decks by Bruce Ravel

Other Decks in Science

Transcript

  1. Software project Testing platform
    FEFF85EXAFS
    open source theoretical standards for EXAFS
    Bruce Ravel1
    , Matt Newville2
    , Josh Kas3
    , and John Rehr3
    1
    NIST and NSLS-II
    2
    University of Chicago
    3
    University of Washington
    XAFS16
    Karlsruhe, Germany
    24-28, August 2015
    1 / 15
    FEFF85EXAFS

    View Slide

  2. Software project Testing platform
    FEFF85EXAFS
    A while back our friends at The Feff Project made a copy
    of available under terms that allow modification and
    redistribution.
    Yay!
    This version of 8 has functionality for XANES and
    other spectroscopies removed, but retains everything of
    interest to EXAFS – including self-consistent potentials.
    2 / 15
    FEFF85EXAFS
    “ColorfulFireworks” by 久留米市民(Kurume-Shimin) – Own work. Licensed under CC BY-SA 3.0 via Wikimedia Commons
    https://commons.wikimedia.org/wiki/File:ColorfulFireworks.png#/media/File:ColorfulFireworks.png

    View Slide

  3. Software project Testing platform
    FEFF’s flow chart
    Define input
    cluster
    Traditional input:
    feff.inp
    libfeffphases
    Compute potentials
    and phases
    Enumerate
    paths
    libfeffpath
    Compute
    F
    eff
    Traditional output:
    feffNNNN.dat
    Traditional intermediate files:
    paths.dat phase.bin
    1 Define a cluster of atoms in
    Cartesian coordinates and set the
    parameters of the calculation
    2 From the cluster of atoms, compute
    muffin tin potentials and
    photoelectron scattering factors
    3 From the cluster of atoms, find all
    possible scattering geometries
    4 Compute Feff for each scattering
    geometry using the scattering
    factors
    libfeffphases and libfeffpath
    Recast steps 2 and 4 as stand-alone libraries.
    3 / 15
    FEFF85EXAFS

    View Slide

  4. Software project Testing platform
    What we’ve delivered so far
    libfeffphases
    Given a cluster of atoms, compute their photoelectron
    scattering factors
    libfeffpath
    Given scattering factors and the Cartesian coordinates of a
    scattering paths, compute the Feff needed for EXAFS analysis
    direct calculation, no system calls, no parsed files
    Compile your program against these libraries using your favorite
    language – Fortran, C, C++, Python, Perl ... whatever!
    Also:
    Programming documentation
    Unit testing – verify nothing is broken
    Cross-platform, extensible build system
    Clean code – static analysis of the Fortran source and dynamic analysis of
    the C wrapper
    4 / 15
    FEFF85EXAFS

    View Slide

  5. Software project Testing platform
    GitHub site
    https://github.com/xraypy/feff85exafs
    DOI: http://dx.doi.org/10.5281/zenodo.20629
    5 / 15
    FEFF85EXAFS

    View Slide

  6. Software project Testing platform
    Effect of self-consistent potentials
    Here’s a sort of question∗
    we see from time to time on the Ifeffit Mailing
    List:
    I [am] wondering about the availability to use a newer
    version in Demeter. [To] my knowledge ... I can [only] run
    . ... In terms of review of papers, reviewers ask to use a
    newer version instead [of] .
    Let’s use the testing framework to examine the effect of self-consistent
    potentials on EXAFS analysis.
    Conditions of the theory
    1
    2 without self-consistency
    3 with various self-consistency radii
    6 / 15
    FEFF85EXAFS

    Posted 8 June, 2015

    View Slide

  7. Software project Testing platform
    A curated set of standards
    1 Cu metal
    2 NiO
    3 Pyrite, FeS2
    4 BaZrO3
    5 Uraninite, UO2
    6 Hydrated uranyl ion
    7 Bromoadamantane,
    C10H15Br
    Well known structures
    A successful, defensible fitting model is
    known for each material
    We can separate shortcomings of the
    theoretical model from uncertainty due to an
    inadequate model of the local structure.
    Specifically evaluate the effect on the fits of
    changes to the theoretical model.
    7 / 15
    FEFF85EXAFS
    (1) https://github.com/XraySpectroscopy/XAS-Data-Interchange/issues/29
    (2) DOI: 10.1107/S1600577515013521
    (3) https://speakerdeck.com/bruceravel/discussion-of-the-fes2-exafs-analysis-example
    (4) DOI: 10.1016/0921-4526(94)00654-E
    (5) DOI: 10.1021/es0208409 (6) DOI: 10.1016/S0016-7037(02)00947-X (7) unpublished

    View Slide

  8. Software project Testing platform
    NiO
    , no SCF , RSCF=2.5 ˚
    A
    , RSCF=3 ˚
    A , RSCF=4.2 ˚
    A , RSCF=4.7 ˚
    A
    8 / 15
    FEFF85EXAFS
    DOI: 10.1107/S1600577515013521

    View Slide

  9. Software project Testing platform
    NiO, fit results
    Best fit values
    model alpha amp enot ssni ssni2 sso sso2
    feff6 0.000 62(146) 0.71(5) −1.22(54) 0.005 46(56) 0.007 14(95) 0.004 37(120) 0.042 05(3218)
    noSCF 0.000 50(152) 0.68(5) 2.49(56) 0.005 34(58) 0.007 15(101) 0.004 68(131) 0.039 46(2918)
    withSCF(2.5) −0.000 21(148) 0.71(4) −7.34(54) 0.005 54(56) 0.007 26(97) 0.004 68(123) 0.031 46(2038)
    withSCF(3) −0.000 73(145) 0.71(4) −7.95(53) 0.005 55(55) 0.007 15(95) 0.004 56(119) 0.033 68(2237)
    withSCF(3.7) −0.000 68(145) 0.71(4) −7.94(53) 0.005 55(55) 0.007 16(95) 0.004 57(119) 0.033 44(2213)
    withSCF(4.2) −0.000 10(149) 0.71(4) −7.29(55) 0.005 54(56) 0.007 27(98) 0.004 70(124) 0.030 99(1996)
    withSCF(4.7) −0.000 23(148) 0.71(4) −7.31(54) 0.005 54(56) 0.007 25(97) 0.004 66(123) 0.031 67(2060)
    Statistics
    model χ2 χ2
    ν R
    feff6 27430.3658 1347.4609 0.0215
    noSCF 29860.5928 1466.8409 0.0234
    withSCF(2.5) 28069.2584 1378.8452 0.0220
    withSCF(3) 26875.7231 1320.2152 0.0211
    withSCF(3.7) 26950.6671 1323.8967 0.0211
    withSCF(4.2) 28301.4404 1390.2507 0.0222
    withSCF(4.7) 28050.3643 1377.9171 0.0220
    9 / 15
    FEFF85EXAFS
    DOI: 10.1107/S1600577515013521

    View Slide

  10. Software project Testing platform
    UO2
    , no SCF , RSCF=3 ˚
    A
    , RSCF=4 ˚
    A , RSCF=5 ˚
    A , RSCF=6 ˚
    A
    10 / 15
    FEFF85EXAFS
    DOI: 10.1021/es0208409

    View Slide

  11. Software project Testing platform
    UO2, fit results
    Best fit values
    model amp dro dru enot nu ssu sso dro2
    feff6 0.87(11) −0.022(14) 0.005(11) 4.87(136) 11.43(481) 0.004 88(247) 0.009 39(213) −0.055(2
    noSCF 0.84(11) −0.023(15) 0.001(12) 8.15(146) 9.27(416) 0.003 82(273) 0.008 72(221) −0.024(3
    withSCF(3) 0.84(10) −0.026(13) −0.002(11) 1.63(129) 9.21(376) 0.003 93(250) 0.008 94(209) −0.013(2
    withSCF(4) 0.84(10) −0.026(13) −0.003(11) 2.08(130) 9.16(373) 0.003 89(250) 0.008 92(209) −0.013(2
    withSCF(5) 0.84(10) −0.026(13) −0.003(11) 1.72(129) 9.18(373) 0.003 91(249) 0.008 93(208) −0.012(2
    withSCF(5.5) 0.84(10) −0.026(13) −0.003(11) 1.62(129) 9.17(372) 0.003 91(249) 0.008 94(208) −0.012(2
    withSCF(6) 0.84(10) −0.026(13) −0.003(11) 1.71(129) 9.16(372) 0.003 90(249) 0.008 93(208) −0.012(2
    Statistics
    model χ2 χ2
    ν R
    feff6 166.2736 22.0712 0.0160
    noSCF 188.4320 25.0125 0.0181
    withSCF(3) 169.5918 22.5116 0.0163
    withSCF(4) 169.9560 22.5600 0.0163
    withSCF(5) 169.1192 22.4489 0.0163
    withSCF(5.5) 169.1306 22.4504 0.0163
    withSCF(6) 169.2412 22.4651 0.0163
    11 / 15
    FEFF85EXAFS
    DOI: 10.1021/es0208409

    View Slide

  12. Software project Testing platform
    Uranyl in solution
    , no SCF , RSCF=2.5 ˚
    A
    , RSCF=4 ˚
    A , RSCF=5.2 ˚
    A , RSCF=6.8 ˚
    A
    12 / 15
    FEFF85EXAFS
    DOI: 10.1016/S0016-7037(02)00947-X

    View Slide

  13. Software project Testing platform
    Uranyl in solution, fit results
    Best fit values
    model amp deloax deloeq enot sigoax sigoeq
    feff6 0.93(4) 0.035 04(396) −0.042 78(770) 10.63(60) −0.000 07(53) 0.007 26(94)
    noSCF 1.04(6) 0.036 84(523) −0.053 19(975) 11.32(78) 0.000 32(72) 0.006 99(118)
    withSCF(2.5) 1.08(6) 0.041 65(548) −0.044 75(972) 3.45(81) 0.000 74(73) 0.006 92(115)
    withSCF(2.9) 1.08(6) 0.041 72(547) −0.044 85(971) 3.50(81) 0.000 74(73) 0.006 91(115)
    withSCF(4.0) 1.08(6) 0.041 44(545) −0.044 55(969) 3.59(81) 0.000 75(73) 0.006 94(115)
    withSCF(5.2) 1.08(6) 0.041 54(545) −0.044 73(967) 3.66(81) 0.000 74(72) 0.006 93(114)
    withSCF(6.8) 1.08(6) 0.041 63(545) −0.044 78(968) 3.63(81) 0.000 74(72) 0.006 93(114)
    Statistics
    model χ2 χ2
    ν R
    feff6 37.6972 6.0758 0.0027
    noSCF 69.0967 11.1365 0.0049
    withSCF(2.5) 71.0293 11.4480 0.0050
    withSCF(2.9) 70.8935 11.4261 0.0050
    withSCF(4.0) 70.4031 11.3471 0.0050
    withSCF(5.2) 70.2353 11.3200 0.0050
    withSCF(6.8) 70.3635 11.3407 0.0050
    13 / 15
    FEFF85EXAFS
    DOI: 10.1016/S0016-7037(02)00947-X

    View Slide

  14. Software project Testing platform
    The full story
    http://bruceravel.github.io/SCFtests/
    DOI: 10.5281/zenodo.21961
    14 / 15
    FEFF85EXAFS

    View Slide

  15. Software project Testing platform
    The take-away
    Self-consistent potentials have scant effect on EXAFS analysis.
    1 has long used . This is OK.
    2 If using , use a small radius.
    3 For the two f -electron systems I checked, self-consistency improved the
    evaluation of E0. This was not true for any of the other tests.
    Is a reviewer justified in demanding 8 or 9 for EXAFS?
    Nope!
    That said...
    Analysis software will benefit from the software engineering improve-
    ments in .
    15 / 15
    FEFF85EXAFS
    PDF of this talk: https://goo.gl/SWFvhD

    View Slide