Sample PyMIF 1.0 File

Note: The first line of a PyMIF 1.0 file must be “# MIF/Python 1.0”.



# MIF/Python 1.0
# MIF Example File: sample.mif
# Description: Hysteresis loop using Runge-Kutta evolver
#     and time driver.

from math import pi
mu0 = 4*pi*1e-7

RandomSeed(1)

Parameter('cellsize', 5e-9)

Specify({'class' : 'Oxs_BoxAtlas', 'instance' : 'atlas',
   'xrange' : [0, 200e-9],
   'yrange' : [0, 100e-9],
   'zrange' : [0, 20e-9]
})

Specify({'class' : 'Oxs_RectangularMesh', 'instance' : 'mesh',
   'cellsize' : [cellsize, cellsize, cellsize],
   'atlas' : ':atlas'
})

Specify({'class' : 'Oxs_CubicAnisotropy',
   'K1' : -4.5e3,
   'axis1' : [1, 0, 0],
   'axis2' : [0, 1, 0]
})

Specify({'class' : 'Oxs_UniformExchange',
   'A' : 9e-12,
   'comment' : "In the line above 'A' is a single scalar, not a scalar field"
})

Specify({'class' : 'Oxs_UZeeman',
   'multiplier' : 0.001/mu0,
   'Hrange' : [[  0,  0,  0,  100,   1,   0,  2],
               [100,  1,  0, -100,   0,   0,  2],
               [  0,  0,  0,    0, 100,   0,  4],
               [ 10, 10, 10,   50,  50,  50,  0]]
})

Specify({'class' : 'Oxs_Demag'})

Specify({'class' : 'Oxs_RungeKuttaEvolve', 'instance' : 'evolve'})

SetOptions({'basename' : 'sample'})

Specify({'class' : 'Oxs_TimeDriver',
   'evolver' : ':evolve',
   'stopping_dm_dt' : 0.1,
   'mesh' : ':mesh',
   'Ms' : 490e3,
   'm0' : [1, 0.02, 0.01]
})
Figure 17.4: Example PyMIF 1.0 file. (description)





OOMMF Documentation Team
September 30, 2025