diff --git a/.github/workflows/draft-pdf.yml b/.github/workflows/draft-pdf.yml new file mode 100644 index 0000000..6a508b7 --- /dev/null +++ b/.github/workflows/draft-pdf.yml @@ -0,0 +1,23 @@ +on: [push] + +jobs: + paper: + runs-on: ubuntu-latest + name: Paper Draft + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Build draft PDF + uses: openjournals/openjournals-draft-action@master + with: + journal: joss + # This should be the path to the paper within your repo. + paper-path: paper.md + - name: Upload + uses: actions/upload-artifact@v1 + with: + name: paper + # This is the output path where Pandoc will write the compiled + # PDF. Note, this should be the same directory as the input + # paper.md + path: paper.pdf diff --git a/paper.bib b/paper.bib new file mode 100644 index 0000000..e86a901 --- /dev/null +++ b/paper.bib @@ -0,0 +1,60 @@ +@article{bauer2011alps, + title={The ALPS project release 2.0: open source software for strongly correlated systems}, + author={Bauer, Bela and Carr, LD and Evertz, Hans Gerd and Feiguin, Adrian and Freire, J and Fuchs, Sebastian and Gamper, Lukas and Gukelberger, Jan and Gull, Emanuel and Guertler, Siegfried and others}, + journal={Journal of Statistical Mechanics: Theory and Experiment}, + volume={2011}, + number={05}, + pages={P05001}, + year={2011}, + publisher={IOP Publishing} +} + +@book{frenkel2023understanding, + title={Understanding molecular simulation: from algorithms to applications}, + author={Frenkel, Daan and Smit, Berend}, + year={2023}, + publisher={Elsevier} +} + +@article{theodoropoulos2000coarse, + title={“Coarse” stability and bifurcation analysis using time-steppers: A reaction-diffusion example}, + author={Theodoropoulos, Constantinos and Qian, Yue-Hong and Kevrekidis, Ioannis G}, + journal={Proceedings of the National Academy of Sciences}, + volume={97}, + number={18}, + pages={9840--9843}, + year={2000}, + publisher={National Acad Sciences} +} + +@article{larsen2017atomic, + title={The atomic simulation environment—a Python library for working with atoms}, + author={Larsen, Ask Hjorth and Mortensen, Jens J{\o}rgen and Blomqvist, Jakob and Castelli, Ivano E and Christensen, Rune and Du{\l}ak, Marcin and Friis, Jesper and Groves, Michael N and Hammer, Bj{\o}rk and Hargus, Cory and others}, + journal={Journal of Physics: Condensed Matter}, + volume={29}, + number={27}, + pages={273002}, + year={2017}, + publisher={IOP Publishing} +} + +@article{janssen2019pyiron, + title={pyiron: An integrated development environment for computational materials science}, + author={Janssen, Jan and Surendralal, Sudarsan and Lysogorskiy, Yury and Todorova, Mira and Hickel, Tilmann and Drautz, Ralf and Neugebauer, J{\"o}rg}, + journal={Computational Materials Science}, + volume={163}, + pages={24--36}, + year={2019}, + publisher={Elsevier} +} + +@article{schneider2021ab, + title={Ab initio based models for temperature-dependent magnetochemical interplay in bcc Fe-Mn alloys}, + author={Schneider, Anton and Fu, Chu-Chun and Waseda, Osamu and Barreteau, Cyrille and Hickel, Tilmann}, + journal={Physical Review B}, + volume={103}, + number={2}, + pages={024421}, + year={2021}, + publisher={APS} +} diff --git a/paper.md b/paper.md new file mode 100644 index 0000000..f4d17ce --- /dev/null +++ b/paper.md @@ -0,0 +1,44 @@ +--- +title: 'mamonca: magnetic Monte Carlo code' +tags: + - Python + - Heisenberg-Landau model + - Spin dynamics + - Metadynamics + - Thermodynamic integration +authors: + - name: Osamu Waseda + orcid: 0000-0002-1677-4057 + corresponding: true # (This is how to denote the corresponding author) + equal-contrib: true + affiliation: 1 + - name: Tilmann Hickel + affiliation: 1 + - name: Jörg Neugebauer + affiliation: 1 +affiliations: + - name: Max-Planck-Institut für Eisenforschung, Max-Planck-Straße 1, D-40237 Düsseldorf, Germany + index: 1 +date: 1 November 2023 +bibliography: paper.bib + +# Optional fields if submitting to a AAS journal too, see this blog post: +# https://blog.joss.theoj.org/2018/12/a-new-collaboration-with-aas-publishing +aas-doi: 10.3847/xxxxx <- update this with the DOI from AAS once you know it. +aas-journal: Astrophysical Journal <- The name of the AAS journal. +--- + +# Summary + +Magnetic interactions account for a significant portion of free energy in certain materials, ranging from iron, whose ground state would be wrongly predicted without considering magnetic interactions, to Heusler alloys, whose magnetic properties could allow for the development of highly efficient refrgiration systems. In materials science, the Heisenberg model is frequently employed to heuristically compute the potential energy. There are two main methods to make use of the Heisenberg model at finite temperature: one is the Monte Carlo method for an efficient free energy minimization, the other is spin dynamics for the calculation of spin configuration evolution. + +`mamonca` is a C++-based python software package for the computation of magnetic interactions in solid materials. It has a clear interface consisting of setters (methods starting with `set_`) for inputs and getters (methods starting with `get_`). It has also an excellent interactivity, as the parameters can be changed on-the-fly, as well as the outputs can be retrieved in the same way. In order to have full flexibility in terms of multi-component systems and inclusion of defects, `mamonca` outsourced the structure definition, so that the user can analyse the interactions externally using a software package like pyiron [@janssen2019pyiron] or Atomic Structure Environment (ASE) [@larsen2017atomic]. `mamonca` has also high flexibility in defining the Hamiltonian, as it allows the user to define not only the classical Heisenberg model, but higher order components including the longitudinal variation can be defined, as it has been employed for Fe-Mn systems [@schneider2021ab]. In addition to the classical Monte Carlo and spin-dynamics, `mamonca` allows also for an addition of Metadynamics [@theodoropoulos2000coarse] and magnetic thermodynamic integration [@frenkel2023understanding], which can deliver the free energy variation. + +Internally, each atom points to the magnetic moment of the interacting neighboring atoms, which allows for an efficient computation of pairwise interactions both in terms of speed and memory. Moreover, while it performs an on-the-fly computation of average magnetization and average energy, it does not allocate new memory for any property on-the-fly, which makes it highly memory-efficient. + +# Acknowledgements + +We acknowledge contributions from Brigitta Sipocz, Syrtis Major, and Semyeong +Oh, and support from Kathryn Johnston during the genesis of this project. + +# References