Differences between MIF 2.2 and MIF 2.1 Formats
- The first line of a MIF 2.2 file must be “
#
MIF 2.2”.
- The basename, scalar_output_format and
vector_field_output_format options to the Oxs_TimeDriver
and Oxs_MinDriver objects are no longer supported. Instead,
there is a new top-level extension command, SetOptions, where
these options are declared. The SetOptions block also
supports new options for controlling output formats, mesh types, and
filenames.
- In the MIF 2.1 format, MIF files are
processed in a two pass mode. During the first pass, Specify
commands simply store the contents of the Specify blocks without
creating any Oxs_Ext objects. The Oxs_Ext objects
associated with each Specify block are created in the second pass
from the data stored in the first pass. In the MIF 2.2 format, this is
replaced with a one pass mode, where Oxs_Ext objects are created
at the time that the Specify commands are parsed. This processing
model is more intuitive for MIF file authors, but has two main
consequences. The first is that in MIF 2.1 format files, Tcl procs that
are used only inside Specify commands can be placed anywhere inside
the MIF file (for example, commonly at the end), because they won't be
called during the first pass. As long as they are defined at any point
during the first pass, they will be available for use in the second
pass. In contrast, in the MIF 2.2 format, Tcl procs definitions must
generally be moved forward, before any references in Specify
blocks. The second consequence is that Oxs_Ext objects defined by
Specify commands are available for use inside the MIF file. This
allows support for the new commands discussed next.
OOMMF Documentation Team
September 27, 2024