Next: Data table format (ODT)
Up: File Formats
Previous: File Formats
Subsections
Problem specification format (MIF)
Micromagnetic simulations are specified to the OOMMF solver using
files conforming to the OOMMF Micromagnetic Input Format
(MIF). This is also the native file type for the OOMMF problem
editor, mmProbEd. All values in this file are in SI units.
A sample MIF file is included below. The first line of a MIF file must be of
the form ``# MIF x.y'', where x.y represents the format revision
number. After this, any line ending in a backslash, `\
', is
joined to the succeeding line before any other processing is
performed. Lines beginning with a `#' character are comments and
are ignored. Blank lines are also ignored.
All other lines must consist of a Record Identifier followed by
a parameter list. The Record Identifier is separated from the
parameter list by one or more `:' and/or `=' characters. Whitespace
and case is ignored in the Record Identifier field.
The parameter list must be a proper Tcl list. The parameters are
parsed (broken into separate elements) following normal Tcl rules;
in short, items are separated by whitespace, except as grouped by
double quotes and curly braces. The grouping characters are removed
during parsing. Any `#' character that is found outside of any
grouping mechanism is interpreted as a comment start character. The
`#' and all following characters on that line are interpreted as a
comment.
Order of the records in a MIF file is unimportant, except as
explicitly stated below. If two or more lines contain the same Record
Identifier, then the last one takes precedence (except for Field Range
records, of which there may be several active). All records are
required unless listed as optional. Some of these record types are
not yet available from mmProbEd, however your may edit a MIF file by hand and feed it to mmSolve2D with the
filesource.tcl application.
For convenience, the Record Identifier tags are organized into several
groups; these groups correspond to the buttons presented by
mmProbEd. We follow this convention below.
- #Material Name: This is a convenience entry in
mmProbEd; inside the MIF file it is a comment line. It
relates a symbolic name (e.g., Iron) to specific values to the next
4 items. Ignored by mmSolve applications.
- Ms: Saturation magnetization in A/m.
- A: Exchange stiffness in J/m.
- K1: Crystalline anisotropy constant in J/m3.
- Anisotropy Type: Crystalline anisotropy type; One of
< uniaxial | cubic >.
- Anisotropy Dir1: Directional cosines of first crystalline
anisotropy axis, taken with respect to the coordinate axes (3
numbers). Optional; Default is 1 0 0.
- Anisotropy Dir2: Directional cosines of second crystalline
anisotropy axis, taken with respect to the coordinate axes (3
numbers). Optional; Default is 0 1 0.
For uniaxial materials it suffices to specify only Anisotropy
Dir1. For cubic materials one should also specify Anisotropy
Dir2; the third axis direction will be calculated as the cross
product of the first two. The anisotropy directions will be
automatically normalized if necessary, so for example 1 1 1 is
valid input (it will be modified to .5774 .5774 .5774). For cubic
materials, Dir2 will be adjusted to be perpendicular to Dir1 (by
subtracting out the component parallel to Dir1).
- Anisotropy Initialization:
Method to use to set up directions of anisotropy axes, as a
function of spatial location; This is a generalization of the
Anisotropy Dir1/2 records. The value for this record should be
one of < Constant | UniformXZ | UniformS2 >. Constant uses
the values specified for Anisotropy Dir1 and Dir2, with no
dispersion. UniformXY ignores the values given for Anisotropy
Dir1 and Dir2, and randomly varies the anisotropy directions
uniformly in the xy-plane. UniformS2 is similar, but randomly
varies the anisotropy directions uniformly on the unit sphere
(S2). This record is optional; the default value is Constant.
Part geometry
- Part Width: Nominal part width (x-dimension) in
meters. Will be adjusted to an integral multiple of Cell Size.
- Part Height: Nominal part height (y-dimension) in
meters. Will be adjusted to an integral multiple of Cell Size.
- Part Thickness: Part
thickness (z-dimension) in meters. Required for 3d models.
- Cell Size: In-plane (xy-plane) dimension of base
calculation cell. This cell is a rectangular brick, with square
cross-section and thickness given by Part Thickness.
- Part Shape: Optional. In-plane part shape,
which must be one of the following:
- Rectangle: The sample completely fills the area
specified by Part Width and Part Height. (Default.)
- Ellipse: The sample (or the magnetically active
portion thereof) is an ellipse inscribed into the rectangular
area specified by Part Width and Part Height.
- Oval: Shape is a rounded rectangle, where each
corner is replaced by a quarter circle with radius r, where
r is given by a required second parameter.
- Mask: Shape is determined by a 2-color bitmap file,
the name of which is specified as a second parameter. The
given filename must be accessible to the mmSolve
application. At present the bitmap file must be a PPM
(portable pixmap format) file, but it wouldn't be too difficult
to add GIF support. The pixels in the file must map
one-to-one to the cells in the simulation. The magnetically
active cells are the ones which are black in the bitmap.
- Init Mag: Name of routine to use initial the simulation
magnetization directions (as a function of position), and routine
parameters, if any. Optional, with default Random. The list
of routines is long, and it is easy to add new ones. See the
file maginit.cc for details. A few of the more useful routines
are:
- Random: Random directions on the unit sphere. This
is somewhat like a quenched thermal demagnetized state.
- Cant: Uniform magnetization in the direction
indicated by the two additional parameters, theta and phi, where the first is the angle
from the z-axis (in degrees), and the second is the angle
from the x-axis (in degrees) of the projection onto the
xy-plane.
- Vortex: Fits an idealized vortex about the center of
the sample.
- vioFile: One additional parameter required,
specifying the name of a VIO file to use to initialize the
magnetization. The grid in the input file will be scaled as
necessary to fit the grid in the current simulation. The
file must be accessible to the intended mmSolve
application. This Init Mag type should eventually be
replaced with an omfFile Init Mag type.
- Field Range Count: Number of Field Ranges
specified (integer). Optional, with default value 1. If used, this
record should precede all Field Range records.
- Field Range: Specifies a range of applied fields
that are stepped though in a linear manner. The parameter
value is a list of 7 numbers, the starting field Bx By Bz in
Tesla, the stopping field Bx By Bz in Tesla, and an integer
number of steps to take between the starting and stopping
fields (inclusive). There should be as many of these records
as specified by the Field Range Count record. They will be
stepped through in order of appearance. This record is
optional, with a default value of 0 0 0 0 0 0 1.
- Field Type: External field routine and parameters,
if any. This is optional, with default Uniform. At most
one record of this type is allowed, but the Multi type
may be used to apply a collection of fields. The
nominal applied field (NAF) is stepped through the Field
Ranges as describe above, and made available to the external
field routines which use or ignore it as appropriate.
The following routines are available:
- Uniform
Applied field is uniform with value specified by the NAF.
- Ribbon relcharge x0 y0 x1 y1 height
Charge ``Ribbon,'' lying perpendicular to the
xy-plane. Here relcharge is
the charge strength relative to Ms, and (x0,z0),
(x1,z1) are the endpoints of the ribbon (in meters). The
ribbon extends height/2 above and below the
calculation plane. This routine ignores the NAF.
- Tie rfx rfy rfz x0 y0 x1 y1 ribwidth
The points (x0,y0) and (x1,y1) define (in meters)
the endpoints of the center spine of a rectangular
ribbon of width ribwidth lying in the xy-plane.
The cells with sample point inside this rectangle
see an applied field of (rf0,rf1,rf2), in units relative
to Ms. (If the field is large, then the magnetizations in
the rectangle will be ``tied'' to the direction of that
field.)
- File filename multiplier
Field read in from a file. The ``multiplier'' field is
optional, defaulting to 1. The input file may be any of
the vector field file types recognized by mmDisp. The
input dimensions will be scaled as necessary to exactly match
the simulation grid, with zeroth order interpolation as
necessary. This routine ignores the NAF.
- Multi routinecount
\
param1count name1 param1 param2 ...\
param2count name2 param1 param2 ...\
...
Allows a conglomeration of several field type
routines. All entries must be on the same
logical line, i.e., end physical lines with
'\
' continuation characters as necessary. Here
routinecount is the number of routines, and param1count
is the number parameters (including name1) needed
by the first routine, etc.
All dimensions are in meters. The coordinates in the simulation
run from (0,0,0) to (Part Width, Part Height, Part Thickness).
- Base Output Filename: Default base name used to
construct output filenames.
- Converge Torque Value: Nominal value to use as a
stopping criterion: When the maximum torque seen by any spin in
the simulation is smaller than this value, it is assumed that a
relaxed state has been reached for the current applied field.
This is a dimensionless value, relative to Ms. Optional;
default value is 1e-4.
- Randomizer seed: Value with which to seed random number
generator. Optional. Default value is 0, which uses the system
clock to generate a semi-random seed.
# MIF 1.1
#
# All units are SI.
#
####################### MATERIAL PARAMETERS ############################
Ms: 800e3 # Saturation magnetization in A/m.
A: 13e-12 # Exchange stiffness in J/m.
K1: 0.5e3 # Anisotropy constant in J/m^3.
Anisotropy Type: uniaxial # One of <uniaxial|cubic>.
Anisotropy Dir1: 1 0 0 # Directional cosines wrt to coordinate axes
####################### DEMAG SPECIFICATION ############################
Demag Type: 3dSlab # One of <3dSlab|2dSlab|3dCharge|FastPipe|None>.
########################## PART GEOMETRY ###############################
Part Width: 0.25e-6 # Nominal part width in m
Part Height: 1.0e-6 # Nominal part height in m
Part Thickness: 1e-9 # Part thickness in m.
Cell Size: 8.1e-9 # Cell size in m.
#Part Shape: # One of <Rectangle|Ellipse|Oval|Mask>. Optional.
###################### INITIAL MAGNETIZATION ###########################
Init Mag: Cant 90 45 # Initial magnetization routine and parameters
###################### EXPERIMENT PARAMETERS ###########################
Field Range Count: 2 # Number of Field Range lines.
Field Range: -.05 -.01 0. .05 .01 0. 100 # Start_field Stop_field Steps
Field Range: .05 .01 0. -.05 -.01 0. 100
Field Type: Multi 4 \
7 Ribbon 1 0 1.0e-6 0.25e-6 1.0e-6 1e-9 \
7 Ribbon 1 0 0 0.25e-6 0 1e-9 \
9 Tie 100 0 0 0.12e-6 0.5e-6 0.13e-6 0.5e-6 8.1e-9
1 Uniform \
# The above positions ribbons of positive charge along the upper
# and lower edges with stength Ms, applies a large (100 Ms) field
# to the center cell, and also applies a uniform field across the
# sample stepped from (-.05,-.01,0.) to (.05,.01,0.) (Tesla), and
# back, in approximately 0.001 T steps.
###################### OUTPUT SPECIFICATIONS ###########################
Base Output Filename: samplerun
########################## MISCELLANEOUS ###############################
Randomizer seed: 1 # Value to seed random number generator with.
Converge Torque Value: 1e-5 # Stopping criterion, relative to Ms.
OOMMF Documentation Team
August 12, 1998