Nmag micromagnetic simulation tool - software engineering lessons learned
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 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.
Cite
@article{arxiv.1601.07392,
title = {Nmag micromagnetic simulation tool - software engineering lessons learned},
author = {Hans Fangohr and Maximilian Albert and Matteo Franchin},
journal= {arXiv preprint arXiv:1601.07392},
year = {2016}
}
Comments
7 pages, 5 figures, Software Engineering for Science, ICSE2016