1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
# MIF 2.1
set pi [expr 4*atan(1.0)]
set mu0 [expr 4*$pi*1e-7]
set basename std5b
Parameter total_current -0.006 ;# Current in amps
Parameter Ms 800e3
Parameter A 13e-12
Parameter Polarization 0.5669
Parameter Lambda 2.0
Parameter eps_prime 1.0
Parameter mp_theta 20.0 ;# Direction of mp, in degrees
set mp_theta [expr {$mp_theta*$pi/180.}]
set length 160e-9
set width 80e-9
set thick 5e-9
set Nx 64
set Ny 32
set Nz 1
set current_area [expr {$length*$width}]
set current_density [expr {$total_current/$current_area}]
set xcellsize [expr {$length/$Nx}]
set ycellsize [expr {$width/$Ny}]
set zcellsize [expr {$thick/$Nz}]
Specify Oxs_BoxAtlas:atlas [subst {
xrange {0 $length}
yrange {0 $width}
zrange {0 $thick}
}]
Specify Oxs_RectangularMesh:mesh [subst {
cellsize {$xcellsize $ycellsize $zcellsize}
atlas :atlas
}]
# Exchange
Specify Oxs_UniformExchange [subst {
A $A
}]
# Demag
Specify Oxs_Demag {}
# Evolver
Specify Oxs_SpinXferEvolve:evolve [subst {
alpha 0.01
start_dm 0.00001
min_timestep 1e-18
max_timestep 1e-12
mp {[expr {cos($mp_theta)}] [expr {sin($mp_theta)}] 0}
J $current_density
P $Polarization
Lambda $Lambda
eps_prime $eps_prime
}]
# Driver
Specify Oxs_TimeDriver [subst {
basename [list ${basename}-eprime1]
evolver :evolve
stopping_time 1e-9
stage_count 1
mesh :mesh
Ms $Ms
m0 {1.0 0.1 0.0}
}]
Destination archive mmArchive
# Schedule Oxs_TimeDriver::Magnetization archive Stage 1
Schedule DataTable archive Stage 1
|