Difference between revisions of "Software"

From GISAXS
Jump to: navigation, search
(Geared towards 1D data)
(General EM field)
 
(24 intermediate revisions by the same user not shown)
Line 90: Line 90:
 
* '''ScatterBrain''': Cross-platform (Windows, OSX, Linux) IDL software, provided by Australian Synchrotron.
 
* '''ScatterBrain''': Cross-platform (Windows, OSX, Linux) IDL software, provided by Australian Synchrotron.
 
** [http://www.synchrotron.org.au/index.php/aussyncbeamlines/saxswaxs/software-saxswaxs Official site.]
 
** [http://www.synchrotron.org.au/index.php/aussyncbeamlines/saxswaxs/software-saxswaxs Official site.]
 +
 +
===[[CD-SAXS]]===
 +
* [https://bitbucket.org/dkumar75/cd-gisaxs/src/master/ cd-gisaxs]
 +
* [https://github.com/CEA-MetroCarac/cdsaxs CEA-MetroCarac/cdsaxs] (includes GPU parallelization)
  
 
===[[GISAXS]]===
 
===[[GISAXS]]===
Line 150: Line 154:
 
* '''Multifitting''': Reflectivity calculations for multilayer systems
 
* '''Multifitting''': Reflectivity calculations for multilayer systems
 
** Citation: M. Svechnikov [http://scripts.iucr.org/cgi-bin/paper?te5051 Multifitting: software for the reflectometric reconstruction of multilayer nanofilms] ''J. Appl. Cryst.'' '''2019''' [https://doi.org/10.1107/S160057671901584X doi: 10.1107/S160057671901584X]
 
** Citation: M. Svechnikov [http://scripts.iucr.org/cgi-bin/paper?te5051 Multifitting: software for the reflectometric reconstruction of multilayer nanofilms] ''J. Appl. Cryst.'' '''2019''' [https://doi.org/10.1107/S160057671901584X doi: 10.1107/S160057671901584X]
 +
* '''MLReflect''': Machine-learning method for reflectivity curves
 +
** [https://mlreflect.readthedocs.io/en/latest/ Docs] and [https://github.com/schreiber-lab/mlreflect/tree/master code]
 +
** Citation: [https://arxiv.org/abs/2202.11609 arxiv]
  
 
===[[Crystallography]]===
 
===[[Crystallography]]===
Line 167: Line 174:
 
* '''τompas''': TEM online multi-purpose analyzing system
 
* '''τompas''': TEM online multi-purpose analyzing system
 
** Citation: R.-X. Xie and W.-Z. Zhang [http://scripts.iucr.org/cgi-bin/paper?ks5644 τompas: a free and integrated tool for online crystallographic analysis in transmission electron microscopy] ''J. Appl. Cryst.'' '''2020''', 53. [https://doi.org/10.1107/S1600576720000801 doi: 10.1107/S1600576720000801]
 
** Citation: R.-X. Xie and W.-Z. Zhang [http://scripts.iucr.org/cgi-bin/paper?ks5644 τompas: a free and integrated tool for online crystallographic analysis in transmission electron microscopy] ''J. Appl. Cryst.'' '''2020''', 53. [https://doi.org/10.1107/S1600576720000801 doi: 10.1107/S1600576720000801]
 +
* '''UnitCell Tools''': Determine unit-cell parameters from a single electron diffraction pattern.
 +
** Citation: Hong-Long Shi and Zi-An Li [https://journals.iucr.org/m/issues/2021/05/00/gq5014/index.html UnitCell Tools, a package to determine unit-cell parameters from a single electron diffraction pattern] ''IUCrJ'' '''2020''' [https://doi.org/10.1107/S2052252521007867 doi: 10.1107/S2052252521007867]
 +
 +
==Explicit Simulation==
 +
Methods that predict scattering by directly calculating/simulating the EM field propagation, wave/matter interactions, etc.
 +
===X-rays===
 +
These software packages directly simulation the propagation of an EM field, and/or the interaction between EM waves and material:
 +
* '''SRW''' (Synchrotron Radiation Workshop): Fast numerical simulation of near-field and far-field of radiation generated by electron beams traveling through magnetic fields. I.e. can be used to simulate x-ray emission from [[synchrotron]] sources (e.g. [[undulator]]).
 +
** [https://www.esrf.fr/Accelerators/Groups/InsertionDevices/Software/SRW Official site.]
 +
* '''Shadow''': X-ray optics simulation package for coherent x-ray wavefront propagation simulations​​.
 +
** Citation: Niccolo Canestrari, Oleg Chubar and Manuel Sanchez del Rio [https://iopscience.iop.org/article/10.1088/1742-6596/425/16/162007 Improved models for synchrotron radiation sources in SHADOW] ''J. Phys.: Conf. Ser.'' '''2013''', 425 162007. [http://dx.doi.org/10.1088/1742-6596/425/16/162007 doi: 10.1088/1742-6596/425/16/162007]
 +
* '''WPG''' (WavePropaGator): Software package for simulating coherent and partially coherent X-ray wavefront propagation, especially intended for simulating [[XFEL]]
 +
** [https://wpg.readthedocs.io/en/stable/wpg.html Docs.]
 +
** [https://github.com/samoylv/WPG Code.]
 +
* '''McXtrace''': Monte-Carlo ray tracing (based on [https://www.mcstas.org/ McStas] neutron ray-tracing package).
 +
** [https://www.mcxtrace.org/ Official site.]
 +
** [https://github.com/McStasMcXtrace Code.]
 +
* '''xrt (XRayTracer)''': Python library for ray-tracing and wave propagation.
 +
** [https://xrt.readthedocs.io/ Docs.]
 +
===General EM field===
 +
* [https://github.com/flaport/fdtd Python 3D FDTD Simulator]
 +
* [https://github.com/kc-ml2/meent Meent]
 +
* [https://github.com/stefanmeili/FastFD FastFD]
 +
* [https://www.comsol.com/ COMSOL multiphysics]
 +
* [https://pypi.org/project/macromax/ Macromax] Maxwell solver
 +
* [https://jcmwave.com/ JCMWave] JCMSuite
  
 
==Computing [[Materials]] Properties==
 
==Computing [[Materials]] Properties==
Line 180: Line 213:
 
* '''DANSE Periodic Table''': Python library for x-ray and neutron elemental scattering properties.
 
* '''DANSE Periodic Table''': Python library for x-ray and neutron elemental scattering properties.
 
** [http://www.reflectometry.org/danse/elements.html Official site].
 
** [http://www.reflectometry.org/danse/elements.html Official site].
 +
 +
==Synchrotron==
 +
* '''[https://github.com/silx-kit/silx SILX]''': Data reading/writing for synchrotron data formats.
 +
* '''[https://nsls-ii.github.io/bluesky/ BlueSky]''': Instrument control, including data saving into a database and access via databroker.
 +
 +
==General==
 
* '''MultiSciView''': Web-based tool for looking at arbitrary arrays of 2D image data. Convenient for looking at scattering images arranged based on metadata (coordinates, annealing history, etc.).
 
* '''MultiSciView''': Web-based tool for looking at arbitrary arrays of 2D image data. Convenient for looking at scattering images arranged based on metadata (coordinates, annealing history, etc.).
 
** Citation: [https://www.sciencedirect.com/science/article/pii/S2468502X18300093 MultiSciView: Multivariate Scientific X-ray Image Visual Exploration with Cross-Data Space Views] ''Visual Informatics'' '''2018''', 1(2), 14-25 [http://dx.doi.org/10.1016/j.visinf.2018.04.003 doi: 10.1016/j.visinf.2018.04.003]
 
** Citation: [https://www.sciencedirect.com/science/article/pii/S2468502X18300093 MultiSciView: Multivariate Scientific X-ray Image Visual Exploration with Cross-Data Space Views] ''Visual Informatics'' '''2018''', 1(2), 14-25 [http://dx.doi.org/10.1016/j.visinf.2018.04.003 doi: 10.1016/j.visinf.2018.04.003]
 
==General==
 
 
* '''SciStreams''': Simple workflow/pipeline software (building on [http://dask.pydata.org/en/latest/ Dask] and [https://github.com/mrocklin/streams Streams]), intended for asynchronous and distributed computations at a beamline.
 
* '''SciStreams''': Simple workflow/pipeline software (building on [http://dask.pydata.org/en/latest/ Dask] and [https://github.com/mrocklin/streams Streams]), intended for asynchronous and distributed computations at a beamline.
 
** [https://github.com/CFN-softbio/SciStreams Code available on github.]
 
** [https://github.com/CFN-softbio/SciStreams Code available on github.]

Latest revision as of 10:01, 1 October 2024

A common question for new GISAXS users is: "What software can I use to analyze my data?" Unfortunately, there is no single package that will allow you to perform any possible analysis. This is in part due to the diversity of possible kinds of data analysis one might want to do on GISAXS or GIWAXS images. The following lists a variety of packages that are available.

Data Viewing, Reduction, and Simple Analysis

These packages provide ways to view data, and perform simple operations (linecuts, etc.).

Geared towards 2D data

Geared towards 1D data

Data Modeling and Fitting

These packages can predict scattering curves for various possible nano- or molecular- structures. Some of the packages allow fitting of experimental data.

SAXS

BioSAXS

CD-SAXS

GISAXS

Reflectivity

Crystallography

Explicit Simulation

Methods that predict scattering by directly calculating/simulating the EM field propagation, wave/matter interactions, etc.

X-rays

These software packages directly simulation the propagation of an EM field, and/or the interaction between EM waves and material:

  • SRW (Synchrotron Radiation Workshop): Fast numerical simulation of near-field and far-field of radiation generated by electron beams traveling through magnetic fields. I.e. can be used to simulate x-ray emission from synchrotron sources (e.g. undulator).
  • Shadow: X-ray optics simulation package for coherent x-ray wavefront propagation simulations​​.
  • WPG (WavePropaGator): Software package for simulating coherent and partially coherent X-ray wavefront propagation, especially intended for simulating XFEL
  • McXtrace: Monte-Carlo ray tracing (based on McStas neutron ray-tracing package).
  • xrt (XRayTracer): Python library for ray-tracing and wave propagation.

General EM field

Computing Materials Properties

Synchrotron

  • SILX: Data reading/writing for synchrotron data formats.
  • BlueSky: Instrument control, including data saving into a database and access via databroker.

General

Custom

It is of course possible to code your own software for modeling or fitting scattering data. This is not as difficult as it may at first seem. The fundamental scattering equations are well-known (c.f. scattering, Fourier transform, Form Factor, Structure Factor, Lattice Factor), and can be brute-force solved numerically. Or, they can be solved (or simplified) analytically for a particular case. Many modern programming languages provide libraries for numerical integration, fitting, minimizing multi-dimensional parameter spaces, etc. (e.g. Python is particularly clean and powerful).

See Also