atomic form factor in PDFGetX2 and PDFGetX3 for high Z elements

141 views
Skip to first unread message

stefan....@gmail.com

unread,
Oct 13, 2016, 5:36:19 PM10/13/16
to diffpy-users
   Hi All,
recently I founded that the atomic form factor for Hf calculated by PDFGetX2 is significantly different compared with values calculated on the base of the Waasmaier and Kirfel values. I did my own calculation using my short matlab script. I also used a third side program periodictable 1.4.1 package implemented in python. Using this python package I have got the same results as for my matlab script. I attach a figure comparing outputs from PDFGetX2 and my script for a few various elements. It seems that differences become significant for elements above Z>60. I know that PDFGetX2 is not supported anymore. I want to ask how the atomic form factors are calculated in PDFGetX3? Is PDFGetX3 using the same routine for atomic form factor calculations as PDFGetX2? If yes, then it would be worthy to understand this differences. I think there are still some users of PDFGetX2 (me as well) who would like to know where the problem is. 
   Best Regards,
   Stefan
  
   Stefan Michalik
   PDRA at I12
   Diamond Light Source Ltd
   Didcot Oxfordshire OX11 0DE


  
f0_comparison.tif

Stefan Michalik

unread,
Oct 14, 2016, 4:50:29 AM10/14/16
to diffpy...@googlegroups.com
   Dear All,
I have found the explanation of my observation. I supposed when terms 'userf1' and 'userf2' are 0.000 then PDFGetX2 calculates the atomic form factor f0(Q) not corrected for dispersion terms. This is not true. PDFgetX2 calculates the atomic form factor f(Q,E) defined as f(Q,E0)= f0(Q) + f1(E) + if2(E), where f1 and f2 are energy dependent dispersion terms.. When I include dispersion terms in my calculation then I get very similar results as PDFgetX2.
  Best Regards,
  Stefan

--
You received this message because you are subscribed to the Google Groups "diffpy-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diffpy-users+unsubscribe@googlegroups.com.
To post to this group, send email to diffpy...@googlegroups.com.
Visit this group at https://groups.google.com/group/diffpy-users.
For more options, visit https://groups.google.com/d/optout.

Simon Billinge

unread,
Oct 14, 2016, 6:21:50 AM10/14/16
to diffpy...@googlegroups.com
Thanks for solving the riddle Stefan, and thanks for posting this.  If it was  a bug, we certainly want to hear about it!

S

On Fri, Oct 14, 2016 at 4:50 AM Stefan Michalik <stefan....@gmail.com> wrote:
   Dear All,
I have found the explanation of my observation. I supposed when terms 'userf1' and 'userf2' are 0.000 then PDFGetX2 calculates the atomic form factor f0(Q) not corrected for dispersion terms. This is not true. PDFgetX2 calculates the atomic form factor f(Q,E) defined as f(Q,E0)= f0(Q) + f1(E) + if2(E), where f1 and f2 are energy dependent dispersion terms.. When I include dispersion terms in my calculation then I get very similar results as PDFgetX2.
  Best Regards,
  Stefan
2016-10-13 16:59 GMT+01:00 <stefan....@gmail.com>:
   Hi All,
recently I founded that the atomic form factor for Hf calculated by PDFGetX2 is significantly different compared with values calculated on the base of the Waasmaier and Kirfel values. I did my own calculation using my short matlab script. I also used a third side program periodictable 1.4.1 package implemented in python. Using this python package I have got the same results as for my matlab script. I attach a figure comparing outputs from PDFGetX2 and my script for a few various elements. It seems that differences become significant for elements above Z>60. I know that PDFGetX2 is not supported anymore. I want to ask how the atomic form factors are calculated in PDFGetX3? Is PDFGetX3 using the same routine for atomic form factor calculations as PDFGetX2? If yes, then it would be worthy to understand this differences. I think there are still some users of PDFGetX2 (me as well) who would like to know where the problem is. 
   Best Regards,
   Stefan
  
   Stefan Michalik
   PDRA at I12
   Diamond Light Source Ltd
   Didcot Oxfordshire OX11 0DE


  

--
You received this message because you are subscribed to the Google Groups "diffpy-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diffpy-users...@googlegroups.com.

To post to this group, send email to diffpy...@googlegroups.com.
Visit this group at https://groups.google.com/group/diffpy-users.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "diffpy-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diffpy-users...@googlegroups.com.

Pavol Juhas

unread,
Oct 18, 2016, 8:24:20 AM10/18/16
to diffpy...@googlegroups.com
On Fri, Oct 14, 2016 at 09:50:27AM +0100, Stefan Michalik wrote:
...
> I have found the explanation of my observation. I supposed when terms
> 'userf1' and 'userf2' are 0.000 then PDFGetX2 calculates the atomic form
> factor f0(Q) not corrected for dispersion terms. This is not true. PDFgetX2
> calculates the atomic form factor f(Q,E) defined as f(Q,E0)= f0(Q) + f1(E)
> + if2(E), where f1 and f2 are energy dependent dispersion terms.. When I
> include dispersion terms in my calculation then I get very similar results
> as PDFgetX2.

Hi Stefan,

For a reference PDFgetX3 uses the Waasmaier, Kirfel coefficients to
calculate the atomic form factors. There are no energy-dependent terms.
The form factors used by PDFgetX3 can be obtained in a Python session
as follows:

import numpy as np
from diffpy.pdfgetx.cromermann import fxrayatq
q = np.arange(0, 16.001, 0.1)
fau = fxrayatq('Au', q)

Best,

Pavol

--
Dr. Pavol Juhas
Computational Science Initiative
Brookhaven National Laboratory
P.O. Box 5000
Upton, NY 11973-5000
Reply all
Reply to author
Forward
0 new messages