Fitting of for pMTJ structures using Python
##Introduction
In this project, we ae going to model an all prependicular device based on Kittle formula and try to calculate its FMR frequency under the application of a tilted field. The structure contains two magnetic layers, is the fixed layer and is the free layer, which are separated by an insulator spacer. Based on Kittle formula, the resonance frequency, , for an applied DC magnetic field, , is equal to
Here, is Gyromagnetic ratio, and are the magnetic anisotropy fields in which and are the first and second order anisotropy for the layer. is defined as the stray field between the layers. is the angle of the DC applied field and and are the equilibrium angles of the layers when the DC field is applied to the structure. All the angles are defined w.r.t. the normal vector of the layers. To find and values, the equilibrium conditions of both the layers should be solved for all the applied field values.
In order to simplify the model, we consider the fixed layer is always prependicular (), and also ignore the second order anisotropy of the free layer (). Then the equilibrium condition for the free layer is:
Also and is simpliefied to
Using the formula, we can simply extract the equilibrium angle of the magnetization versus the strength of the field for a given external field angel.
##Results
First we import the libraries we need. for handling arrays, for finding the equilibrium angle, and for plotting.
Then we need to set the ranges for the parameters in our model. Here we can define the ranges for and . The code uses for loops to solve the equation for every combinations of these two parameters.
Here, the external field is defined. is the angle of the applied DC magnetic field in degree w.r.t. the normal vector of the layers (For in-plane field, ), and is vector contains the strength of the applied field.
Here the equilibrium condition and the resonance frequency for the free layer based on Kittel formula are defined.
The next cell is for the initialization of the variables used in the code.
Here, based on the ranges defined for the parameters, the code does the sweep and fitting. The output is the table contains the combination of the parameters and the calculated values.