Question related to an example of EXAFS fitting using Larch
Dear all, I am learning Larch and read the manual of Larch online. In the "13.8.10. Example 3: Fit 3 datasets with 1 Path" of the webpage https://xraypy.github.io/xraylarch/xafs_feffit.html#example-3-fit-3-datasets..., it shows an example that fitting Cu at different temperatures. Einstein model was used to simulate the sigma2, as shown in the figure below. [image: image.png] However, in some papers (eg. Radiation Physicsand Chemistry137 (2017) 93–98) that model EXAFS at elevated temperatures, they separates the total sigma2 to static and thermo components (Sigma^2 = Sigma_static^2 + Sigma_thermo^2), which is different from the above Larch example. I am a little confused about the utilization of Einstein model. I wonder if the Sigma2 obtained by Einstein model can reflect the total sigma2 or can only reflect the thermo part. Many thanks for your help! Best regards, Harry
Hi Harry,
On Mon, Aug 29, 2022 at 2:43 PM Andy Zhang
Dear all,
I am learning Larch and read the manual of Larch online. In the "13.8.10. Example 3: Fit 3 datasets with 1 Path" of the webpage https://xraypy.github.io/xraylarch/xafs_feffit.html#example-3-fit-3-datasets..., it shows an example that fitting Cu at different temperatures. Einstein model was used to simulate the sigma2, as shown in the figure below.
[image: image.png]
However, in some papers (eg. Radiation Physicsand Chemistry137 (2017) 93–98) that model EXAFS at elevated temperatures, they separates the total sigma2 to static and thermo components (Sigma^2 = Sigma_static^2 + Sigma_thermo^2), which is different from the above Larch example.
I am a little confused about the utilization of Einstein model. I wonder if the Sigma2 obtained by Einstein model can reflect the total sigma2 or can only reflect the thermo part.
The Einstein model is one way to map the effect of sample temperature and a single parameter (Theta, the Einstein temperature, which can be related to bulk thermodynamic properties) to sigma^2 and be applicable to several different XAFS paths that involve the same set of atom types. It won't account for static disorder very well. It is very common to break sigma^2 (which is the mean-square variation in bond lengths) into "static" and "thermal" components. This is convenient but a little bit artificial (or, maybe "a model we often use"). The "static" component will typically reflect the distribution of distances due to differences in crystal structure: say you have a crystal structure with distorted octahadra - the variations in the resulting bond lengths won't be so big that you need to treat them as different scattering paths, but needs to be taken into account, and can be mapped to calling that "static disorder". The "thermal" component would be solely from thermal vibrations and might be modeled with an Einstein model or other models. In the ~femtosecond lifetime of each photo-electron, the neighboring atoms do not move, and the measurement is sampling billions of snapshots of the atomic distances - it is not actually seeing the motion of the atoms. A thermal component to sigma2 can be determined only by measuring at different temperatures. Also: that "static disorder" might change with temperature too, say at a phase transition. With the pedantic lecture sorry!) aside, the static/thermal distinction is definitely useful, and for many materials is a completely valid way to think about sigma2. To add a static disorder term to the thermal component from `sigma2_eins()`, you could add a `sigma2_static` parameter with something like pars = group(amp = param(1, vary=True), del_e0 = guess(2.0), theta = param(250, min=10, vary=True), sigma2_static = guess(0), dr_off = guess(0), alpha = guess(0) ) path1_10 = feffpath('feff0001.dat', s02 = 'amp', e0 = 'del_e0', deltar = 'dr_off + 10*alpha*reff', sigma2 = 'sigma2_static + sigma2_eins(10, theta)') path1_50 = feffpath('feff0001.dat', s02 = 'amp', e0 = 'del_e0', deltar = 'dr_off + 50*alpha*reff', sigma2 = 'sigma2_static + sigma2_eins(50, theta)') path1_150 = feffpath('feff0001.dat', s02 = 'amp', e0 = 'del_e0', deltar = 'dr_off + 150*alpha*reff', sigma2 = 'sigma2_static + sigma2_eins(150, theta)') --Matt
participants (2)
-
Andy Zhang
-
Matt Newville