feff85exafs: open source standards for EXAFS analysis

36b429d92ffc266d1abf718a18865c0e?s=47 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.

36b429d92ffc266d1abf718a18865c0e?s=128

Bruce Ravel

August 23, 2015
Tweet

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
  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
  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
  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
  5. Software project Testing platform GitHub site https://github.com/xraypy/feff85exafs DOI: http://dx.doi.org/10.5281/zenodo.20629 5

    / 15 FEFF85EXAFS
  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
  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
  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
  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
  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
  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
  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
  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
  14. Software project Testing platform The full story http://bruceravel.github.io/SCFtests/ DOI: 10.5281/zenodo.21961

    14 / 15 FEFF85EXAFS
  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