User Tools

Site Tools


documentation:simulation_modes

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
documentation:simulation_modes [2011/09/22 19:08] 142.103.140.43documentation:simulation_modes [2015/09/09 08:59] (current) macke
Line 1: Line 1:
 +=====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")
 +
 +
 +
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki