I am trying to reproduce this paper (Dynamic micromagnetic simulation of permalloy antidot array film" (attached as "play""
1.- First find the balance setting with the file "AntirelaxGEVOLVE.mif"
2.- With that I gave the file that I called "relax.omf"
3.- And from that arme the code for the magnetic pulse H (t) in file "sin pbc.mif" where part of the balance configuration
The thing is that I have already tried in many ways to calculate the dynamic susceptibility that is FFT (mX) / FFT (hX) without any results similar to the paper.I have also changed the code several times I have been testing because maybe I have faults or something.
AntirelaxGEVOLVE.mif
# MIF 2.1
# proyecto Eduardo
set pi [expr 4*atan(1.0)]
set mu0 [expr 4*$pi*1e-7]
Specify Oxs_ImageAtlas:eduardo {
xrange {0 100e-9}
yrange {0 100e-9}
zrange {0 20e-9}
viewplane xy
image anti.bmp
colormap {
black Cairo
white vacuum
}}
Specify Oxs_RectangularMesh:mesh {
cellsize {5e-9 5e-9 5e-9}
atlas :eduardo
}
# number of elements: 2e6
Specify Oxs_UZeeman:extfield0 [subst {
Hrange {
{0 0 100 0 0 50 100}
{0 0 50 0 0 0 100}
{0 0 0 0 0 0 1}
}
}]
# Exchange
Specify Oxs_UniformExchange {
A 13e-12
}
# Demag
Specify Oxs_Demag {}
# Evolver
Specify Oxs_CGEvolve {}
# Driver
Specify Oxs_MinDriver [subst {
evolver Oxs_CGEvolve
stopping_mxHxm 0.001
mesh :mesh
stage_count 202
stage_iteration_limit 0
total_iteration_limit 0
Ms { Oxs_AtlasScalarField {
atlas :eduardo
values {
Cairo 8.6e5
universe 0.0
vacuum 0.0
}
}
}
m0 { Oxs_UniformVectorField {
vector {0 0 1}
norm 1
} }
}]
sin pbc.mif
# MIF 2.1
# proyecto Eduardo
set pi [expr 4*atan(1.0)]
set mu0 [expr 4*$pi*1e-7]
Specify Oxs_MultiAtlas:atlas {
atlas { Oxs_ImageAtlas:Eduardo {
xrange {0 100e-9}
yrange {0 100e-9}
zrange {0 20e-9}
viewplane xy
image anti.bmp
colormap {
black Perma
white vacuum
}}
}
}
Specify Oxs_RectangularMesh:mesh {
cellsize {5e-9 5e-9 5e-9}
atlas :atlas
}
# Exchange
Specify Oxs_UniformExchange {
A 13e-12
}
# Demag
Specify Oxs_Demag {}
Specify Oxs_ScriptUZeeman {
script_args total_time
script Pulse
}
proc Pulse { total_time } {
set pa 1e9
set pamp 1000.0
set t [expr {$total_time}]
set Hx [expr {$pamp*exp(-$pa*$t)}]
set dHx [expr {-$pa*$pamp*exp(-$pa*$t)}]
return [list $Hx 0 0 $dHx 0 0]
}
Specify Oxs_RungeKuttaEvolve {
do_precess 1
alpha 0.025
start_dm 0.01
}
#Driver
Specify Oxs_TimeDriver {
evolver Oxs_RungeKuttaEvolve
stopping_time 1e-12
stage_iteration_limit {1 {0 1000} :expand:}
stage_count 1001
vector_field_output_format { text %.17g }
scalar_output_format %.17g
mesh :mesh
Ms { Oxs_AtlasScalarField {
atlas :atlas
values {
Perma 8.6e5
vacuum 0.0
}
}}
m0 {Oxs_FileVectorField {
file ./relax.omf
norm 1
atlas :atlas
}}
}