From e124f86e8e651085d4282428c762dd3c55867188 Mon Sep 17 00:00:00 2001 From: Sam Dareska <37879103+samwaseda@users.noreply.github.com> Date: Wed, 1 Nov 2023 09:31:43 +0100 Subject: [PATCH 1/7] Create paper.md Add file with names corrected --- paper.md | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 paper.md diff --git a/paper.md b/paper.md new file mode 100644 index 0000000..cd683f3 --- /dev/null +++ b/paper.md @@ -0,0 +1,110 @@ +--- +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 + +The forces on stars, galaxies, and dark matter under external gravitational +fields lead to the dynamical evolution of structures in the universe. The orbits +of these bodies are therefore key to understanding the formation, history, and +future state of galaxies. The field of "galactic dynamics," which aims to model +the gravitating components of galaxies to study their structure and evolution, +is now well-established, commonly taught, and frequently used in astronomy. +Aside from toy problems and demonstrations, the majority of problems require +efficient numerical tools, many of which require the same base code (e.g., for +performing numerical orbit integration). + +# Statement of need + +`Gala` is an Astropy-affiliated Python package for galactic dynamics. Python +enables wrapping low-level languages (e.g., C) for speed without losing +flexibility or ease-of-use in the user-interface. The API for `Gala` was +designed to provide a class-based and user-friendly interface to fast (C or +Cython-optimized) implementations of common operations such as gravitational +potential and force evaluation, orbit integration, dynamical transformations, +and chaos indicators for nonlinear dynamics. `Gala` also relies heavily on and +interfaces well with the implementations of physical units and astronomical +coordinate systems in the `Astropy` package [@astropy] (`astropy.units` and +`astropy.coordinates`). + +`Gala` was designed to be used by both astronomical researchers and by +students in courses on gravitational dynamics or astronomy. It has already been +used in a number of scientific publications [@Pearson:2017] and has also been +used in graduate courses on Galactic dynamics to, e.g., provide interactive +visualizations of textbook material [@Binney:2008]. The combination of speed, +design, and support for Astropy functionality in `Gala` will enable exciting +scientific explorations of forthcoming data releases from the *Gaia* mission +[@gaia] by students and experts alike. + +# Mathematics + +Single dollars ($) are required for inline mathematics e.g. $f(x) = e^{\pi/x}$ + +Double dollars make self-standing equations: + +$$\Theta(x) = \left\{\begin{array}{l} +0\textrm{ if } x < 0\cr +1\textrm{ else} +\end{array}\right.$$ + +You can also use plain \LaTeX for equations +\begin{equation}\label{eq:fourier} +\hat f(\omega) = \int_{-\infty}^{\infty} f(x) e^{i\omega x} dx +\end{equation} +and refer to \autoref{eq:fourier} from text. + +# Citations + +Citations to entries in paper.bib should be in +[rMarkdown](http://rmarkdown.rstudio.com/authoring_bibliographies_and_citations.html) +format. + +If you want to cite a software repository URL (e.g. something on GitHub without a preferred +citation) then you can do it with the example BibTeX entry below for @fidgit. + +For a quick reference, the following citation commands can be used: +- `@author:2001` -> "Author et al. (2001)" +- `[@author:2001]` -> "(Author et al., 2001)" +- `[@author1:2001; @author2:2001]` -> "(Author1 et al., 2001; Author2 et al., 2002)" + +# Figures + +Figures can be included like this: +![Caption for example figure.\label{fig:example}](figure.png) +and referenced from text using \autoref{fig:example}. + +Figure sizes can be customized by adding an optional second parameter: +![Caption for example figure.](figure.png){ width=20% } + +# Acknowledgements + +We acknowledge contributions from Brigitta Sipocz, Syrtis Major, and Semyeong +Oh, and support from Kathryn Johnston during the genesis of this project. + +# References From 76ad125c34860dc6a05be21616b57c49359d7eb7 Mon Sep 17 00:00:00 2001 From: Sam Dareska <37879103+samwaseda@users.noreply.github.com> Date: Wed, 1 Nov 2023 09:39:10 +0100 Subject: [PATCH 2/7] Create paper.bib --- paper.bib | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 paper.bib diff --git a/paper.bib b/paper.bib new file mode 100644 index 0000000..3ade801 --- /dev/null +++ b/paper.bib @@ -0,0 +1,10 @@ +@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} +} From 5ccaf6f70a6d68490a74de6b4c399564433c3748 Mon Sep 17 00:00:00 2001 From: Sam Dareska <37879103+samwaseda@users.noreply.github.com> Date: Wed, 1 Nov 2023 10:25:43 +0100 Subject: [PATCH 3/7] Update paper.md --- paper.md | 32 ++++---------------------------- 1 file changed, 4 insertions(+), 28 deletions(-) diff --git a/paper.md b/paper.md index cd683f3..cfcf645 100644 --- a/paper.md +++ b/paper.md @@ -30,37 +30,13 @@ aas-journal: Astrophysical Journal <- The name of the AAS journal. # Summary -The forces on stars, galaxies, and dark matter under external gravitational -fields lead to the dynamical evolution of structures in the universe. The orbits -of these bodies are therefore key to understanding the formation, history, and -future state of galaxies. The field of "galactic dynamics," which aims to model -the gravitating components of galaxies to study their structure and evolution, -is now well-established, commonly taught, and frequently used in astronomy. -Aside from toy problems and demonstrations, the majority of problems require -efficient numerical tools, many of which require the same base code (e.g., for -performing numerical orbit integration). +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. # Statement of need -`Gala` is an Astropy-affiliated Python package for galactic dynamics. Python -enables wrapping low-level languages (e.g., C) for speed without losing -flexibility or ease-of-use in the user-interface. The API for `Gala` was -designed to provide a class-based and user-friendly interface to fast (C or -Cython-optimized) implementations of common operations such as gravitational -potential and force evaluation, orbit integration, dynamical transformations, -and chaos indicators for nonlinear dynamics. `Gala` also relies heavily on and -interfaces well with the implementations of physical units and astronomical -coordinate systems in the `Astropy` package [@astropy] (`astropy.units` and -`astropy.coordinates`). - -`Gala` was designed to be used by both astronomical researchers and by -students in courses on gravitational dynamics or astronomy. It has already been -used in a number of scientific publications [@Pearson:2017] and has also been -used in graduate courses on Galactic dynamics to, e.g., provide interactive -visualizations of textbook material [@Binney:2008]. The combination of speed, -design, and support for Astropy functionality in `Gala` will enable exciting -scientific explorations of forthcoming data releases from the *Gaia* mission -[@gaia] by students and experts alike. +`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 or ASE. `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 and magnetic thermodynamic integration, which can deliver the free energy variation. + + # Mathematics From 9df0648e4f3c792f160c03f8635c6cdfc7ca6ecf Mon Sep 17 00:00:00 2001 From: Sam Dareska <37879103+samwaseda@users.noreply.github.com> Date: Wed, 1 Nov 2023 11:13:32 +0100 Subject: [PATCH 4/7] Update paper.md --- paper.md | 46 +--------------------------------------------- 1 file changed, 1 insertion(+), 45 deletions(-) diff --git a/paper.md b/paper.md index cfcf645..a971308 100644 --- a/paper.md +++ b/paper.md @@ -32,51 +32,7 @@ aas-journal: Astrophysical Journal <- The name of the AAS journal. 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. -# Statement of need - -`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 or ASE. `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 and magnetic thermodynamic integration, which can deliver the free energy variation. - - - -# Mathematics - -Single dollars ($) are required for inline mathematics e.g. $f(x) = e^{\pi/x}$ - -Double dollars make self-standing equations: - -$$\Theta(x) = \left\{\begin{array}{l} -0\textrm{ if } x < 0\cr -1\textrm{ else} -\end{array}\right.$$ - -You can also use plain \LaTeX for equations -\begin{equation}\label{eq:fourier} -\hat f(\omega) = \int_{-\infty}^{\infty} f(x) e^{i\omega x} dx -\end{equation} -and refer to \autoref{eq:fourier} from text. - -# Citations - -Citations to entries in paper.bib should be in -[rMarkdown](http://rmarkdown.rstudio.com/authoring_bibliographies_and_citations.html) -format. - -If you want to cite a software repository URL (e.g. something on GitHub without a preferred -citation) then you can do it with the example BibTeX entry below for @fidgit. - -For a quick reference, the following citation commands can be used: -- `@author:2001` -> "Author et al. (2001)" -- `[@author:2001]` -> "(Author et al., 2001)" -- `[@author1:2001; @author2:2001]` -> "(Author1 et al., 2001; Author2 et al., 2002)" - -# Figures - -Figures can be included like this: -![Caption for example figure.\label{fig:example}](figure.png) -and referenced from text using \autoref{fig:example}. - -Figure sizes can be customized by adding an optional second parameter: -![Caption for example figure.](figure.png){ width=20% } +`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. # Acknowledgements From c37c1355fc8373aa30fa7cd847b15490f87a9dae Mon Sep 17 00:00:00 2001 From: Sam Dareska <37879103+samwaseda@users.noreply.github.com> Date: Wed, 1 Nov 2023 11:14:03 +0100 Subject: [PATCH 5/7] Update paper.bib --- paper.bib | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/paper.bib b/paper.bib index 3ade801..e86a901 100644 --- a/paper.bib +++ b/paper.bib @@ -1,3 +1,53 @@ +@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}, From f7f5dbc270a21db19470a0513b04ec6d42cbbe43 Mon Sep 17 00:00:00 2001 From: Sam Dareska <37879103+samwaseda@users.noreply.github.com> Date: Wed, 1 Nov 2023 11:30:09 +0100 Subject: [PATCH 6/7] Create draft-pdf.yml --- .github/workflows/draft-pdf.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .github/workflows/draft-pdf.yml 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 From 43e1ed2be90161a21bbcf83b3eb2887f44c60de0 Mon Sep 17 00:00:00 2001 From: Sam Dareska <37879103+samwaseda@users.noreply.github.com> Date: Wed, 1 Nov 2023 11:46:27 +0100 Subject: [PATCH 7/7] Update paper.md --- paper.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/paper.md b/paper.md index a971308..f4d17ce 100644 --- a/paper.md +++ b/paper.md @@ -34,6 +34,8 @@ Magnetic interactions account for a significant portion of free energy in certai `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