Once upon a time, MARIA, a neutron reflectometer at FRM II in Germany, had no support to help her users understand the polarized grazing-incidence scattering data she produced. The closest software available was IsGisaxs developed for x-ray techniques but because x-rays are not sensitive to magnetism and polarization, the required functionality was not available. Additionally, it was no longer possible for this software program to be actively developed by its creator.
Thus was the situation when BornAgain was born. In 2012, the Scientific Computing Group of Heinz Maier-Leibnitz Zentrum (MLZ) in Garching, Germany set about creating a multi-platform open-source software framework for simulating and fitting x-ray and neutron data for grazing-incidence small-angle scattering (GISAS). This remit has since been extended to include reflectometry and off-specular scattering too, particularly within the framework of SINE2020.
The BornAgain name originates from the distorted-wave Born Approximation that is an essential part of describing scattering performed at grazing-incidence i.e. when the x-ray or neutron beam is at a very shallow angle in relation to the sample surface. These experimental techniques are used for characterising the structures of interfaces and thin films.
The aim of the project was to implement all the functionality that was contained within IsGisaxs (and other software used to support reflectometry techniques) but also add extra features and create a user-friendly Graphical User Interface (GUI) to make it accessible to any user, whatever their discipline, application or experience.
BornAgain analyses data from experiments by modelling and fitting simulations to results to discover the character of the material. Therefore, users already need to have an idea of what their expected model may be. The software produces simulated detector images which can then be compared to the experimental image, with the possibility of adjusting parameters manually or in a semi-automatic process. Some one-dimensional automatic fitting functionality is also present.
The first version of BornAgain was released in January 2015. The software gets updated around 4 times a year with the 15th version now available. It is developed in C++ and allows advanced users to add their own Phython code for extra, individual requirements. The software is maintained and released under GNU General Public License v3.0 and is available to download for free at www.bornagainproject.org.
BornAgain is set to become the standard software for GISAS and aspires to provide a comprehensive offering for all reflectometry data. Future plans are to refine the GUI and explore potential two-dimensional fitting capabilities.
The project team also run a BornAgain School and User meeting every two years, most recently in December 2018 in Garching. They also regularly travel to conferences and workshops to publicise their work, for example at the upcoming GISAXS 2019 workshop at DESY in Hamburg.
Past and present team members are Jan Burle, Juan Carmona Loaiza, Celine Durniak, Jonathan Fisher, Marina Ganeva, Gennady Pospelov, Walter Van Herck, Joachim Wuttke and Dmitry Yurov all based at the Jülich Centre for Neutron Science at MLZ.
As SINE2020 comes to an end, the work will not stop. The enhancement of BornAgain is part of the German in-kind contribution to the ESS in Sweden. The team will continue to study existing reflectometry software and merge the best ideas into BornAgain. All this hard work will enable the next generation of neutron users to get maximum information out of their reflectometry and grazing-incidence scattering experiments.
Acknowledgements: Joachim Wuttke