Data Archive: mmArchive

Overview
The application mmArchive provides automated vector field and data
table storage services. Although
mmDisp
and
mmGraph
are able to save such data under the direction of the user, there are
situations where it is more convenient to write data to disk without
interactive control.

mmArchive does not present a user interface window of its own,
but like the Oxs solvers
relies on mmLaunch to
provide an interface on its behalf. Because mmArchive does not
require a window, it is possible on Unix systems to bring down the X
(window) server and still keep
mmArchive running in the background.

LaunchingmmArchive may be started either by selecting the
mmArchive button on mmLaunch
by Oxsii/Boxsi via a
Destination
command in a
MIF 2 file,
or from the command line via

tclsh oommf.tcl mmArchive [standard options]

When the mmArchive button of mmLaunch is invoked,
mmArchive is launched with the -tk 0 option.
This allows mmArchive to continue running if the X
window server is killed. The -tk 1 option is useful
only for enabling the -console option for debugging.

As noted above, mmArchive depends upon
mmLaunch to provide an interface.
The entry for an instance of mmArchive in the
Threads column of any running copy of mmLaunch has a
checkbutton next to it. This button toggles the presence of a user
interface window through which the user may control that instance of
mmArchive.

Outputs
The client applications that send data to mmArchive control the
flow of data. mmArchive copies the data it receives into files
specified by the client. There is no interactive control to select the
names of these output files. A simple status line shows the most recent
vector file save, or data table file open/close event.

For data table output, if the output file already exists then the new
data is appended to the end of the file. The data records for each
session are sandwiched between ``Table Start'' and ``Table End''
records. See the ODT format documentation for
explanation of the data table file structure. It is the
responsibility of the user to insure that multiple data streams are
not directed to the same data table file at the same time.

For vector field output, if the output file already exists then the
old data is deleted and replaced with the current data. See the
OVF documentation for information
about the vector field output format.

Controls
The Exit in the mmLaunch-supplied user interface terminates
mmArchive. Simply closing the user interface window does not
terminate mmArchive, but only hides the control window. To kill
mmArchive the Exit button must be pressed.

Known BugsmmArchive appends data table output to the file specified by the
source client application (e.g., a running solver). If, at the same
time, more than one source specifies the same file, or if the the same
source sends data table output to more than one instance of
mmArchive, then concurrent writes to the same file may corrupt the
data in that file. It is the responsibility of the user to ensure this
does not happen; there is at present no file locking mechanism in
OOMMF to protect against this situation.