GenX

GenX

X-ray and Neutron Reflectivity Fitting

Description

Once the reflectivity curve is measured, the real work is fitting it: how many layers, how thick each one is, how rough the interfaces are. With that many coupled parameters, tuning by hand is a gamble, and it is easy to land in a local minimum. GenX hands the job to differential evolution, a global optimizer that does not get stuck in local minima and still finds a sensible solution when the parameters pull on each other.

The window has three parts: a data list on the left, the curve and fit progress in the middle, and the model parameter table below. Load your data and the plot and model table fill themselves in; during a fit you watch the simulated curve settle onto the measured points. Models can be built layer by layer in the GUI or written as a Python script, so a system the built-in models do not cover only needs a new model of your own.

Features



X-ray and neutron reflectivity: ships with specular models, plus off-specular X-ray reflectivity.

Surface X-ray diffraction: a newer model for fitting surface-structure diffraction data.

Differential evolution fitting: global optimization that is not sensitive to starting values, with parameter errors reported after the fit.

Scriptable: models are defined in Python and plug-ins extend the program, so it also works as a general fitting tool.

Materials and SLD profile: computes scattering length density from formula and density and plots the SLD along depth live.

Cross-platform: Windows and Ubuntu packages, or install through pip or snap. Licensed under GPL-3.0.