Login Sign up

Ubermag: Exposing computational magnetism to Python and Jupyter ecosystem

Marijan Beg

Audience level:

Brief Summary

Computational magnetism complements conventional research techniques for the study of magnetic material properties. We implemented a uniform Python interface to drive well established simulation tools and integrated it with data analysis and visualisation tools in Jupyter. This way, we expose computational magnetism simulations to the Python ecosystem and contribute to the reproducibility.


Computational magnetism complements theoretical and experimental research techniques and they are often the only way to tackle different research questions. Therefore, computational magnetism has emerged as a third pillar in the research of magnetic material properties for the development of future data storage and information processing devices. There are several well established simulation tools in the scientific community, which before Ubermag were isolated from the Python ecosystem and it was a challenge to expose the results of simulations to the already existing data analysis and visualisation tools readily available in Python and Jupyter.

We implemented a uniform domain specific language in Python to drive different micromagnetic simulation backends, which enables running micromagnetic simulations inside Jupyter. In addition, we defined a uniform interface to access different data analysis and visualisation tools available as a part of Python ecosystem. Ubermag [1, 2] allows researchers to run computational magnetism simulations inside Jupyter, documenting the entire simulation workflow, and making the research fully reproducible. This enables convenient publishing of simulation and data analysis scripts to complement publications and allow researchers to reproduce the main results using Binder.

In this conference contribution we are going to share our experience in developing a uniform Python interface to already existing simulation tools and their integration to Jupyter. In addition, we are going to demonstrate some of the benefits we achieved, which were not possible before as well as share some of the experiences we obtained during the workshops we delivered to the community.

[1] M. Beg, R. A. Pepper, and H. Fangohr. User interfaces for computational science: A domain specific language for OOMMF embedded in Python. AIP Advances 7, 56025 (2017).
[2] Ubermag GitHub organisation: https://github.com/ubermag