Nmag micromagnetic simulation tool – software engineering lessons learned
Nmag micromagnetic simulation tool – software engineering lessons learned
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 maintainability. 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.
1-7
Association for Computing Machinery
Fangohr, Hans
9b7cfab9-d5dc-45dc-947c-2eba5c81a160
Albert, Maximilian
a8049610-1e98-4cfb-b59a-177645a42b47
Franchin, Matteo
d71ee912-9dcc-421b-a55d-9818454cafff
14 May 2016
Fangohr, Hans
9b7cfab9-d5dc-45dc-947c-2eba5c81a160
Albert, Maximilian
a8049610-1e98-4cfb-b59a-177645a42b47
Franchin, Matteo
d71ee912-9dcc-421b-a55d-9818454cafff
Fangohr, Hans, Albert, Maximilian and Franchin, Matteo
(2016)
Nmag micromagnetic simulation tool – software engineering lessons learned.
In SE4Science '16 : Proceedings of the International Workshop on Software Engineering for Science.
Association for Computing Machinery.
.
(doi:10.1145/2897676.2897677).
Record type:
Conference or Workshop Item
(Paper)
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 maintainability. 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.
Text
1601.07392v2.pdf
- Accepted Manuscript
Restricted to Repository staff only
Request a copy
More information
Accepted/In Press date: 19 February 2016
Published date: 14 May 2016
Venue - Dates:
ICSE 16: 38th International Conference on Software Engineering, Austin, United States, 2016-05-14 - 2016-05-22
Organisations:
Computational Engineering & Design Group
Identifiers
Local EPrints ID: 398030
URI: http://eprints.soton.ac.uk/id/eprint/398030
PURE UUID: 1c2ab833-9215-4f9a-a36c-2435784e5700
Catalogue record
Date deposited: 15 Jul 2016 08:18
Last modified: 15 Mar 2024 03:03
Export record
Altmetrics
Contributors
Author:
Maximilian Albert
Author:
Matteo Franchin
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