Table of Contents
Simulation algorithms
Overview of the different algorithms implemented
Parratt
- For optical isotropic material
- Very fast
- very stable algorithm
- can calculate only sigma- and pi-light. Circluar polarization modelled as average of sigma- and pi-light.
- magnetic contributions are included approximately for circular polarized light.
- The magnetic dichroism in the Parratt formalism is implemented by changing the magnetization of the sample. Because of the limitations of Parratt a dichroism by changing the polarization of the light is not possible.
Zak
- For optical isotropic material with magnetic contributions
- very slow
- stable algorithm
- arbitrary polarization of incident light
- top layer must be vacuum for calculating reflectivity
- top and bottom layer must be vacuum for calcuting transmission
- magnetization can have any direction in the material
- The magnetic dichroism is implemented by changing the polarization of the light. A change of the magnetization is not possible. Due to symmetry of the XMCD effect this is not a limitation.
Matrix
- For optical anisotropic material which can contain every effect that can be modelled by a dielectric tensor (e. g. magnetism, crystal structure, orbitals)
- very slow
- algorithm can be numerically unstable
- arbitrary polarization of incident light
- top layer must be vacuum for calculating reflectivity
- top and bottom layer must be vacuum for calcuting transmission
Simulation modes
The reflectivity is a function of <m>R(q_z, E)</m> with the wave vector <m>q_z = 2 k_0 sin(theta)</m>, angle of incidence <m>theta</m> and energy E. Several simulation modes are implemented to calculate the proper reflectivity.
Reflectivity
monochromatic
- Calculates the reflectivity <m>R(q_z)</m> for a given polarization and energy of the incoming light.
- The polarization is defined as “Ray 1” in the “Polarzation” tab.
- The energy is defined in the “Reflectivity Settings” tab.
dichroic
- Calculates the reflectivity <m>R(q_z)</m> for two given polarizations and one constant energy of the incoming light.
- The polarizations are defined as “Ray 1” and “Ray 2” in the polarzation tab.
- The energy is defined in the “Reflectivity Settings” tab.
asymmetry
- Calculates the asymmetry <m>A(q_z)</m> for two given polarizations and one constant energy of the incoming light. The asymmetry is defined as:
<m>A={R^{+} - R^{-}} / {R^{+} + R^{-}} </m>
- The polarizations are defined as “Ray 1” and “Ray 2” in the polarzation tab.
- The energy is defined in the “Reflectivity Settings” tab.
Energy Scan
monochromatic
dichroic
asymmetry
map
monochromatic
- Calculates the reflectivity <m>R(q_z, E)</m> of the sample for a given polarization and energy of the incoming light.
- The polarization is defined as “Ray 1” in the “Polarzation” tab.
- The energy is defined in the “Reflectivity Settings” tab.
Options
There are several options to alter the behaviour of the algorithms
Option Algorithm
Here you can choose the algorithm for the simulation
Parrat: activates the parratt algorithm
Full matrix formalism: activates matrix algorithm
Zak matrix formalism: activates zak algorithm
Option Precision
The algorithm are implemented with different accuracies. For most systems the precision “double” is sufficient. In most cases the precision option is only useful for the full matrix formalism because it can be numerically unstable.
float: uses the accuracy of the 4-byte floating point numbers
double: uses the accuracy of the 8-byte floating point numbers
long double: uses the accuracy of the 10-byte floating point numbers
60 digits: uses a floating point numbers with an accuracy of 60 digits. (Very slow, but very accurate)
roughness calculation
The interface roughness makes your model real. ReMagX uses a model known as Nevot&Croce which defines the interface with a continuous change of the optical constants delta and beta.
Nevot&Croce: Use a very efficient model to simulation interface roughness.
layer segmentation: Enable layer segmentation (see chapter “Adaptive Layer Segmentation”)