Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Requirement] First implementation of PDF reduction workflow #54

Open
celinedurniak opened this issue May 16, 2024 · 0 comments
Open

[Requirement] First implementation of PDF reduction workflow #54

celinedurniak opened this issue May 16, 2024 · 0 comments

Comments

@celinedurniak
Copy link
Collaborator

celinedurniak commented May 16, 2024

Executive summary

Implement and group methods to perform PDF data reduction (1st simplified implementation): from raw simulated data to 1D pair distribution function g(r) & co

Context and background knowledge

D. A. Keen, A comparison of various commonly used correlation functions for describing total scattering, J. Appl. Cryst. 34, 172 (2001) https://doi.org/10.1107/S0021889800019993

M. T. Dove and G. Li, Review: pair distribution functions from neutron total scattering for the study of local structure in disordered materials, Nuclear Analysis 1, 100037 (2022)

M. A. Hove, R. L. McGreevy and W. S. Howells, The analysis of liquid structure data from time-of-flight neutron diffractometry, J. Phys.: Condens. Matter 1, 3433 (1989)

https://powder.ornl.gov/total_scattering/data_reduction/mts_flow.html
https://pystog.readthedocs.io/en/latest/about.html
https://docs.mantidproject.org/v3.9.0/algorithms/PDFFourierTransform-v1.html

Inputs

Input data: raw TOF PDF diffraction data (NeXus or CSV)
If simulated, it should contain coherent and incoherent scattering for the sample
Cases for first implementation: sample, vanadium
Cases for whole workflow: sample in container, container, vanadium, (vanadium container), empty instrument (only experimental case) or background

Methodology

First workflow:

  • Load sample and vanadium
  • WFM stitching
  • Convert to d-spacing with calibration (calibration file for standard conversion tof <-> d-spacing as as a first implementation)
  • Convert sample and vanadium to Q
  • Rebin
  • Group detectors
  • (Normalize by current)
  • Sum over several “sample” runs if needed
  • Strip Vanadium peaks
  • Normalize sample by vanadium
  • Normalize by total number of atoms in beam ( x atoms in vanadium / atoms in sample)
  • Save S(Q) to file
  • Calculate g(r) or G(r) and save to file (provide choice between functions)

For G(r) & co, see enclosed Jupyter notebook (functions calculated using Mantid)

Outputs

Output data: S(Q) and selected "G(r)" as data and to disk (simple 2 or 3-columns ASCII for compatibility with GSAS-II, RMCprofile, pdfgui, diffpy-cmi)

Which interfaces are required?

Python module / function, Jupyter notebook

Test cases

  • NOMAD data (Scicat) NOM_131610.nxs.h5 (SrTiO3 in container), NOM_131576.nxs.h5 (Vanadium). Note that for these files, the sample is in container. Therefore the reduced data from the simple workflow might not look right.
  • Simulated DREAM data (https://project.esss.dk/nextcloud/index.php/s/zfNfbqHdk5coijC): Si sample and vanadium (2 files: incoherent only and inc+coh). Here are a few details about the simulated sample. The sample in McStas was simulated using Union
    • Si powder for Powder process
    • Incoherent process: incoherent scattering cross section=0.004 barns, packing_factor=1, unit cell volume=160.187954 (Angstrom**3)
    • Inverse penetration depth from absorption at standard energy = 0.107 (1/m)
    • Sample with cylindrical shape: radius=0.006 (m), yheight=0.05 (m)

Comments

This is the first implementation. Following steps would be (in no particular order):

  • Add absorption correction
  • Add reduction of container(s), background
  • Add inelastic and multiple scattering corrections

Note that other requirements should be created in relation to the above future implementations (and links added to the above list)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant