-
Machine learning-based spin structure detection
Authors:
Isaac Labrie-Boulay,
Thomas Brian Winkler,
Daniel Franzen,
Alena Romanova,
Hans Fangohr,
Mathias Kläui
Abstract:
One of the most important magnetic spin structure is the topologically stabilised skyrmion quasi-particle. Its interesting physical properties make them candidates for memory and efficient neuromorphic computation schemes. For the device operation, detection of the position, shape, and size of skyrmions is required and magnetic imaging is typically employed. A frequently used technique is magneto-…
▽ More
One of the most important magnetic spin structure is the topologically stabilised skyrmion quasi-particle. Its interesting physical properties make them candidates for memory and efficient neuromorphic computation schemes. For the device operation, detection of the position, shape, and size of skyrmions is required and magnetic imaging is typically employed. A frequently used technique is magneto-optical Kerr microscopy where depending on the samples material composition, temperature, material growing procedures, etc., the measurements suffer from noise, low-contrast, intensity gradients, or other optical artifacts. Conventional image analysis packages require manual treatment, and a more automatic solution is required. We report a convolutional neural network specifically designed for segmentation problems to detect the position and shape of skyrmions in our measurements. The network is tuned using selected techniques to optimize predictions and in particular the number of detected classes is found to govern the performance. The results of this study shows that a well-trained network is a viable method of automating data pre-processing in magnetic microscopy. The approach is easily extendable to other spin structures and other magnetic imaging methods.
△ Less
Submitted 24 March, 2023;
originally announced March 2023.
-
Using Jupyter for reproducible scientific workflows
Authors:
Marijan Beg,
Juliette Taka,
Thomas Kluyver,
Alexander Konovalov,
Min Ragan-Kelley,
Nicolas M. Thiéry,
Hans Fangohr
Abstract:
Literate computing has emerged as an important tool for computational studies and open science, with growing folklore of best practices. In this work, we report two case studies - one in computational magnetism and another in computational mathematics - where domain-specific software was exposed to the Jupyter environment. This enables high-level control of simulations and computation, interactive…
▽ More
Literate computing has emerged as an important tool for computational studies and open science, with growing folklore of best practices. In this work, we report two case studies - one in computational magnetism and another in computational mathematics - where domain-specific software was exposed to the Jupyter environment. This enables high-level control of simulations and computation, interactive exploration of computational results, batch processing on HPC resources, and reproducible workflow documentation in Jupyter notebooks. In the first study, Ubermag drives existing computational micromagnetics software through a domain-specific language embedded in Python. In the second study, a dedicated Jupyter kernel interfaces with the GAP system for computational discrete algebra and its dedicated programming language. In light of these case studies, we discuss the benefits of this approach, including progress toward more reproducible and reusable research results and outputs, notably through the use of infrastructure such as JupyterHub and Binder.
△ Less
Submitted 18 February, 2021;
originally announced February 2021.
-
Testing with Jupyter notebooks: NoteBook VALidation (nbval) plug-in for pytest
Authors:
Hans Fangohr,
Vidar Fauske,
Thomas Kluyver,
Maximilian Albert,
Oliver Laslett,
David Cortés-Ortuño,
Marijan Beg,
Min Ragan-Kelly
Abstract:
The Notebook validation tool nbval allows to load and execute Python code from a Jupyter notebook file. While computing outputs from the cells in the notebook, these outputs are compared with the outputs saved in the notebook file, treating each cell as a test. Deviations are reported as test failures, with various configuration options available to control the behaviour. Application use cases inc…
▽ More
The Notebook validation tool nbval allows to load and execute Python code from a Jupyter notebook file. While computing outputs from the cells in the notebook, these outputs are compared with the outputs saved in the notebook file, treating each cell as a test. Deviations are reported as test failures, with various configuration options available to control the behaviour. Application use cases include the validation of notebook-based documentation, tutorials and textbooks, as well as the use of notebooks as additional unit, integration and system tests for the libraries that are used in the notebook. Nbval is implemented as a plugin for the pytest testing software.
△ Less
Submitted 13 January, 2020;
originally announced January 2020.
-
Good Usability Practices in Scientific Software Development
Authors:
Francisco Queiroz,
Raniere Silva,
Jonah Miller,
Sandor Brockhauser,
Hans Fangohr
Abstract:
Scientific software often presents very particular requirements regarding usability, which is often completely overlooked in this setting. As computational science has emerged as its own discipline, distinct from theoretical and experimental science, it has put new requirements on future scientific software developments. In this paper, we discuss the background of these problems and introduce nine…
▽ More
Scientific software often presents very particular requirements regarding usability, which is often completely overlooked in this setting. As computational science has emerged as its own discipline, distinct from theoretical and experimental science, it has put new requirements on future scientific software developments. In this paper, we discuss the background of these problems and introduce nine aspects of good usability. We also highlight best practices for each aspect with an emphasis on applications in computational science.
△ Less
Submitted 31 August, 2017;
originally announced September 2017.
-
Virtual Micromagnetics: A Framework for Accessible and Reproducible Micromagnetic Simulation
Authors:
Mark Vousden,
Marc-Antonio Bisotti,
Maximilian Albert,
Hans Fangohr
Abstract:
Computational micromagnetics requires numerical solution of partial differential equations to resolve complex interactions in magnetic nanomaterials. The Virtual Micromagnetics project described here provides virtual machine simulation environments to run open-source micromagnetic simulation packages. These environments allow easy access to simulation packages that are often difficult to compile a…
▽ More
Computational micromagnetics requires numerical solution of partial differential equations to resolve complex interactions in magnetic nanomaterials. The Virtual Micromagnetics project described here provides virtual machine simulation environments to run open-source micromagnetic simulation packages. These environments allow easy access to simulation packages that are often difficult to compile and install, and enable simulations and their data to be shared and stored in a single virtual hard disk file, which encourages reproducible research. Virtual Micromagnetics can be extended to automate the installation of micromagnetic simulation packages on non-virtual machines, and to support closed-source and new open-source simulation packages, including packages from disciplines other than micromagnetics, encouraging reuse. Virtual Micromagnetics is stored in a public GitHub repository under a three-clause Berkeley Software Distribution (BSD) license.
△ Less
Submitted 25 November, 2016; v1 submitted 11 August, 2016;
originally announced September 2016.
-
Nmag micromagnetic simulation tool - software engineering lessons learned
Authors:
Hans Fangohr,
Maximilian Albert,
Matteo Franchin
Abstract:
We review design and development decisions and their impact for the open source code Nmag from a software engineering in computational science point of view. We summarise lessons learned and recommendations for future computational science projects. Key lessons include that encapsulating the simulation functionality in a library of a general purpose language, here Python, provides great flexibilit…
▽ More
We review design and development decisions and their impact for the open source code Nmag from a software engineering in computational science point of view. We summarise lessons learned and recommendations for future computational science projects. Key lessons include that encapsulating the simulation functionality in a library of a general purpose language, here Python, provides great flexibility in using the software. The choice of Python for the top-level user interface was very well received by users from the science and engineering community. The from-source installation in which required external libraries and dependencies are compiled from a tarball was remarkably robust. In places, the code is a lot more ambitious than necessary, which introduces unnecessary complexity and reduces main- tainability. Tests distributed with the package are useful, although more unit tests and continuous integration would have been desirable. The detailed documentation, together with a tutorial for the usage of the system, was perceived as one of its main strengths by the community.
△ Less
Submitted 28 February, 2016; v1 submitted 27 January, 2016;
originally announced January 2016.
-
Teaching Python programming with automatic assessment and feedback provision
Authors:
Hans Fangohr,
Neil O'Brien,
Anil Prabhakar,
Arti Kashyap
Abstract:
We describe a method of automatic feedback provision for students learning programming and computational methods in Python. We have implemented, used and refined this system since 2009 for growing student numbers, and summarise the design and experience of using it. The core idea is to use a unit testing framework: the teacher creates a set of unit tests, and the student code is tested by running…
▽ More
We describe a method of automatic feedback provision for students learning programming and computational methods in Python. We have implemented, used and refined this system since 2009 for growing student numbers, and summarise the design and experience of using it. The core idea is to use a unit testing framework: the teacher creates a set of unit tests, and the student code is tested by running these tests. With our implementation, students typically submit work for assessment, and receive feedback by email within a few minutes after submission. The choice of tests and the reporting back to the student is chosen to optimise the educational value for the students. The system very significantly reduces the staff time required to establish whether a student's solution is correct, and shifts the emphasis of computing laboratory student contact time from assessing correctness to providing guidance. The self-paced nature of the automatic feedback provision supports a student-centred learning approach. Students can re-submit their work repeatedly and iteratively improve their solution, and enjoy using the system. We include an evaluation of the system and data from using it in a class of 425 students.
△ Less
Submitted 11 September, 2015;
originally announced September 2015.
-
Continuum multi-physics modeling with scripting languages: the Nsim simulation compiler prototype for classical field theory
Authors:
Thomas Fischbacher,
Hans Fangohr
Abstract:
We demonstrate that for a broad class of physical systems that can be described using classical field theory, automated runtime translation of the physical equations to parallelized finite-element numerical simulation code is feasible. This allows the implementation of multiphysics extension modules to popular scripting languages (such as Python) that handle the complete specification of the phy…
▽ More
We demonstrate that for a broad class of physical systems that can be described using classical field theory, automated runtime translation of the physical equations to parallelized finite-element numerical simulation code is feasible. This allows the implementation of multiphysics extension modules to popular scripting languages (such as Python) that handle the complete specification of the physical system at script level. We discuss two example applications that utilize this framework: the micromagnetic simulation package "Nmag" as well as a short Python script to study morphogenesis in a reaction-diffusion model.
△ Less
Submitted 9 July, 2009;
originally announced July 2009.