In this example we will fit synthetic reflectometry data generated with GenX.
The only fitting parameter of the simulation considered here is the thickness of the Ti layers. The reference data was obtained under the following assumptions:
The fit view produced by running the fitting script is shown in the picture. The right-hand part of the view contains information about the current iteration of the fitting process, the maximum relative difference $d_{r, max}$ between the reference and the simulated data, and the current values of the fitting parameters.
One should note that in the current example the BornAgain built-in fitting engine and
default minimizer (namely, Minuit) was used to fit the data.
The minimizer can be selected by the setMinimizer command:
minimizer = ba.Minimizer()
minimizer.setMinimizer("Genetic", "", "MaxIterations=30")
This code snippet replaces the default Minuit minimizer with the Genetic one, which is
recommended to use for complicated multi-dimensional fitting tasks.
A much more sophisticated example of fitting experimental reflectometry data with
BornAgain and an external minimizer can be
found in Examples/fit/specular/RealLifeReflectometryFitting.py
in the BornAgain directory.
|
|
Data to be fitted: Examples/data/genx_interchanging_layers.dat.gz