MultiSIMNRA is a computer code aimed to control multiple instances of the SIMNRA program. It applies computer algorithms to find a unique model for a same sample that best fits the spectra of different measurements of the same sample.

It is also capable of dealing with a large number of variables, making it useful to fit a multi-layer sample, even for single spectra, improving and extending the SIMNRA fitting capabilities.

**MultiSIMNRA works better with new SIMNRA 7.0**

Main window of MultiSIMNRA.

The MultiSIMNRA software uses multiple instances of the SIMNRA to calculate simulated spectra of different experimental conditions, and compares with experimental data using a figure of merit function (objective function), which in our case is a χ² function. The fitting procedure is made by optimizing the χ² function modifying the fitting parameters accordingly to an optimization algorithm. It is considered the final result the model that presents the best possible match to the experimental data (the model that minimizes the χ² function).

Four minimization algorithms were implemented and are available as an option for the user. The first option is the Nelder-Mead’s simplex, a direct search method, computationally simple and it does not require calculation of derivatives. The second is a modified version of the Levenberg–Marquardt algorithm (LMA), which is a robust and fast deterministic optimization algorithm, but very sensitive to the initial parameters and like Simplex does not guarantee global minimization. The third method is evolutionary annealing-simplex algorithm that is a probabilistic heuristic global optimization technique that joins ideas from different methodological approaches, where a generalized downhill simplex methodology is coupled with a simulated annealing procedure. The fourth method is a modified version of the Differential Evolution (DE), called Adaptive Differential Evolution with crossover rate repair (RCR-JADE), which is an evolutionary algorithm. An interesting characteristic of DE is the insensitivity to a good initial guess, but it is sensible to the definition of the search-space boundaries.

### Running

MultiSIMNRA fitting charge of 86 spectra.

MultiSIMNRA fitting a target with 8 layers, 6 elements in 8 spectra using constraints.