Relation of FMR absorption to magnetization dynamics

361 views
Skip to first unread message

Bobby Obvious

unread,
May 30, 2024, 6:14:20 AM5/30/24
to mumax2
Hi everyone!

My question is not so much about mumax, but rather on the principles of dynamic magnetization processes. I could not find a lot of information in publications and literature, on this exact topic, so I figured I might as well give it a go here.

As I am sure many of you know, ferromagnetic resonance (FMR) refers to the absorption of part an external electromagnetic field's power by a FM sample (usually a thin film), when it is subject to a system of two external magnetic fields: 
  • a small alternating field H_alt of frequency f;
  • a larger static field H_const;
These can be applied in a number of ways, but In my case they are both in the plane of the magnetic film I am modelling, as shown here:

Screenshot at 2024-05-30 12-14-09.png

If the frequency f of the alternating field is fixed, the power absorption factor P is dependent on the amplitude of the static field, and at a certain value resonance occurs, during which the absorption reaches a maximum:

Screenshot at 2024-05-30 12-57-03.png

I would like to model the curve from above, but I cannot figure out how P is related to m(t). Is there a general equation for this??
From what I have found, the FMR driving frequency f can be derived from the linearized LLG, which can then be used to calculate the dynamic susceptibility, but this is a math-intensive approach I would rather avoid, and one that is only applicable for homogeneous precession (if my understanding is correct). Instead, I would like to calculate the averaged magnetization dynamics m(t) using mumax for a number of different H_const amplitudes, and then calculate P(H_const).


Here is more information on what I have currently been able to do:

1. I have written a simple script that generates the m(t) data for a range of H_const amplitude values, resetting the initial magnetization at the start of each simulation:

start := now()
OutputFormat = OVF2_TEXT

// Material properties
  Msat = 760000 // saturation magnetization (A/m)
  Aex = 1.3e-11 // exchange constant (J/m)
  alpha = 0.007 // Gilbert damping constant

// Magnetic anisotropy properties
  Ku1.setregion(1, 95.456) // uniaxial anisotropy constant (J/m3)
  anisU.setRegion(1, vector(0, 1, 0)) // anisotropy direction

// Mesh properties
  cell_count_x := 128
  cell_count_y := 256
  cell_count_z := 1
  d_cell := 5e-9 // cubic cell size (m)

// Constant field properties
  angle_ext_const := pi/2 // angle of orientation of constant field in respect to the y axis (rad)
  B_ext_const_amp_min := 0.003 // starting constant field amplitude (T)
  B_ext_const_amp_max := 0.008 // ending constant field amplitude (T)
  B_ext_const_amp_step := 0.0001 // constant field amplitude step (T)

// Alternating field properties
  angle_ext_alt := 0 // angle of orientation of alternating field in respect to the y axis (rad)
  B_ext_alt_amp := 0.0002 // alternating field amplitude (T)
  f := 2e9 // alternating field frequency (Hz)

// Simulation time settings
  total_time_for_single_f := 10e-9 // simulation time for single frequency value (s)
  save_time_step := 1e-16 // time step for saving data (s)
  tableautosave(save_time_step)

////////////////////////////////////////////////////////////////////////////////

// Generating film geometry
SetGridsize(cell_count_x, cell_count_y, cell_count_z)
SetCellsize(d_cell, d_cell, d_cell)
EdgeSmooth = 3

tableadd(B_ext)

count := 1 // counter to display progress

for B_ext_const_amp:=B_ext_const_amp_min; B_ext_const_amp<B_ext_const_amp_max+B_ext_const_amp_step; B_ext_const_amp+=B_ext_const_amp_step{

    print("Calculating B_const step: ", count, "/", (B_ext_const_amp_max-B_ext_const_amp_min)/B_ext_const_amp_step + 1)

    // Initializing magnetization
    m = uniform(1, 0, 0)

    // Updating total external field and calculating magnetization dynamics
    B_ext = vector(B_ext_alt_amp*sin(2*pi*f*t)*sin(angle_ext_alt) + B_ext_const_amp*sin(angle_ext_const), B_ext_alt_amp*sin(2*pi*f*t)*cos(angle_ext_alt) + B_ext_const_amp*cos(angle_ext_const), 0)
    run(total_time_for_single_f)

    count += 1
}
total_run_time := since(start).Seconds()
print("Total run time: ", total_run_time)

2. I have checked whether logic is correct here, and as expected, for a resonant H_const field the averaged magnetization precession reaches a maximum amplitude (the purple dots):
Untitled.png

3. I have tried applying the following equation from a paper I found (only using the second half of m(t), as not to take relaxation processes into account):
Screenshot at 2024-05-30 13-01-15.png
... but the results I get change a lot depending on what H_const sweep range I set :( Also, this equation does not depend on the size of the sample, which I expect should have a significant effect on the power absorbed, and It only sort of works for high frequencies (above 2 GHz).


I will be extremely grateful for any help on this topic. Maybe somebody here has performed similar studies, or could provide a link to a paper where this method is discussed. Thanks!

Bobby Obvious

unread,
May 30, 2024, 6:37:59 AM5/30/24
to mumax2
Does E_total account for the energy absorbed from the external field?

Felipe Garcia

unread,
May 30, 2024, 7:24:53 AM5/30/24
to mum...@googlegroups.com
Dear Bobby Obvious,

I think it is very educational to deal with the linearized LLG equation and for your system it is almost straightforward. When this is done one can get a simple equation for the linewidth and the response as a forced damped oscillator. Then one can introduce the losses and calculate the dissipated energy based on the LLG Equation, which of course depends on the size of the simulated sample. For starting points, one can read the book of Stancil (Spin Waves: Theory and Applications)  or Gurevich ( Magnetization oscillations and waves).

Sincerely,
Felipe

--
You received this message because you are subscribed to the Google Groups "mumax2" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mumax2+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/mumax2/ee3f75c2-e2be-412e-acab-0a5d8ef3a82cn%40googlegroups.com.

Bobby Obvious

unread,
May 30, 2024, 8:23:53 AM5/30/24
to mumax2
Thank you for your suggestion! Do you know if this method is applicable when these is also a non-uniform field present? I would like to model the FMR absorption curves when magnetoelasicity is accounted for, so this adds another layer of complexity
Reply all
Reply to author
Forward
0 new messages