This is an old revision of the document!
Fix possible zero pointer dereference when the fitting thread is terminated
Change to C++ Builder XE 7 and gcc 4.8.1
Fix loading of data separated by tabulator
Fix plotting of the dielectric tensor
Add decimal point help in the data import window.
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
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.
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.
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)
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.
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.
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.
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
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
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
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
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.
Script execution Button works again
Added second scattering type: Transmission. Currently only available in matrix formalisms.
Corrected bug in inserting/removing layers
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.
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
!!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.
Clean up the simulation code
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
Added a window to show the electromagnetic field inside the layer
Separated the script window to “Before calculation” and “Default”
Tested different energy definitions. Changed the Fit frame.
The defined variables, tables and functions are
delta, beta, sigma, thickness, deltam, betam
gauss_delta, gauss_beta, gauss_variance, gauss_z
exx_r, exx_i, exy_r, exy_i, ……
write([string, numbers, …])
print([string, numbers, …])
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