Table of Contents

ReMagX 2.7 (currently in development)

ReMagX 2.6

Support import of data with Unix “\n” linefeed.

Add “Sort Datasets” function in scratch menu entry

Fix possible zero pointer dereference when the fitting thread is terminated

Change to C++ Builder XE 7 and gcc 4.9.3

ReMagX 2.5

Fix loading of data separated by tabulator

Fix plotting of the dielectric tensor

Update Aboutbox

Add decimal point help in the data import window.

ReMagX 2.4

Add more consistency checks when loading files

Matrix Formalism: Correct substrate boundary conditions for tetragonal tensors

The fourth column of the map calculation shows now the correct angle for each energy.

lin error option applies to escans as well

ReMagX 2.3

Tons of bug fixes concerning the graphical user interface

Correct bug preventing the gaussian magnetic profiles to work correctly.

Add consistency check for the fit variables

Correct dataset loading with Unix line breaks

Clean up code

Material to Element function takes the multilayer structure into account.

ReMagX 2.2

Allow to change asymmetry definition in settings window (Normed difference or simple difference)

Implementation of arbitrary magnetization directions for Parratt formalism

Fixed crash when fitting energyscan in parallelized mode.

Magnetization direction can be changed and fitted for each layer separately.

Magnetization direction is fitable.

Imported datasets with the same energy for each datapoint are automatically transformed to fixed energy measurements.

Add a function to remove spikes in measurements.

File saving is done in memory first and then saved in one step. Faster and more safe

Fixed handling of the initial step of the simplex fitting algorithm. (Fixed some possible bugs)

Updated and corrected terms and definitions file for element specific magneto-optic scattering

Fixed bug that prevents the correct updating of the dielectric tensor for reflectivity and asymmetry if the optical constants are not loaded from file.

Added script functions getf1m, getf2m, setf1m and setf2m.

It is no longer necessary to have .m (.ffm) files for all layers when in magneto optics.

Introduced .ffm files for f1m and f2m in element mode.

ReMagX 2.1

Fixed crashing while executing dichroic energy scan. (Script not terminated correctly)

Fixed problem introduced in 2.0 that the layers are referenced to the wrong optical constants if you change the db-name after calculating the first spectra.

Added new functions in script to shift delta, beta, f1, and f2 in energy (Element:Setf(…) and SetDeltaBeta(…))

Added Fourier Transformation option to analyze the spectra.

Added possibility to include the second order peak (doubled energy) from grating with a given intensity. (TODO: Add a special tab to include experimental corrections)

ReMagX 2.0

Multiple files can be selected if datasets are imported

Script Variables are displayed in a table.

Multiple small changes at the graphical user interface to be more consistent

Added a list to see the cached files

Initial support for energy resolution (fastconvolution, only energy scans for the moment)

Implemented possibility to add a energy shift for energy scan measurements

Removed bug that the qz shift is only valid for positive values

The standard output of the graph is changed from .bmp to .jpg

Added polarization filter for pi and sigma

Added the possibility to directly delete fit parameters from the parameters slide.

Const. angle scan can be chosen instead of const qz. scans

Added popupmenu to dataset list to move datasets up and down

Added menu entry to execute “default” script or “before calculation” script

Added option to copy data and image to clipboard

Included summary plot to see fits of all datasets at once.

Linewidth and fontsize is changeable

More internal optimzations. Altogether speedup of factor 2. Parallelization seems to be stable now.

Use of already compiled scripts during fits.

Reduced significantly the amount of memory needed by the evolution algorithm. Allows a population greater than 100000.

Decreased number of memory allocations by 4 orders of magnitude.

Fixed a lot of very old small bugs and memory leaks.

Initial support for multilayers in compound mode. Parses scripts like “1, 3*(2,3,4), 5” where the numbers are the layer numbers.

Added button for a summary of all dataset plots

Density can be accessed in the script

Moved Settings tab to an own window (Preferences)

Included f1 f2 scattering factor database (Chantler 1995). Size is 200kb for the first 90 elements

Added export option for the layer table as ASCII (as comma separated values, english number format)

Changing numbering scheme of the versions.

ReMagX 1.9.5

Added error weight for each dataset. Good for fitting of multiple curves

Changed default font size from 8 to 10 in the graph.

Density Profiles shows vertical lines to mark the different thicknesses of the element specific layers.

Added an option in settings to disable parallel computing. Parallelization seems still to be unstable.

Fixed race condition in energy scan calculation introduced in 1.9.3

Fixed bug in energy scan introduced in 1.9.3. Speedup of 100 orders of magnitude.

Fixed the drawing of the element specific density profiles. The layers can be cut around the top layers. It was already correct simulated but wrong displayed.

Fixed scaling factor during fit (again)

Fixed energy scan fit if using multi fit feature

Initial support of simulation of the Total Electron Yield. Uses Parratt to determine the light absorption inside the sample. deltam is used as the electron escape length.

Added message box when transforming the compound data to element specific data

Removed “with M(z)” checkbox in Adaptive layer segmentation. You can already activate it in magnetization settings.

Deleted “Show Delta/Beta Profile” in optical constants database tab. The function can be found in Adaptive Layer Segmentation tab.

ReMagX 1.9.4

Fixed the switching between compound mode and element mode after loading a file which was saved in compound mode

Fixed layer input table error message infinite loop

Fixed some nasty bugs introduced in 1.9.3 with the scaling factor while fitting.

Added Parratt formalism without multiple scattering. Not really faster, but it is a good method for physical understanding.

Live update of multiple fits shows the current active plot. It takes more memory and time to save this data. Let's see in future if there is some bottleneck.

Fixed live update of plot while fitting

Fixed button “to layer list” in adaptive segmentation.

ReMagX 1.9.3

Fixed crash while pressing the Chi^2 Button

Fixed bug in multislicing in element mode where the actual film is cut near the vacuum layer

Experimental support for parallelized fits (again)

Removed some overhead for parallelization

Removed the choice of the fit type. The fit type is determined from the context of the dataset. Multiple Fits of different measurement types are possible.

Activated C++0x standard. Inserted move constructors and move assignments to improve speed.

Changed the slicing in element mode to an adaptive one. Substantially faster simulation

Changed the cursor of the chart to a cross

Matrix Mode Setting: Option to treat deltam, betam, f1m, f2m as tetragonal (zz-)part of dielectric tensor.

All Mangetization settings are in one place.

Added tab “X-Axis” and removed tab “Energy Scan Settings”. Seems to be more consistent.

Add and remove layer supported in element specific mode

Post Modifications applies to the measurement as well

Removed shaking when window is moved.

The density in element mode can be altered by the scrollbar below the layer table

ReMagX 1.9.2

Added toolbar (load, save, add row, remove row, switch through elements)

Changed some fonts from non-aliased to aliased

Changed windows theme (added manifest)

Changed optimiziation compiler flags to “-Ofast -ffast-math”

Fixed Evolution code (but removed parallelization for now)

Fixed bug that the default script is not cleared after loading new state

Fixed buffer overlow in Simplex simulated annealing

ReMagX 1.9.1

Dichroic simulation mode does no longer take values from the optical constant cache if not desired.

Added .db and .m files for example in zip file.

Fixed wrong energy range calculation in energy scan if no measurements are active.

Fixed polarization overwriting bug after loading default.all file.

Added “disable script” button. This can reduce the overhead significantly and speedup the calculation process.

Save precision in .all file

ReMagX 1.9.0 (unstable)

Added Drag&Drop for .all files

Changed Splash screen. Comments welcome

Change icon design. (Thanks to my sister Marion)

Added support for Kramers-Kronig consistent fit of spectra in the terminal-version. Currently not official supported

ReMagX does not crash if the table with script-variables is inconsistens with fit parameters. The wrong entries are ignored.

Added asymmetric energy scan fit

Fixed bug concerning the test of validity of datasets for fits.

Fixed two buffer overflows while loading .all files.

Initial support in script for element specific mode. ( example: Fe:getf1() )

Script error messages works correctly now.

Cleaned up source code for script

ReMagX 1.8.2 (unstable)

Fixed bug in chemical formula interpretation. Elements can have zero density now.

Internal vector structure takes less memory and is more stable

Sort optical constants before loaded

Change internal structure of optical constant tables to a more common one.

Fixed optical constants problems (Wrong error message “Check if you chose the right energy”)

Fixed polarization displaying bug after loading .all file.

ReMagX 1.8.1 (unstable)

Script execution Button works again

Added second scattering type: Transmission. Currently only available in matrix formalisms.

Corrected bug in inserting/removing layers

ReMagX 1.8.0 (very unstable)

Added “Delete optical constants cache” Button.

Added “Show scattering factors buttons f1/f2” Button.

Added “Show Density Profiles” Button. (No more than 8 elements so far)

Minimizing of the main window works again

Changed compiler for the server part to gcc 4.5.2

Changed compiler of the graphical user interface to newest C++ Builder XE 2 (2011). (Last was TurboC++ 2006). Seems very buggy.

Added some post modifications options for the calculated reflectivity. ( *qz^4 and /cos(2*th)^2)

Initial support for element profiles. (Each element has a seperated density profile). Actually this is the most fundamental change of the program since the beginning of ReMagX.

Large code clean up

Added caches for .db .m .e files. Great speed improvement for energy scan.

Optical constant files (.db .m .e) are not loaded for each layer seperately. Determine layers with the same names. Great speed improve for superlattices.

ReMagX 1.7.0

Added Nevot&Croce roughness model for full matrix formalism

Added Nevot&Croce roughness model for Zak formalism

Simulated Annealing takes its own random seed (Changes every second). Before it took the evolution algorithm seed.

Added asymmetric energy scan

Exchanged the 5 buttons for reflectivity and energy scan to two buttons.

Added “translation” to the dataset. Like multiplicator it acts on the reflectivity if the dataset. Formula: Refl := (Refl+translation) * multiplicator

Support for std deviation at the end of the fit (only for Levenberg-Marquardt, it shows the result in the debug window)

If a new dataset is loaded it takes automatically the current energy, resolution and multiplicator as standard values for that dataset.

Initial support for fits of multiple datasets

Initial support for script variables which can be fitted

Deleted the nonsense button “best fit with simulated annealling”

Support for polarization in dataset editor (needs a small fix for arbitrary polarizations)

Script execution speed improved (not compiling every time, does not work for parallelized computation)

Added the option “Transfer inital fit variables to layer table”

“Show delta and beta spectrum” executes the script for every energy.

Added a new form “optical constants database” for a better handling of .db .m and .e files. Currently you can force that ReMagX chooses the optical constants database for each calculation (even Reflectivity).

Added .e file support

Fixes crash if one chooses the wrong “What to fit” radiobutton

Added a converter to the command-line interface to convert .db and .m to .e files

Changed the complete internal handling of the optical constants (starting point for a new .e file)

8 times faster calculation if resolution=0 and fast convolution is not used. (EScan for example)

More Code cleanups

Fit EScan parallelized

Fixed the calculation of the Dic Reflectivity of Parratt formalism for the second polarization

Deleted the hint of the layer list

Accelerate solution of quartic polynomials significantly

Fixed a special case in the solution of quartic polynomials

Fixed Bug in ReMagX_Terminal.exe not to print the usage screen every time.

Save fit error function index in file

ReMagX 1.6.0 (build 43)

!!Fixed wrong results in ZAK formalism regarding the magnetization direction (out of plane magnetization was wrong)

The whole magnetization stuff must now be activated in the magnetization frame (checkbox)

Add new terminal program.

Get delta/beta values works again

correct import dataset error (energy value)

changes some graphical issues if you use ReMagX on small screens

add epsilon-value to simulation parameters

the webserver can now restarted immediately with new data without restarting of ReMagX

the change of the active directory works now if you save or load a .all file.

ReMagX 1.5.5 (build 5)

Clean up the simulation code

  1. Clean up parratt, zak, matrix.
  2. seperate to more files
  3. new and faster resolution algorithm (I am not sure if I calculate them right, TODO!)

Add Webserver (start in Settings Tab) for a better consistency check. This will be extended in the future (maybe away from the windows GUI).

Separated Zak formalism from full matrix formalism (changed the GUI accordingly)

Corrected a bug from option “Get deltam/betam from database” (It read the energy as lambda, and not as energy)

Changed the read in of energy and lambda (more stable) Deleted the export and import to the program Parratt32. The program seems no longer availabe. changed resolution definition and calculation and changed the Reflectivity settings frame (should add energy resolution, TODO!)

moved magnetization direction to sample register (needs to be tested, TODO)

Deleted DM1 model. Changed description of layer segmentation models

ReMagX 1.5.4

Added a window to show the electromagnetic field inside the layer

ReMagX 1.5.3

Separated the script window to “Before calculation” and “Default”

Tested different energy definitions. Changed the Fit frame.

The defined variables, tables and functions are

tables:
delta, beta, sigma, thickness, deltam, betam
gauss_delta, gauss_beta, gauss_variance, gauss_z
exx_r, exx_i, exy_r, exy_i, ……
solution_qz, solution_R

variables:
energy
epsilon
resolution
energyscan_qz

functions
write([string, numbers, …])
print([string, numbers, …])
CalculateReflectivity()
ShowMatrixEigenvalues()
GetError()
ShowEScanEigenvalues(layerindex)

ReMagX 1.5.0

Parallelized EScan

Added “energy” variable to script. You can use to add a lorentz oscillator in EScan for example.

Polarization tab changed to a more common definition