9
9
10
10
global_nx = 174
11
11
global_ny = 150
12
- global_mesh = CuboidMesh (nx = global_nx ,ny = global_ny , pbc = '2d' )
12
+ global_mesh = CuboidMesh (nx = global_nx ,ny = global_ny , periodicity = [ True , True , False ] )
13
13
14
14
def init_m (pos ):
15
15
x ,y ,z = pos
@@ -36,15 +36,13 @@ def init_m(pos):
36
36
return m2
37
37
38
38
def sinc_fun (t ):
39
-
40
39
w = 0.1
41
-
42
40
return np .sinc (w * t )
43
41
44
42
def relax_system (mesh , Hy = 0 ):
45
43
46
44
sim = Sim (mesh ,name = 'relax' )
47
- sim .set_options (rtol = 1e-10 ,atol = 1e-12 )
45
+ sim .driver . set_tols (rtol = 1e-10 ,atol = 1e-12 )
48
46
sim .driver .alpha = 0.5
49
47
sim .driver .gamma = 1.0
50
48
sim .mu_s = 1.0
@@ -66,15 +64,15 @@ def relax_system(mesh, Hy=0):
66
64
zeeman = Zeeman ([0 ,Hy ,2e-2 ],name = 'H' )
67
65
sim .add (zeeman )
68
66
69
- sim .relax (dt = 2.0 , stopping_dmdt = 1e-8 , max_steps = 10000 , save_m_steps = 100 , save_vtk_steps = 50 )
67
+ sim .relax (dt = 2.0 , stopping_dmdt = 1e-7 , max_steps = 10000 , save_m_steps = 100 , save_vtk_steps = 50 )
70
68
71
69
np .save ('m0.npy' ,sim .spin )
72
70
73
71
def excite_system (mesh , Hy = 0 ):
74
72
75
73
sim = Sim (mesh ,name = 'dyn' )
76
74
77
- sim .set_options (rtol = 1e-10 ,atol = 1e-12 )
75
+ sim .driver . set_tols (rtol = 1e-10 ,atol = 1e-12 )
78
76
sim .driver .alpha = 0.04
79
77
sim .driver .gamma = 1.0
80
78
sim .mu_s = 1.0
@@ -99,13 +97,10 @@ def excite_system(mesh, Hy=0):
99
97
dt = 5
100
98
steps = 2001
101
99
for i in range (steps ):
102
-
103
100
sim .run_until (i * dt )
104
- #sim.save_m()
105
-
106
- #print 'sim t=%g'%(i*dt)
101
+ sim .save_m ()
102
+ print ("step {}/{}" .format (i , steps ))
107
103
108
104
if __name__ == '__main__' :
109
-
110
105
relax_system (global_mesh )
111
106
excite_system (global_mesh )
0 commit comments