OOMMF is written in C++, a widely-available, object-oriented language that can produce programs with good performance as well as extensibility. For portable user interfaces, we make use of Tcl/Tk so that OOMMF operates across a wide range of Unix, Windows, and macOS platforms.
The code may be modified at three distinct levels. At the top level, individual programs interact via well-defined protocols across network sockets. One may connect these modules together in various ways from the user interface, and new modules speaking the same protocol can be transparently added. The second level of modification is at the Tcl/Tk script level. Some modules allow Tcl/Tk scripts to be imported and executed at run time, and the top level scripts are relatively easy to modify or replace. At the lowest level, the C++ source is provided and can be modified, although at present the documentation for this is incomplete (cf. the ``OOMMF Programming Manual'').
The current development version, OOMMF 2.0, includes Oxs, the OOMMF eXtensible Solver. Oxs offers users of OOMMF the ability to extend Oxs with their own modules. The extensible nature of the Oxs solver means that its capabilities may be varied as necessary for the problem to be solved. Oxs modules distributed as part of OOMMF support full 3D simulations suitable for modeling layered materials.
If you want to receive e-mail notification of updates to this project, register your e-mail address with the ``muMAG'' mailing list:
The OOMMF developers are always interested in your comments about OOMMF. See the Credits for instructions on how to contact them, and for information on referencing OOMMF.