OOMMF Known Problems, OOMMF 1.1b2


Information on applying patches is provided below. You can apply the patches individually, or apply this composite patch which contains all the patches up through and including item 11 (3-Jun-2011). The composite patch should apply cleanly against the OOMMF 1.1b2 "source-only" distribution; it may also be applied against the "source + Windows executables" distributions, but will yield one irrelevant failed patch hunk. (If you get a message saying "Reversed (or previously applied) patch detected! Assume -R?", reply "no" and do not apply the hunk.) After applying the composite patch, you should rebuild OOMMF. Note that there is no patch for resolving item 7.

See also the troubleshooting page in the OOMMF User's Guide for additional, mostly system related, issues.

Important note: On Windows, this release of OOMMF requires a 32-bit (x86) build of Tcl/Tk. The excutables will not run against a 64-bit (x64) build of Tcl/Tk, and the sources will not compile against it either.

  1. Problem: The command line utility avf2ppm reports
    Missing required argument: file
    and refuses to operate when using the -ipat option unless a non "-ipat" file is also given.
    Solution: This is actually the documented behavior, making this a misfeature rather than a bug. One workaround is pass an empty string as a dummy non "-ipat" filename. Alternatively, you can replace oommf/app/mmdisp/scripts/avf2ppm.tcl with this file, or else apply this patch. (2004-Mar-17)

  2. Problem: The command line utility any2ppm, when reading from stdin or (equivalently) when used as a filter, fails with the message
    Processing input from stdin
    ERROR: couldn't recognize image data
    even though the image is of a type (e.g., BMP) that any2ppm can otherwise interpret.
    Solution: The most comprehensive solution is to install the tkimg Tcl/Tk extension. The tkimg extension is built into the ActiveTcl binary distributions of Tcl/Tk. In addition to fixing this problem, the tkimg extension provides support for many additional image formats. However, if you don't need additional image format support, you can replace oommf/app/mmsolve/any2ppm.tcl with this file, or else apply this patch. (2004-Mar-20)

  3. Problem: The command line utility any2ppm doesn't read PPM P3 (text) format image files, and also fails to read some files in the BMP format. In the latter case, the error message reads
    ERROR: Input error during read of Microsoft .bmp file sample.bmp bitmap: Illegal palette index
    Solution: As with item 2, the most comprehensive solution is to install the tkimg Tcl/Tk extension. Alternatively, you can replace oommf/ext/if/if.cc with this file, or else apply this patch. This bug affects the C++ code, so rebuilding OOMMF is required. (2004-Mar-20)

  4. Problem: When oommf/config/options is modified to launch Internet Explorer instead of mmHelp from OOMMF application Help menus, a "Cannot find file" error occurs.
    Solution: Some versions of Internet Explorer do not parse escaped colons in URL's. To fix, either replace oommf/ext/oc/url.tcl with this file, or else apply this patch. (2004-Apr-05)

  5. Problem: Memory usage by mmDisp grows slowly over time, as a function of the number of frames displayed.
    Solution: This is due to a bug in Tk's place geometry manager. As a workaround, either replace oommf/ext/ow/entryscale.tcl with this
    replacement file, or else apply this patch. (2004-Sep-15)

  6. Problem: On some Linux systems, memory usage by X grows dramatically as mmDisp displays more and more frames. (Thanks to M. Al-Saqer for spotting and helping to resolve this problem.)
    Solution: This appears to be a memory leak in X involving cursor handling. As a workaround, replace oommf/pkg/ow/procs.tcl with this
    replacement file, or else apply this patch. If you are replacing the file, please note that there are files named "procs.tcl" in several directories. These are completely distinct files; replace procs.tcl in directory oommf/pkg/ow/ only and exactly. (2004-Sep-27)

  7. Problem: On some Linux systems, launching oommf.tcl yields an error message of the form
    error while loading shared libraries: libtk8.4.so: cannot open shared object file: No such file or directory
    Solution: This typically happens because the libtk8.x.so (and libtcl8.x.so) files are installed in a directory not included in the ld.so runtime linker/loader search path. One way to fix this is to add that directory (say /usr/local/lib) to the LD_LIBRARY_PATH environment variable. For example, add
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
    to your ~/.bashrc file (bash shell users) or
    setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/usr/local/lib
    to your ~/.cshrc file (csh or tcsh shell users). Another option is to modify the ld.so cache; see the ld.so and ldconfig man pages for details. (6-Jun-2005)

  8. Problem: Launching OOMMF on Windows brings up the error message
    omfsh.exe has encountered a problem and needs to close. We are sorry for the inconvenience.
    and no "localhost" button appears in mmLaunch.
    Solution: This problem occurs on builds of OOMMF made with the Microsoft Visual C++ 2005 compiler (v. 8.0), and is due to a backward incompatibility arising from stricter parameter checking in the system signal() call. To fix, either replace oommf/ext/oc/oc.cc with this
    replacement file, or else apply this patch. This bug affects the C++ code, so rebuilding OOMMF is required. (12-Dec-2006)

  9. Problem: Building OOMMF with the Microsoft Visual C++ 2005 compiler (v. 8.0) produces many warning messages.
    Solution: None of the warnings are fatal, but you can get a cleaner build by replacing oommf/config/cache/wintel.tcl with this
    replacement file, or by applying either this patch for the OOMMF 1.1b2 source-only distribution, or this patch for the OOMMF 1.1b2 source + Windows executables distributions. See also item 8. (13-Dec-2006)

  10. Problem: Loading into mmProbEd a MIF file having a "field type" record with more than 4 fields results in the warning message
    Value for 'field type' has too many parameters
    Thanks to Theocharis Tsenis for reporting this problem.
    Solution: Either replace oommf/app/mmpe/state.dat with this
    replacement file, or apply this patch. (5-Sep-2007)

  11. Problem: When building OOMMF, pimake fails trying to update a tclIndex file with the error
    wrong # args: should be "puts ?-nonewline? ?channelId? string"
    Thanks to R.A. van Mourik for reporting this problem.
    Solution: This problem occurs with some recent versions of Tcl, and arises from the (accidental) removal of support for some deprecated syntax. To fix, either replace oommf/ext/oc/procs.tcl with this
    replacement file or else apply this patch. (3-Jun-2011)

Notes on patch files:
A number of patch files are provided above for fixing problems. After downloading a patch, exit all OOMMF applications and cd to the top-level OOMMF directory (i.e., the directory named "oommf"). Then run the command

patch  -p1  < patchfile
where patchfile is the name of patch file. If there are any patch "rejects", then some hand-editing may be necessary, but this shouldn't happen if you are patching against an unmodified OOMMF distribution.

The command `patch' is a Unix text processing utility. A version for Windows can be downloaded from the GnuWin32 project. You will probably need to use the "--binary" option to the Windows version of patch to apply the patches on this page.

If the patch only affects Tcl code (files ending in the .tcl extension), then after applying the patch you can restart OOMMF and be good to go. If the patch affects the C++ source (.cc or .h files), then follow the rebuilding instructions in the next section.

Rebuilding OOMMF:
Any file replacement or patch involving OOMMF C++ source (files with the .cc or .h extension) will necessitate a recompile and relink of OOMMF. Of course, this requires a suitable compiler. To rebuild, cd to the top-level OOMMF directory (i.e., the directory named "oommf"), and issue the commands:

tclsh  oommf.tcl  pimake  distclean
tclsh  oommf.tcl  pimake
The first command ("distclean") deletes all binary object files and executables, so the second command can rebuild from scratch. This is necessary if you were using an OOMMF binary release, because it is unlikely that the release binaries are compatible with your compiler/linker. If you built from source, then you should be able to bypass the "distclean" step. Additional instructions can be found in the installation section of the OOMMF User's Guide.


DISCLAIMER: This software was developed at the National Institute of Standards and Technology by employees of the Federal Government in the course of their official duties. Pursuant to Title 17 Section 105 of the United States Code this software is not subject to copyright protection and is in the public domain.

OOMMF is an experimental system. NIST assumes no responsibility whatsoever for its use by other parties, and makes no guarantees, expressed or implied, about its quality, reliability, or any other characteristic.

We would appreciate acknowledgment if the software is used.


Back to the OOMMF 1.1 software page, or OOMMF project at NIST


The National Institute of Standards and Technology (NIST) is an agency of the U.S. Commerce Department.

Privacy policy / security notice / accessibility statement / Disclaimer / Freedom of Information Act (FOIA) /
No Fear Act Policy / ExpectMore.gov (performance of federal programs) / NIST Information Quality Standards /
Environmental Policy Statement

Date created: March 17, 2004 | Last updated: June 3, 2011    Contact: Webmaster