## Software

# DL_EXCURV (formerly EXCURVE)

Data analysis of EXAFS spectra using the fast spherical wave method. It provides an integrated environment for the analysis of EXAFS spectra while delivering a platform for the fast spherical wave method. The current version is based on this method for single scattering, but uses the method of Lee and Pendry (1975) for the exact polarisation dependent theory. Multiple scattering has options to use several methods. It allows fitting of both background-subtracted, and normalised total absorbance spectra. In the latter case the program calculates the atomic contribution of the spectrum (whole-spectrum fitting). The purpose of the program is to find a structural model of a material which agrees with the available XAFS spectra. This program (without GUI) was formerly called EXCURVE and is the one installed at the ESRF

# easyDiffraction

easyDiffraction is scientific software for modelling and analysis of neutron diffraction data, i.e., simulation of diffraction pattern based on structural model and refinement of its parameters. easyDiffraction is similar to crystallographic programs like FullProf, Jana, GSAS, ShelX, etc. However, unlike them, easyDiffraction is based on external crystallographic libraries, such as CrysPy to cover different functionality aspects within a single intuitive and user-friendly graphical interface.

# EXtra-data

A Python library for accessing and inspecting data in European XFEL's HDF5 files. European XFEL saves data in multiple HDF5 files with a moderately complex structure. EXtra-data aims to provide a simple interface to access data from a run directory, and conveniently work it in popular Python libraries such as Dask, Xarray and pandas.

# EXtra-geom

Python tools to work with geometry information for multi-module detectors at European XFEL, and to use assemble detector data into images.

# FEFF9

Condensed matter code for modelling x-ray and electron spectroscopies and materials properties. FEFF is an automated program for ab initio multiple scattering calculations of X-ray Absorption Fine Structure (XAFS), X-ray Absorption Near-Edge Structure (XANES) and various other spectra for clusters of atoms. The code yields scattering amplitudes and phases used in many modern XAFS analysis codes, as well as various other properties. in FEFF9 there are several new spectroscopies which can be calculated with FEFF 9, including electron energy loss spectra (EELS) and non-resonant inelastic x-ray scattering (NRIXS). In addition, there are a variety of improvements. These include; (1) ab initio Debye-Waller factors; (2) improved treatment of inelastic losses; (3) an improved treatment of the core-hole interaction; and (4) more accurate treatment of crystalline systems with k-space calculation of the Green's function. FEFF9 comes with the JFEFF GUI.

# FIT2D

FIT2D is a general purpose 1 and 2 dimensional data analysis program. It is used for both interactive and "batch" data processing, and is used for different purposes. Calibration and correction of detector distortions is one of the main uses of FIT2D. Difficult data analysis problems may be tackled using fitting of user specified models. To enable model fitting to be performed on a wide variety of input data, many other more basic data analysis operations are also available. A wide variety of performant graphical display methods are available.

# Fox/ObjCryst++

The FOX program was made for ab initio crystal structure solution from diffraction data (mostly powder diffraction data). Its most interesting features for ab initio structure determination are: * a versatile description of the crystal contents: either isolated atoms , molecules described using a bond length, bond angles and dihedral angles, and polyhedra for inorganic compounds. You can describe your structure by using any combination of groups of atoms, using a chemist's or crystallographer knowledge about the connectivity in your sample to constrain possible solutions.. * an automatic correction for special positions and shared atoms between polyhedra, suitable for global optimization algorithms. * the ability to use simultaneously multiple powder patterns (X-rays, neutrons), as well as single crystal data (e.g. extracted from a powder pattern) * smart global optimization algorithms which can get out of false minima. * a graphical interface (see the screenshots) with a 3D crystal structure view, with live updates during the optimization process.

# freeart

ART algorithms for fluorescence and transmission tomography reconstructions. Fluorescence absorption for the incoming and outgoing beams are taken into account.

# Frida

Frida (“Fast reliable interactive data analysis”) is a versatile data analysis program with special routines for inelastic neutron scattering.

# GENFIT (and SASMOL)

GENFIT is a software tool for analysing small-angle scattering (SAS) data from X-ray (SAXS) or neutron (SANS) experiments. It reads in a set of one-dimensional scattering curves and fits them using different kinds of models. SAS curves calculated from a model can be smeared to allow for the instrumental resolution. The user can fit the experimental data selecting one or more models from a list including more than 30 models, starting from simple asymptotic behaviours (Guinier's law, Porod's law, etc.) down to complete atomic structures. Some models, which are defined in terms of both form and structure factors, take into account the interactions between particles in solution. GENFIT is able to simultaneously fit more SAS curves via a unique model or a mixture of models. In the latter case, some specific model parameters can be shared by any selection of the experimental curves. Model parameters can be related to the experimental chemical-physical conditions (temperature, pressure, concentration, pH, etc.) by means of link functions, which can be freely defined by the user. On the other hand, GENFIT can be used to generate theoretical SAS curves from a given model and/or from the knowledge of the species in solution. It can hence be a useful instrument to find the optimum experimental conditions for a planned SAS experiment. GENFIT is written in Fortran. Versions 2.0 and higher make use of a graphical user interface (GUI) to manage input files and execute the calculations.

# GNXAS

The GNXAS package is a computer code for EXAFS data analysis based on multiple-scattering (MS) calculations and a rigorous fitting procedure of the raw experimental data. The main characteristic of the software are: + atomic phase shifts calculations in the muffin-tin approximation based on atom self-consistent relativistic calculations. Account for the neighbors is taken. + Inclusion of inelastic losses through complex Hedin-Lundqvist potential. + Calculation of MS signals associated with two, three, and four atom configurations using advanced algorithms. Use of an advanced fitting procedure that allows: + to fit simultaneously any number of spectra containing any number of edges, + to use directly the raw data without any pre-analysis, + to account for complex background multi-electron excitation features, + to use various model peaks for the pair, triplet and quadruplet distribution functions, including non Gaussian models and extreme cases. In all cases absolute parameters can be fitted, - to treat liquid phase or disordered systems and extract reliable g(r) functions in the short range, - to perform a rigorous statistical error analysis and plot two-dimensional correlation maps, - to provide a flexible scientific tool for EXAFS data analysis where the user has access to every stage of the calculation. - full modularity that makes easy to interface parts of the GNXAS software with other available software.

# H5Web

H5Web is a web-based HDF5 file viewer with NeXus support. It allows for the browsing and inspecting of the hierarchical structure of HDF5 files, as well as visualising their datasets as basic plots (1D, 2D). With H5Web, our intent is to provide synchrotron users with an easy-to-use application and to make open-source components available for other similar web applications. H5Web is built with React, a front-end web development library. It supports the exploration of HDF5 files, requested from a separate back-end for modularity (e.g. HSDS, Jupyter, etc.), and the visualisation of datasets using performant WebGL-based visualisations.

# iFit

The iFit library (pronounce [eye-fit]) is a set of methods to load, analyse, plot, fit and optimize models, and export results. iFit is based on Matlab, but can also be launched without Matlab license (stand-alone version).Matlab It does not currently include advanced graphical user interfaces (GUI), and rather focuses on doing the math right. Any text file can be imported straight away, and a set of binary files are supported. Any data dimensionality can be handled, including event based data sets (even though not all methods do work for these). Any model can be assembled for fitting data sets. Last, a number of routines are dedicated to the analyses of S(q,w) and S(alpha,beta). More advanced features include the full automation to compute phonon dispersions in materials, using DFT codes such as ABINIT, ELK, VASP, QuantumEspresso, GPAW and more (Models/sqw_phonons). The software can also compute the neutron TAS resolution function (4D) and fits to experimental data with full resolution convolution (ResLibCal). An interface for McStas and McXtrace is also available to automate and optimize instrument simulations.

# LAMP

LAMP (Large Array Manipulation Program) is designed for the treatment of data obtained from neutron scattering experiments at the Institut Laue-Langevin. However, LAMP is now a more general purpose application which can be seen as a GUI-laboratory for data analysis based on the IDL language.

# MANTID

The Mantid project provides a framework that supports high-performance computing and visualisation of materials science data. Mantid has been created to manipulate and analyse neutron scattering and muon spectroscopy data, but could be applied to many other techniques.