GC-05 - Towards reproducible micromagnetic workflows using Ubermag
GC-05 - Towards reproducible micromagnetic workflows using Ubermag
Micromagnetics complements theoretical and experimental methods to support research in magnetism. The Object-Oriented MicroMagnetic Framework (OOMMF) 1 is a micromagnetic simulation tool solving non-linear time-dependent partial differential equations using the finite-difference method. It is probably the most widely used simulation tool in the micromagnetics community. It was written in C++, wrapped with Tcl, and driven through configuration files that follow the Tcl syntax. The typical computational workflow the user must follow to simulate a particular problem is to write a configuration file. After that, the user runs OOMMF by providing the configuration file to the OOMMF executable. When the OOMMF run is complete, results are saved in OOMMF-specific file formats. Finally, the user analyzes the result files.
One of the specific goals of a computational micromagnetic study is parameter-space exploration. More precisely, the user repeats the simulation for different values of input parameters by changing them in the configuration file. It is often difficult to automate this, and it is challenging for the user to keep a log of all steps performed in the entire micromagnetic study. Besides, postprocessing and analysis of results is performed outside OOMMF, using techniques and scripts that are mostly developed by the user, or carried out manually. Consequently, it is hard to track, record, and convey the exact simulation procedure. Without this information, resulting publications are generally not reproducible.
To address this situation, we developed a Python interface to the OOMMF executable to expose OOMMF to a general-purpose programming language supported by Jupyter. This allows us to conduct micromagnetic simulations from within the Jupyter notebook 2 to capitalize on the benefits of this environment. We developed a set of Python libraries we refer to as Ubermag, which expose the computational capabilities of OOMMF so that it can be controlled from Python. These Python libraries provide a domain-specific language to define a micromagnetic problem. A micromagnetic model, defined using the domain-specific language, is not aware of the particular simulation tool that will perform the actual micromagnetic simulation, and it is only used to describe the model. When a simulation is required, the model is translated into the OOMMF configuration file, the OOMMF executable is called, and the output files are read. By exposing the micromagnetic simulation capabilities to Python and driving the research from Jupyter Notebook, we have available all the benefits of the Jupyter research environment and all tools from Python's scientific stack are readily available.
Ubermag and the Jupyter environment simplify the efforts to make micromagnetics publications reproducible. For each figure in the publication, one notebook can be provided. Using Binder 3, the community can inspect and re-run all the calculations in the cloud and make the publication reproducible.
Beg, Marijan
5c7cc1ff-f244-471f-b964-9f24e0628153
Fangohr, Hans
9b7cfab9-d5dc-45dc-947c-2eba5c81a160
Lang, Martin
4b5ae654-6a58-4c2c-a116-87161fcd533d
Pepper, Ryan
82ef34fc-7e93-4f98-8f85-ff0e5113ed17
27 April 2021
Beg, Marijan
5c7cc1ff-f244-471f-b964-9f24e0628153
Fangohr, Hans
9b7cfab9-d5dc-45dc-947c-2eba5c81a160
Lang, Martin
4b5ae654-6a58-4c2c-a116-87161fcd533d
Pepper, Ryan
82ef34fc-7e93-4f98-8f85-ff0e5113ed17
Beg, Marijan, Fangohr, Hans, Lang, Martin and Pepper, Ryan
(2021)
GC-05 - Towards reproducible micromagnetic workflows using Ubermag.
2021 INTERMAG Conference.
(doi:10.48448/0697-wm86).
Record type:
Conference or Workshop Item
(Paper)
Abstract
Micromagnetics complements theoretical and experimental methods to support research in magnetism. The Object-Oriented MicroMagnetic Framework (OOMMF) 1 is a micromagnetic simulation tool solving non-linear time-dependent partial differential equations using the finite-difference method. It is probably the most widely used simulation tool in the micromagnetics community. It was written in C++, wrapped with Tcl, and driven through configuration files that follow the Tcl syntax. The typical computational workflow the user must follow to simulate a particular problem is to write a configuration file. After that, the user runs OOMMF by providing the configuration file to the OOMMF executable. When the OOMMF run is complete, results are saved in OOMMF-specific file formats. Finally, the user analyzes the result files.
One of the specific goals of a computational micromagnetic study is parameter-space exploration. More precisely, the user repeats the simulation for different values of input parameters by changing them in the configuration file. It is often difficult to automate this, and it is challenging for the user to keep a log of all steps performed in the entire micromagnetic study. Besides, postprocessing and analysis of results is performed outside OOMMF, using techniques and scripts that are mostly developed by the user, or carried out manually. Consequently, it is hard to track, record, and convey the exact simulation procedure. Without this information, resulting publications are generally not reproducible.
To address this situation, we developed a Python interface to the OOMMF executable to expose OOMMF to a general-purpose programming language supported by Jupyter. This allows us to conduct micromagnetic simulations from within the Jupyter notebook 2 to capitalize on the benefits of this environment. We developed a set of Python libraries we refer to as Ubermag, which expose the computational capabilities of OOMMF so that it can be controlled from Python. These Python libraries provide a domain-specific language to define a micromagnetic problem. A micromagnetic model, defined using the domain-specific language, is not aware of the particular simulation tool that will perform the actual micromagnetic simulation, and it is only used to describe the model. When a simulation is required, the model is translated into the OOMMF configuration file, the OOMMF executable is called, and the output files are read. By exposing the micromagnetic simulation capabilities to Python and driving the research from Jupyter Notebook, we have available all the benefits of the Jupyter research environment and all tools from Python's scientific stack are readily available.
Ubermag and the Jupyter environment simplify the efforts to make micromagnetics publications reproducible. For each figure in the publication, one notebook can be provided. Using Binder 3, the community can inspect and re-run all the calculations in the cloud and make the publication reproducible.
This record has no associated files available for download.
More information
Published date: 27 April 2021
Venue - Dates:
2021 INTERMAG Conference, 2021-04-01
Identifiers
Local EPrints ID: 451474
URI: http://eprints.soton.ac.uk/id/eprint/451474
PURE UUID: ae5934f6-cb76-44a4-887e-1ea6d48738f1
Catalogue record
Date deposited: 30 Sep 2021 16:31
Last modified: 17 Mar 2024 04:02
Export record
Altmetrics
Contributors
Author:
Marijan Beg
Author:
Martin Lang
Author:
Ryan Pepper
Download statistics
Downloads from ePrints over the past year. Other digital versions may also be available to download e.g. from the publisher's website.
View more statistics