In this example, we model the Magneto-Optic Kerr Effect (MOKE), which describes the changes to light reflected from a magnetized surface.

## Simulation setup

In this example, we study a simple polar MOKE set up where the magnetization vector perpendicular to the reflection surface, and the incident plane wave is at normal incidence. Other types of MOKE (with the magnetization vector along different directions) can be modeled with a very similar simulation methodology.

In this example, we will use an anisotropic material combined with a grid attribute object, which allows us to apply an arbitrary unitary matrix necessary for inducing the correct rotation. Specifically, we want to set the magnetization vector perpendicular to the reflection surface and parallel to the plane of incidence. To do this, we define the following unitary matrix:

$$ U=\frac{1}{\sqrt{2}}\left(\begin{array}{ccc}{1} & {i} & {0} \\ {1} & {-i} & {0} \\ {0} & {0} & {\sqrt{2}}\end{array}\right) $$

and use a matrix transform grid attribute to apply this rotation. The script MOKE.lsf defines U and sets it as the transform matrix, where U is obtained from the method described on this page, Matrix transformation

In MOKE.fsp, we start with a plane wave polarized in the x direction, and use Polarization Ellipse analysis group to determine the primary polarization angle and the degree of circular polarization. The polarization ellipse analysis object can be found in the object library

in the far field projections section.

## Results

We will use a a simple anisotropic material (with nx = 1.55, ny = 1.45, nz = 1.5) as a test case (see MOKE_reference.fsp). As expected, the polarization of the reflected field does not change. (This plot can be generated by clicking on "Run analysis" under the Analysis script tab of the Polarization Ellipse analysis group). This plot is obtained by disabling the kerr_attribute grid attribute.

The same analysis with the magnetized surface in MOKE.fsp will show that the reflected light becomes elliptical polarized. This plot is obtained with the kerr_attribute grid attribute enabled.