The Oxs_Ext classes discussed in the previous section were written and are maintained by the OOMMF core development team. Additional Oxs_Ext classes are available from third-parties or may be written by the end user (see the OOMMF Programming Manual). Available extensions known to the OOMMF developers are listed on the Oxs Extensions Modules page. These extensions are included in OOMMF distributions, current as of the time of release.
Contributed extensions can be found under oommf/app/oxs/contrib/ in individual directories. These are “installed” by (1) using the oxspkg install command to copy the source code from the distribution area into oommf/app/oxs/local/, and then (2) running pimake to compile and link the extension into the Oxs executable.
All of the extensions distributed in an OOMMF release that do not require libraries beyond those needed to run OOMMF are distributed in the installed state. It is up to the end user to install additional libraries in the needed if they wish to activate other extensions. See the requires subcommand in the oxspkg documentation for details.
Note that extensions are distributed as source code; at this time there are no provisions for binary distribution of Oxs_Ext modules. This means that to add extensions to your OOMMF installation you need to have a supported C++ compiler installed, and you must run pimake to build the extensions. If you are running OOMMF on Windows with pre-built binaries, then you should first cd to the OOMMF root directory and run
$ tclsh oommf.tcl pimake distclean
to completely delete all pre-built binary files. Afterwards run
$ tclsh oommf.tcl pimake
to create a fresh build of OOMMF. This ensures that the new extension binaries are compatible with the rest of the OOMMF infrastructure.
Third party extensions are not maintained or documented by the OOMMF development team. Such extensions are provided “as-is.” Some extension authors may provide limited support for their extensions, but be aware that extensions are generally provided as a public service to the community and support is not compulsory.