Re: STT - keeping magnetic moment fixed for pinned layer

15 views
Skip to first unread message

Gavin Abo

unread,
Jan 3, 2026, 7:56:41 PM (8 days ago) Jan 3
to vampir...@googlegroups.com

In the publication at [1], it is also not clear to me how they set the magnetic moment fixed for the reference layer in their VAMPIRE simulation.

One way is to set different magnetic parameters for adjusting the coercivity values for the free layer and reference layer such as saturation magnetization (material[#]:atomic-spin-moment) and layer thickness.  The free layer coercivity values (-Hc1 and +Hc1) usually need to be lower than the reference layer coercivity values (-Hc2 and +Hc2).  That way an effective applied field (Happ) slightly larger than Hc1 will switch the free layer but not switch the reference layer (leaving its magnetic moments fixed) [Hc1 < Happ < Hc2].

Another way to make the moment fixed in a reference layer (especially in the case when the free and reference layer have the same magnetic parameters) is to use an anti-ferromagnetic (AFM) layer.  A paper on that you should find at [2].

There is also a synthetic anti-ferromagnet (SAF) structure as an alternative to that of the AFM layer that could be used to make the moment fixed in a reference layer.  A dissertation on that you should find at [3].

A simple model that you might come across in literature that is used to fix the moments for a reference layer is to use a local applied field for emulating an exchange bias (Hbias) behavior.  The abstract at [4] calls the local field a "direction magnetic field".

Of note, the article at [1] is for an out-of-plane stack.  However, the following in-plane example might still be of interest to you. 

As seen in the attached stack.mat, the following two keywords can be used to apply a local applied field to a material layer:

material[#]:applied-field-strength
material[#]:applied-field-unit-vector

The following hysteresis loop calculation was ran:

username@computername:~/exchange_bias$ ls -l
total 16
-rw-r--r-- 1 username username  308 Jan  2 18:06 calculate_exchanges.sh
-rw-r--r-- 1 username username  162 Jan  2 17:57 hplot
-rw-r--r-- 1 username username  512 Jan  2 19:02 input
-rw-r--r-- 1 username username 1036 Jan  2 19:01 stack.mat
username@computername:~/exchange_bias$ chmod +x calculate_exchanges.sh 
username@computername:~/exchange_bias$ dos2unix calculate_exchanges.sh 
dos2unix: converting file calculate_exchanges.sh to Unix format...
username@computername:~/exchange_bias$ ./calculate_exchanges.sh 
                                                _          
                                               (_)         
                    __   ____ _ _ __ ___  _ __  _ _ __ ___ 
                    \ \ / / _` | '_ ` _ \| '_ \| | '__/ _ \
                     \ V / (_| | | | | | | |_) | | | |  __/
                      \_/ \__,_|_| |_| |_| .__/|_|_|  \___|
                                         | |               
                                         |_|               

                      Version 7.0.0 Dec 27 2025 22:03:50

             Git commit: fed31aa8d06f278d43089352e126350bfdca26f2
...
Simulation ended gracefully.
username@computername:~/exchange_bias$ gnuplot --persist hplot

The hysteresis plot shows a green curve for material[3]:applied-field-strength=5.0 !T and a purple curve for material[3]:applied-field-strength=1.0 !T.  For the green curve, you can see the free layer coercivity values (-Hc1 ≈ -12.4 T and +Hc1  2.4 T) are less than the reference layer ones (-Hc2 ≈ -20 T and +Hc2 ≈ 21 T).  Thus, the reference layer magnetic moments should stay fixed as long we don't use an "effective" applied field greater than 20 T (= |-Hc2|) in this case.  By "effective", I mean that only a magnetic applied field was used for this simulation but an Oersted field from a spin polarized current potentially could be also used.  You might also notice that the loops are not symmetrical around 0.  The green curve is shifted to the left having an Hbias of -5.0 T, while the purple curve has Hbias = -1.0 T.  Therefore, if you have an experimentally measured Hbias, you could adjust the applied-field-strength to achieve a matching simulated Hbias value.  Obviously, this calculation is just for the purpose of demonstration.  One won't use parameters for reduced calculation speed instead of for accuracy, such as sim:loop-time-steps=1500 in the input file, where those should be changed for a production level simulation.

loop_with_Hbias.png

[1] https://doi.org/10.1088/1361-648X/ac9c80
[2] https://arxiv.org/abs/2010.08779v1
[3] https://etheses.whiterose.ac.uk/id/eprint/36390/1/Wayne%20Lack.pdf
[4] https://ieeexplore.ieee.org/document/8508117

Kind Regards,
Gavin
VAMPIRE user

On 11/6/2025 2:37 AM, Vinod wrote:
And how does the system know, which one is the reference layer and which one is the free layer?

Vinod 在 2025年11月6日 星期四下午5:14:56 [UTC+8] 的信中寫道:
Hi, 
In Andrea Meo's 2023 paper J. Phys.: Condens. Matter 35 (2023) 025801, it was mentioned in Sec 4.2 first paragraph that the reference layer moment is fixed. So how would we do this? Like how do we specify the fixed layer and the free layer?

Thank you.
hplot
calculate_exchanges.sh
input
stack.mat

Vinod Naik Bhukya

unread,
Jan 4, 2026, 12:02:58 AM (8 days ago) Jan 4
to Vampire Users
Thank you. I have one more doubt.
When CoFeB/MgO/CoFeB is implemented, a single CoFeB layer is treated as bulk+interface and in the material file, this entire stack (CoFeB/MgO/CoFeB) is implemented as 5 materials (CoFeB bulk + CoFeB interface + MgO + CoFeB interface + CoFeB bulk). So when i plot Hysteresis should i average out the Bulk and interface mZ values to treat it as magentization of a single CoFeB layer? 

gabo...@gmail.com 在 2026年1月4日 星期日上午8:56:41 [UTC+8] 的信中寫道:

gabo...@gmail.com

unread,
Jan 4, 2026, 3:15:07 AM (8 days ago) Jan 4
to Vampire Users
Adding the CoFeB interface would be an improvement on the simulation model to align to when that's observed experimentally in a stack.

Sure, you should be able to just look at the simulated hysteresis loop from use of the output:magnetisation in the input file to see the overall effects with the CoFeB bulk + CoFeB interface.  If you're needing do an analysis using the individual magnetizations from just one of the layers, their is output:material-magnetisation.

The hysteresis loop is more useful for a stack when magnetic switching is being used.  If your switching will be done by spin polarized currents, then you will probably want to create instead plots of anti-parallel (AP) to parallel (P) and P to AP magnetization vs time.  An example of a AP to P plot from [1] is below:

magnetization_vs_time_example_plot.png

It looks like that figure is from the article titled "Interface imperfection effects on spin transfer torque switching: an atomistic approach" by A. K. Ramesh et. al. [2].

Often times, you will probably want to simulate for different current densities.  For example, it could be helpful to make a plot similar to Fig. 3. (b) from the article at [3]:

current_density_vs_pulse_width.png

It can also be good practice to check the magnetization snapshots for observing that the current density applied in the calculation for generating the spin polarized current is causing only the free layer in the simulation to flip (and not the reference layer).


Kind Regards,
Gavin
VAMPIRE user

loop_with_Hbias.png

The hysteresis plot shows a green curve for material[3]:applied-field-strength=5.0 !T and a purple curve for material[3]:applied-field-strength=1.0 !T.  For the green curve, you can see the free layer coercivity values (-Hc1 ≈ -12.4 T and +Hc1  2.4 T) are less than the reference layer ones (-Hc2 ≈ -20 T and +Hc2 ≈ 21 T).  Thus, the reference layer magnetic moments should stay fixed as long we don't use an "effective" applied field greater than 20 T (= |-Hc2|) in this case.  By "effective", I mean that only a magnetic applied field was used for this simulation but an Oersted field from a spin polarized current potentially could be also used.  You might also notice that the loops are not symmetrical around 0.  The green curve is shifted to the left having an Hbias of -5.0 T, while the purple curve has Hbias = -1.0 T.  Therefore, if you have an experimentally measured Hbias, you could adjust the applied-field-strength to achieve a matching simulated Hbias value.  Obviously, this calculation is just for the purpose of demonstration.  One won't use parameters for reduced calculation speed instead of for accuracy, such as sim:loop-time-steps=1500 in the input file, where those should be changed for a production level simulation.

Reply all
Reply to author
Forward
0 new messages