import oommfc as oc
%matplotlib inline
L = 100e-9
d = 10e-9
mesh = oc.Mesh(p1=(0, 0, 0), p2=(L, L, L), cell=(d, d, d), name="mesh")
mesh
The domain edge lengths in x, y, and z directions are:
mesh.l
(1e-07, 1e-07, 1e-07)
The number of cells in all three directions:
mesh.n
(10, 10, 10)
The centre point of the mesh:
mesh.centre
(5e-08, 5e-08, 5e-08)
The basic block of our micromagnetic model is the system object. It is fully defined if:
are provided. The system is then "driven" in phase space using particular drivers.
system = oc.System(name="system")
exchange = oc.Exchange(A=1e-12)
exchange
exchange.A
1e-12
repr(exchange)
'Exchange(A=1e-12, name="exchange")'
hamiltonian = exchange + oc.Zeeman(H=(1e6, 0, 0))
type(hamiltonian)
oommfc.hamiltonian.hamiltonian.Hamiltonian
system.hamiltonian = hamiltonian
system.hamiltonian
system.hamiltonian.exchange.A
1e-12
system.hamiltonian.zeeman.H
(1000000.0, 0, 0)
system.hamiltonian += oc.Demag(name="energy_term_name")
system.hamiltonian.energy_term_name
system.dynamics = oc.Precession(gamma=2.211e5) + oc.Damping(alpha=0.1)
system.dynamics
import discretisedfield as df
Ms = 8e5
m = df.Field(mesh, value=(1, 0, 1), norm=Ms, name="m")
p = (50e-9, 50e-9, 5e-9)
m(p) # sampling
(565685.424949238, 0.0, 565685.424949238)
m.f = lambda pos: (pos[0]+pos[2]+1, pos[2], 0)
system.m = m
md = oc.MinDriver()
md.drive(system)
2018/3/26 16:34: Calling OOMMF (system/system.mif) ... [0.7s]
system.m.average
(796387.7336532547, -8.731149137020111e-14, -0.00040152357437182217)
system.m.plot_plane("z")
system.hamiltonian.zeeman.H = (0, 1e7, 0)
md.drive(system)
2018/3/26 16:34: Calling OOMMF (system/system.mif) ... [0.6s]
system.m.plot_plane("z")
system.hamiltonian += oc.UniaxialAnisotropy(K1=5e3, u=(0, 0, 1))
system.hamiltonian.zeeman.H = (1e6, 0, 0)
td = oc.TimeDriver()
td.drive(system, t=0.2e-9, n=50)
2018/3/26 16:34: Calling OOMMF (system/system.mif) ... [1.2s]
system.m.plot_plane("z")
system.dt
E | Ecount | max_dm/dt | dE/dt | deltaE | E_Exchange | max_spin_angle | stage_max_spin_angle | run_max_spin_angle | E_Zeeman | E_Demag | E_UniaxialAnisotropy | iteration | stage_iteration | stage | mx | my | mz | last_time_step | t | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 4.937978e-17 | 49.0 | 15504.169456 | -2.199822e-05 | -3.014085e-17 | 2.434921e-20 | 5.843010 | 5.843010 | 5.843010 | -8.571958e-17 | 1.329931e-16 | 2.081906e-18 | 8.0 | 8.0 | 0.0 | 0.085267 | 0.635764 | 0.762966 | 1.365857e-12 | 4.000000e-12 |
1 | -3.745400e-17 | 62.0 | 15355.073463 | -2.135642e-05 | -4.007768e-17 | 6.193981e-20 | 10.194041 | 10.194041 | 10.194041 | -1.715614e-16 | 1.336715e-16 | 3.739732e-19 | 11.0 | 2.0 | 1.0 | 0.170655 | -0.174363 | 0.961511 | 1.860994e-12 | 8.000000e-12 |
2 | -1.210936e-16 | 75.0 | 15475.885770 | -2.045376e-05 | -3.639889e-17 | 7.732737e-20 | 15.015990 | 15.015990 | 15.015990 | -2.616382e-16 | 1.366673e-16 | 3.800002e-18 | 14.0 | 2.0 | 2.0 | 0.260256 | -0.827733 | 0.475004 | 1.762302e-12 | 1.200000e-11 |
3 | -2.011240e-16 | 88.0 | 15054.641932 | -1.954275e-05 | -3.291024e-17 | 1.013508e-19 | 16.748167 | 16.748167 | 16.748167 | -3.440782e-16 | 1.384426e-16 | 4.410329e-18 | 17.0 | 2.0 | 3.0 | 0.342261 | -0.870443 | -0.316834 | 1.666791e-12 | 1.600000e-11 |
4 | -2.770202e-16 | 101.0 | 14069.762967 | -1.835674e-05 | -3.243005e-17 | 1.405714e-19 | 19.713938 | 19.713938 | 19.713938 | -4.130360e-16 | 1.344386e-16 | 1.436607e-18 | 20.0 | 2.0 | 4.0 | 0.410854 | -0.304328 | -0.842589 | 1.740225e-12 | 2.000000e-11 |
5 | -3.478000e-16 | 114.0 | 13129.912239 | -1.703618e-05 | -2.758906e-17 | 1.513495e-19 | 20.389262 | 20.897681 | 20.897681 | -4.818787e-16 | 1.317493e-16 | 2.178021e-18 | 23.0 | 2.0 | 5.0 | 0.479334 | 0.433170 | -0.745181 | 1.594995e-12 | 2.400000e-11 |
6 | -4.133816e-16 | 127.0 | 12642.331456 | -1.574731e-05 | -2.518676e-17 | 1.894826e-19 | 17.674614 | 20.389262 | 20.897681 | -5.510081e-16 | 1.326767e-16 | 4.760248e-18 | 26.0 | 2.0 | 6.0 | 0.548098 | 0.805275 | -0.136522 | 1.573383e-12 | 2.800000e-11 |
7 | -4.733437e-16 | 140.0 | 11522.221837 | -1.417117e-05 | -2.140401e-17 | 2.957435e-19 | 18.096429 | 18.096429 | 20.897681 | -6.074985e-16 | 1.302324e-16 | 3.626618e-18 | 29.0 | 2.0 | 7.0 | 0.604290 | 0.577910 | 0.499801 | 1.477491e-12 | 3.200000e-11 |
8 | -5.266426e-16 | 153.0 | 11135.846711 | -1.252402e-05 | -1.799357e-17 | 3.928615e-19 | 20.508025 | 20.508025 | 20.897681 | -6.584845e-16 | 1.289977e-16 | 2.451356e-18 | 32.0 | 2.0 | 8.0 | 0.655007 | -0.014985 | 0.708063 | 1.406479e-12 | 3.600000e-11 |
9 | -5.740128e-16 | 166.0 | 11413.875436 | -1.120847e-05 | -1.514981e-17 | 4.764423e-19 | 22.945438 | 22.945438 | 22.945438 | -7.113419e-16 | 1.328580e-16 | 3.994594e-18 | 35.0 | 2.0 | 9.0 | 0.707585 | -0.504395 | 0.402317 | 1.327369e-12 | 4.000000e-11 |
10 | -6.161923e-16 | 179.0 | 10319.761978 | -9.834164e-06 | -1.251996e-17 | 6.096416e-19 | 27.072972 | 27.072972 | 27.072972 | -7.529104e-16 | 1.315536e-16 | 4.554895e-18 | 38.0 | 2.0 | 10.0 | 0.748934 | -0.567526 | -0.122591 | 1.243758e-12 | 4.400000e-11 |
11 | -6.525646e-16 | 192.0 | 10307.094038 | -8.402248e-06 | -1.173239e-17 | 7.223619e-19 | 31.073289 | 31.073289 | 31.073289 | -7.843329e-16 | 1.273924e-16 | 3.653562e-18 | 41.0 | 2.0 | 11.0 | 0.780190 | -0.234568 | -0.465986 | 1.360582e-12 | 4.800000e-11 |
12 | -6.839960e-16 | 205.0 | 10436.849208 | -7.383938e-06 | -7.971672e-18 | 7.773075e-19 | 32.477348 | 32.477348 | 32.477348 | -8.170502e-16 | 1.283356e-16 | 3.941302e-18 | 44.0 | 2.0 | 12.0 | 0.812735 | 0.189069 | -0.423927 | 1.062801e-12 | 5.200000e-11 |
13 | -7.117576e-16 | 218.0 | 10411.837764 | -6.472468e-06 | -7.425230e-18 | 8.613818e-19 | 32.949572 | 32.949572 | 32.949572 | -8.447933e-16 | 1.275172e-16 | 4.657098e-18 | 47.0 | 2.0 | 13.0 | 0.840331 | 0.390629 | -0.100327 | 1.123011e-12 | 5.600000e-11 |
14 | -7.355681e-16 | 231.0 | 10378.972811 | -5.450044e-06 | -6.452968e-18 | 9.392293e-19 | 32.494396 | 32.949572 | 32.949572 | -8.643217e-16 | 1.234721e-16 | 4.342216e-18 | 50.0 | 2.0 | 14.0 | 0.859757 | 0.272955 | 0.217848 | 1.154540e-12 | 6.000000e-11 |
15 | -7.557243e-16 | 244.0 | 10389.104057 | -4.686027e-06 | -4.794578e-18 | 9.452782e-19 | 32.558602 | 32.627635 | 32.949572 | -8.844399e-16 | 1.236079e-16 | 4.162454e-18 | 53.0 | 2.0 | 15.0 | 0.879769 | -0.010657 | 0.304585 | 1.005863e-12 | 6.400000e-11 |
16 | -7.732456e-16 | 257.0 | 10309.645016 | -4.071587e-06 | -4.075358e-18 | 9.300978e-19 | 32.131715 | 32.558602 | 32.949572 | -9.033767e-16 | 1.245514e-16 | 4.649548e-18 | 56.0 | 2.0 | 16.0 | 0.898605 | -0.219343 | 0.147987 | 9.818199e-13 | 6.800000e-11 |
17 | -7.881627e-16 | 270.0 | 10089.349536 | -3.392140e-06 | -3.140289e-18 | 9.076595e-19 | 30.814265 | 32.131715 | 32.949572 | -9.165854e-16 | 1.227455e-16 | 4.769570e-18 | 59.0 | 2.0 | 17.0 | 0.911744 | -0.217228 | -0.084417 | 9.058716e-13 | 7.200000e-11 |
18 | -8.005915e-16 | 283.0 | 10012.518686 | -2.865011e-06 | -2.721054e-18 | 8.467606e-19 | 29.434109 | 30.814265 | 32.949572 | -9.287913e-16 | 1.228290e-16 | 4.524113e-18 | 62.0 | 2.0 | 18.0 | 0.923886 | -0.050351 | -0.205048 | 9.333923e-13 | 7.600000e-11 |
19 | -8.112797e-16 | 296.0 | 9982.572772 | -2.488292e-06 | -2.256585e-18 | 7.750924e-19 | 27.877201 | 29.434109 | 32.949572 | -9.408146e-16 | 1.241316e-16 | 4.628085e-18 | 65.0 | 2.0 | 19.0 | 0.935846 | 0.124247 | -0.146310 | 8.920453e-13 | 8.000000e-11 |
20 | -8.204546e-16 | 309.0 | 9814.376291 | -2.099438e-06 | -1.743774e-18 | 7.153842e-19 | 28.758789 | 28.758789 | 32.949572 | -9.495663e-16 | 1.235462e-16 | 4.850091e-18 | 68.0 | 2.0 | 20.0 | 0.944551 | 0.175076 | 0.014661 | 8.152323e-13 | 8.400000e-11 |
21 | -8.281446e-16 | 322.0 | 9715.196313 | -1.767623e-06 | -1.446951e-18 | 6.522417e-19 | 29.772576 | 29.772576 | 32.949572 | -9.568277e-16 | 1.232489e-16 | 4.781989e-18 | 71.0 | 2.0 | 21.0 | 0.951774 | 0.085608 | 0.140288 | 8.057527e-13 | 8.800000e-11 |
22 | -8.347221e-16 | 335.0 | 9539.644900 | -1.528949e-06 | -2.182273e-18 | 5.888246e-19 | 30.388168 | 30.388168 | 32.949572 | -9.640081e-16 | 1.239732e-16 | 4.723992e-18 | 74.0 | 2.0 | 22.0 | 0.958917 | -0.055093 | 0.143455 | 1.391394e-12 | 9.200000e-11 |
23 | -8.403664e-16 | 348.0 | 9259.550931 | -1.290777e-06 | -1.854833e-18 | 5.378160e-19 | 30.631597 | 30.631597 | 32.949572 | -9.694246e-16 | 1.236619e-16 | 4.858575e-18 | 77.0 | 2.0 | 23.0 | 0.964304 | -0.136295 | 0.041299 | 1.391394e-12 | 9.600000e-11 |
24 | -8.450729e-16 | 361.0 | 8840.087656 | -1.073293e-06 | -1.539683e-18 | 4.913504e-19 | 30.374484 | 30.631597 | 32.949572 | -9.735402e-16 | 1.230710e-16 | 4.904977e-18 | 80.0 | 2.0 | 24.0 | 0.968398 | -0.108966 | -0.076131 | 1.391394e-12 | 1.000000e-10 |
25 | -8.490451e-16 | 374.0 | 8568.953060 | -9.213126e-07 | -1.314805e-18 | 4.446071e-19 | 29.518044 | 30.374484 | 32.949572 | -9.776918e-16 | 1.233727e-16 | 4.829423e-18 | 83.0 | 2.0 | 25.0 | 0.972528 | -0.009550 | -0.123405 | 1.391394e-12 | 1.040000e-10 |
26 | -8.524603e-16 | 387.0 | 8254.767666 | -7.853924e-07 | -1.126364e-18 | 4.044652e-19 | 28.492653 | 29.518044 | 32.949572 | -9.812035e-16 | 1.234881e-16 | 4.850697e-18 | 86.0 | 2.0 | 26.0 | 0.976021 | 0.081286 | -0.078977 | 1.391394e-12 | 1.080000e-10 |
27 | -8.553319e-16 | 400.0 | 7893.386926 | -6.548864e-07 | -9.400547e-19 | 3.694536e-19 | 28.386613 | 28.492653 | 32.949572 | -9.838975e-16 | 1.232667e-16 | 4.929397e-18 | 89.0 | 2.0 | 27.0 | 0.978701 | 0.102731 | 0.011459 | 1.391394e-12 | 1.120000e-10 |
28 | -8.577491e-16 | 413.0 | 7641.527813 | -5.597029e-07 | -7.988493e-19 | 3.344909e-19 | 28.283834 | 28.386613 | 32.949572 | -9.865564e-16 | 1.235505e-16 | 4.922269e-18 | 92.0 | 2.0 | 28.0 | 0.981346 | 0.052051 | 0.078673 | 1.391394e-12 | 1.160000e-10 |
29 | -8.598291e-16 | 426.0 | 7299.297534 | -4.800766e-07 | -6.876444e-19 | 3.029083e-19 | 27.989059 | 28.283834 | 32.949572 | -9.889493e-16 | 1.239196e-16 | 4.897756e-18 | 95.0 | 2.0 | 29.0 | 0.983726 | -0.023889 | 0.081475 | 1.391394e-12 | 1.200000e-10 |
30 | -8.615842e-16 | 439.0 | 6858.827135 | -3.986727e-07 | -5.735580e-19 | 2.771558e-19 | 27.653586 | 27.989059 | 32.949572 | -9.906946e-16 | 1.239020e-16 | 4.931174e-18 | 98.0 | 2.0 | 30.0 | 0.985462 | -0.069466 | 0.029807 | 1.391394e-12 | 1.240000e-10 |
31 | -8.630434e-16 | 452.0 | 6357.899312 | -3.351931e-07 | -4.794881e-19 | 2.532146e-19 | 27.757233 | 27.757233 | 32.949572 | -9.922164e-16 | 1.239696e-16 | 4.950138e-18 | 101.0 | 2.0 | 31.0 | 0.986976 | -0.059800 | -0.031325 | 1.391394e-12 | 1.280000e-10 |
32 | -8.642882e-16 | 465.0 | 5957.159541 | -2.882611e-07 | -4.120965e-19 | 2.299595e-19 | 27.537059 | 27.757233 | 32.949572 | -9.936225e-16 | 1.241716e-16 | 4.932658e-18 | 104.0 | 2.0 | 32.0 | 0.988375 | -0.012035 | -0.058992 | 1.391394e-12 | 1.320000e-10 |
33 | -8.653482e-16 | 478.0 | 5515.839101 | -2.417749e-07 | -3.475561e-19 | 2.096359e-19 | 27.053136 | 27.537059 | 32.949572 | -9.946396e-16 | 1.241418e-16 | 4.940050e-18 | 107.0 | 2.0 | 33.0 | 0.989386 | 0.034209 | -0.041045 | 1.391394e-12 | 1.360000e-10 |
34 | -8.662315e-16 | 491.0 | 5110.000900 | -2.021031e-07 | -2.895495e-19 | 1.912774e-19 | 26.471374 | 27.053136 | 32.949572 | -9.954299e-16 | 1.240440e-16 | 4.963136e-18 | 110.0 | 2.0 | 34.0 | 0.990172 | 0.047827 | 0.001563 | 1.391394e-12 | 1.400000e-10 |
35 | -8.669810e-16 | 504.0 | 4793.875448 | -1.738855e-07 | -2.482340e-19 | 1.733167e-19 | 25.929862 | 26.471374 | 32.949572 | -9.961989e-16 | 1.240864e-16 | 4.958208e-18 | 113.0 | 2.0 | 35.0 | 0.990937 | 0.025555 | 0.035111 | 1.391394e-12 | 1.440000e-10 |
36 | -8.676240e-16 | 517.0 | 4438.043319 | -1.474178e-07 | -2.116492e-19 | 1.568721e-19 | 25.392072 | 25.929862 | 32.949572 | -9.968302e-16 | 1.241018e-16 | 4.947592e-18 | 116.0 | 2.0 | 36.0 | 0.991565 | -0.010894 | 0.038107 | 1.391394e-12 | 1.480000e-10 |
37 | -8.681617e-16 | 530.0 | 4017.941395 | -1.224026e-07 | -1.757864e-19 | 1.420930e-19 | 24.646364 | 25.392072 | 32.949572 | -9.973365e-16 | 1.240743e-16 | 4.958437e-18 | 119.0 | 2.0 | 37.0 | 0.992069 | -0.033884 | 0.013635 | 1.391394e-12 | 1.520000e-10 |
38 | -8.686131e-16 | 543.0 | 3604.464977 | -1.044552e-07 | -1.491170e-19 | 1.275270e-19 | 23.556188 | 24.646364 | 32.949572 | -9.978622e-16 | 1.241533e-16 | 4.968274e-18 | 122.0 | 2.0 | 38.0 | 0.992592 | -0.029612 | -0.016956 | 1.391394e-12 | 1.560000e-10 |
39 | -8.690012e-16 | 556.0 | 3283.971275 | -8.957307e-08 | -1.282845e-19 | 1.138295e-19 | 22.206891 | 23.556188 | 32.949572 | -9.983501e-16 | 1.242696e-16 | 4.965525e-18 | 125.0 | 2.0 | 39.0 | 0.993077 | -0.005164 | -0.031620 | 1.391394e-12 | 1.600000e-10 |
40 | -8.693290e-16 | 569.0 | 2929.153015 | -7.457094e-08 | -1.072227e-19 | 1.025598e-19 | 20.765046 | 22.206891 | 32.949572 | -9.987202e-16 | 1.243221e-16 | 4.966526e-18 | 128.0 | 2.0 | 40.0 | 0.993445 | 0.019773 | -0.022659 | 1.391394e-12 | 1.640000e-10 |
41 | -8.696023e-16 | 582.0 | 2585.758042 | -6.286259e-08 | -8.989113e-20 | 9.319034e-20 | 19.317768 | 20.765046 | 32.949572 | -9.990365e-16 | 1.243702e-16 | 4.970742e-18 | 131.0 | 2.0 | 41.0 | 0.993760 | 0.028262 | 0.000489 | 1.391394e-12 | 1.680000e-10 |
42 | -8.698360e-16 | 595.0 | 2335.833086 | -5.419482e-08 | -7.743272e-20 | 8.474922e-20 | 17.908897 | 19.317768 | 32.949572 | -9.993158e-16 | 1.244262e-16 | 4.968821e-18 | 134.0 | 2.0 | 42.0 | 0.994038 | 0.016988 | 0.020381 | 1.391394e-12 | 1.720000e-10 |
43 | -8.700357e-16 | 608.0 | 2105.432342 | -4.563412e-08 | -6.555795e-20 | 7.756506e-20 | 16.659730 | 17.908897 | 32.949572 | -9.995127e-16 | 1.244311e-16 | 4.968356e-18 | 137.0 | 2.0 | 43.0 | 0.994234 | -0.003768 | 0.024429 | 1.391394e-12 | 1.760000e-10 |
44 | -8.702026e-16 | 621.0 | 1872.125750 | -3.820759e-08 | -5.473418e-20 | 7.184208e-20 | 15.720604 | 16.659730 | 32.949572 | -9.996583e-16 | 1.244101e-16 | 4.973732e-18 | 140.0 | 2.0 | 44.0 | 0.994378 | -0.019112 | 0.012407 | 1.391394e-12 | 1.800000e-10 |
45 | -8.703444e-16 | 634.0 | 1747.801586 | -3.292523e-08 | -4.697804e-20 | 6.704845e-20 | 15.113554 | 15.720604 | 32.949572 | -9.997952e-16 | 1.244085e-16 | 4.975246e-18 | 143.0 | 2.0 | 45.0 | 0.994515 | -0.020080 | -0.005425 | 1.391394e-12 | 1.840000e-10 |
46 | -8.704664e-16 | 647.0 | 1603.040334 | -2.805404e-08 | -4.023923e-20 | 6.292452e-20 | 14.598386 | 15.113554 | 32.949572 | -9.999070e-16 | 1.244061e-16 | 4.971621e-18 | 146.0 | 2.0 | 46.0 | 0.994626 | -0.008509 | -0.016779 | 1.391394e-12 | 1.880000e-10 |
47 | -8.705689e-16 | 660.0 | 1495.703441 | -2.336692e-08 | -3.354981e-20 | 5.935322e-20 | 14.077561 | 14.598386 | 32.949572 | -9.999972e-16 | 1.243975e-16 | 4.971402e-18 | 149.0 | 2.0 | 47.0 | 0.994716 | 0.006024 | -0.015691 | 1.391394e-12 | 1.920000e-10 |
48 | -8.706551e-16 | 673.0 | 1395.612877 | -1.997396e-08 | -2.849706e-20 | 5.595985e-20 | 13.437051 | 14.077561 | 32.949572 | -1.000096e-15 | 1.244107e-16 | 4.974494e-18 | 152.0 | 2.0 | 48.0 | 0.994814 | 0.013808 | -0.005268 | 1.391394e-12 | 1.960000e-10 |
49 | -8.707296e-16 | 686.0 | 1297.883121 | -1.726838e-08 | -2.468675e-20 | 5.269779e-20 | 12.630283 | 13.437051 | 32.949572 | -1.000198e-15 | 1.244402e-16 | 4.975412e-18 | 155.0 | 2.0 | 49.0 | 0.994915 | 0.011336 | 0.005991 | 1.391394e-12 | 2.000000e-10 |
system.dt.plot("t", "E")
<matplotlib.axes._subplots.AxesSubplot at 0x7f5b612a3240>