User interfaces for computational science: A domain specific language for OOMMF embedded in Python
Source abstract
Abstract
Computer simulations are used widely across the engineering and science disciplines, including in the research and development of magnetic devices using computational micromagnetics. In this work, we identify and review different approaches to configuring simulation runs: (i) the re-compilation of source code, (ii) the use of configuration files, (iii) the graphical user interface, and (iv) embedding the simulation specification in an existing programming language to express the computational problem. We identify the advantages and disadvantages of different approaches and discuss their implications on effectiveness and reproducibility of computational studies and results. Following on from this, we design and describe a domain specific language for micromagnetics that is embedded in the Python language, and allows users to define the micromagnetic simulations they want to carry out in a flexible way. We have implemented this micromagnetic simulation description language together with a computational backend that executes the simulation task using the Object Oriented MicroMagnetic Framework (OOMMF). We illustrate the use of this Python interface for OOMMF by solving the micromagnetic standard problem 4. All the code is publicly available and is open source.
Source: crossref · Quality: baseline
Research context
OpenAlex topics: Magnetic properties of thin films · Geomagnetism and Paleomagnetism Studies · Computational Physics and Python Applications
SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.
Affiliations
University of Southampton Faculty of Engineering and the Environment, , Southampton SO17 1BJ, United Kingdom
Funding
European Commission · Engineering and Physical Sciences Research Council
References (25)
Show source-provided references
1. Proposal for a standard problem for micromagnetic simulations including spin-transfer torque10.1063/1.3126702 ↗
2. Proposal for a standard micromagnetic problem: Spin wave dispersion in a magnonic waveguide10.1109/tmag.2012.2206820 ↗
3. Proposal of a micromagnetic standard problem for ferromagnetic resonance simulations10.1016/j.jmmm.2016.08.009 ↗
4. 1,500 scientists lift the lid on reproducibility10.1038/533452a ↗
5. Reproducible research in computational science10.1126/science.1213847 ↗
6. Provenance for computational tasks: A survey10.1109/mcse.2008.79 ↗
7. 2001
8. 1999
9. Scalable parallel micromagnetic solvers for magnetic nanostructures10.1016/s0927-0256(03)00119-8 ↗
10. A systematic approach to multiphysics extensions of finite-element-based micromagnetic simulations: Nmag10.1109/tmag.2007.893843 ↗
11. See http://micromagnum.informatik.uni-_hamburg.de for MicroMagnum.
12. Magnum.fe: A micromagnetic finite-element simulation code based on FEniCS10.1016/j.jmmm.2013.05.051 ↗
13. 2016
14. IPython: A system for interactive scientific computing10.1109/mcse.2007.53 ↗
15. 1999
16. Bubak · 2004 · 1210
17. 2014
18. SciPy: Open source scientific tools for Python
19. The NumPy array: A structure for efficient numerical computation10.1109/mcse.2011.37 ↗
20. Pandas: A foundational Python library for data analysis and statistics
21. Matplotlib: A 2D graphics environment10.1109/mcse.2007.55 ↗
22. SWIG: An easy to use tool for integrating scripting languages with C and C++
23. Building hybrid systems with boost. Python
24. Cython: The best of both worlds10.1109/mcse.2010.118 ↗
25. A phenomenological theory of damping in ferromagnetic materials10.1109/tmag.2004.836740 ↗