Extension modules for OOMMF software to use periodic boundary conditions


OOMMF is a micromagnetic simulation package developed by National Institute of Standards and Technology (NIST, US). By default this software assumes open boundary conditions. To extend this functionality, three new modules have been written: Klm_UniformExchange, Klm_SimpleDemag_PBC, & Klm_Demag_PBC. They enable usage of periodic boundary conditions is one dimension (1D PBC). The 1D periodicity direction is assumed to be parallel to the z-axis.
The exchange module has a simple structure, to use the PBC you just have to put one additional parameter (see below).
The demagnetization modules are much more complicated. For detailed description see the help file. In brief: the infinite set of images of the considered sample leads to infinite summation of demagnetization tensors. This sum is calculated by dividing the space into three domains, in every this region the calculation is performed in a different way. No range cut-off is introduced, thus the long range of the dipolar interaction is preserved. These issues are described in deep in following paper:

K.M. Lebecki, M.J. Donahue, M.W. Gutowski,
Periodic boundary conditions for demagnetization interactions in micromagnetic simulations,
J. Phys. D. 41 (2008) 175005, doi: 10.1088/0022-3727/41/17/175005.

The code was written by Kristof Lebecki during PhD studies at Institute of Physics, Polish Academy of Sciences. With great help of Michael Donahue of NIST. Basing on “original” OOMMF modules written by MD.


In this directory you can find the distributions. Take the latest version (largest number) and extract it. Look at the help file and follow the installation instructions inside. Follow the general Oxs extension installation instructions, as well.
Attention: you will have to re-compile OOMMF. You will be forced to use MIF 2.x file format, as well (no simple graphical interface as mmSolve2D).


The explanations are made here as simple as possible, describing only subset of parameters.

Usage of the Klm_UniformExchange is easy. As you see, the only difference with respect to the stock Oxs_UniformExchange class is the recognition of additional kernel parameter value.

Specify Klm_UniformExchange:name {
kernel “6ngbrzperiod”

Usage of the Klm_Demag_PBC is much more complex (Klm_SimpleDemag_PBC is rather intended for testing). If used with no parameters, as below, it will calculate the necessary tensor element values assuming the sample has z-periodicity equal to its z-length:

Specify Klm_Demag_PBC:name {}

Usage of both classes should not introduce any significant computation speed degradation, as compared to the appropriate Oxs_* classes... with one exception: the initialization stage of the *_Demag_PBC classes takes much longer. Helpful can be here additional parameters, see the help file for details.


Authors: Kristof Lebecki
Affiliation*: Institute of Physics, Polish Academy of Sciences
Oxs_Ext classes: Klm_UniformExchange, Klm_SimpleDemag_PBC, & Klm_Demag_PBC
OOMMF releases: 1.2a4 (or this development snapshot from 18-Nov-2005)
External libraries: None. Internal library, kl_demag, is included in the distribution.
License: Public Domain.
Release date: 1-Dec-2006

* Actual affiliation: see my home page.

Sample results

Making small changes in the distributed sample MIF file, one can simulate the coercivity for an infinite rod. Below are such values, calculated for different rod radii, compared to the theory. See also:
- E.H. Frei, S. Shtrikman, D. Treves, Phys. Rev.
106 (1957) 446.
- A. Aharoni, S. Shtrikman, Phys. Rev.
109 (1958) 1522.
- K.M. Lebecki, M.J. Donahue, M.W. Gutowski,
J. Phys. D. 41 (2008) 175005.

Kristof Lebecki(ot)uni-konstanz.de
Back to my home page.