plus
More versatile and extensible GPU-accelerated micromagnetic simulator
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.6%) to scientific vocabulary
Keywords
Repository
More versatile and extensible GPU-accelerated micromagnetic simulator
Basic Info
Statistics
- Stars: 22
- Watchers: 8
- Forks: 5
- Open Issues: 3
- Releases: 4
Topics
Metadata Files
README.md
mumax⁺
A more versatile and extensible GPU-accelerated micromagnetic simulator written in C++ and CUDA with a Python interface. This project is in development alongside its popular predecessor mumax³. If you have any questions, feel free to use the mumax mailing list.
Paper
mumax⁺ is described in the following paper:
mumax+: extensible GPU-accelerated micromagnetics and beyond
https://arxiv.org/abs/2411.18194
Please cite this paper if you would like to cite mumax⁺. All demonstrations in the paper were simulated using version v1.1.0 of the code. The scripts used to generate the data can be found in the paper2025 directory under the paper2025 tag.
Dependencies
You should install these yourself * CUDA Toolkit 10.0 or later * A C++ compiler which supports C++17, such as GCC * On Windows (good luck): MSVC 2019
These will be installed automatically within the conda environment * cmake 4.0.0 * Python 3.13 * pybind11 v2.13.6 * NumPy * matplotlib * SciPy * Sphinx
Installation from Source
Linux
Make sure that the following applications and build tools are installed: * C++ compiler which supports c++17, such as GCC * CPython (version ≥ 3.8 recommended) and pip * CUDA Toolkit (version 10.0 or later) * git * miniconda or anaconda
Make especially sure that everything CUDA-related (like nvcc) can be found inside your path. This can be done by editing your ~/.bashrc file and adding the following lines.
```bash
add CUDA
export PATH="/usr/local/cuda/bin:$PATH"
export LDLIBRARYPATH="/usr/local/cuda/lib64:$LDLIBRARYPATH"
``
The paths might differ if CUDA Toolkit has been installed in a different location. If successful, a command such asnvcc --version` should work.
Clone the mumax⁺ git repository. The --recursive flag is used here to get the pybind11 submodule which is needed to build mumax⁺.
bash
git clone --recursive https://github.com/mumax/plus.git mumaxplus && cd mumaxplus
We recommend to install mumax⁺ in a clean conda environment. You could also skip this step and use your own conda environment instead if preferred.
bash
conda env create -f environment.yml
conda activate mumaxplus
Then build and install mumax⁺ using pip.
bash
pip install -v .
If changes are made to the code, then pip install -v . can be used to
rebuild mumax⁺. If you want to change the Python code without needing
to reinstall, you can use pip install -ve ..
You could also compile the source code with double precision, by changing FP_PRECISION in CMakeLists.txt from SINGLE to DOUBLE before rebuilding.
cmake
add_definitions(-DFP_PRECISION=DOUBLE) # FP_PRECISION should be SINGLE or DOUBLE
Windows
These instructions are old and worked at some point (2021), but not today. If you are brave enough to try Windows and you manage to get it working, please let us know!
- Install Visual Studio 2019 and the desktop development with C++ workload
- Install CUDA Toolkit 10.x
- Install cmake
- Download the pybind11 submodule with git
git submodule init git submodule update - Install Python packages using conda
conda env create -f environment.yml - Build
mumaxplususingsetuptoolsactivate mumaxplus python setup.py developorcondaconda activate mumaxplus conda develop -b .
Documentation
Documentation for mumax⁺ can be found at http://mumax.github.io/plus.
It follows the NumPy style guide and is generated using Sphinx. You can build it yourself by running the following command in the docs/ directory:
bash
make html
The documentation can now be found at docs/_build/html/index.html.
Examples
Lots of example codes are located in the examples/ directory. They are either simple Python scripts, which can be executed inside said directory like any Python script
bash
python standardproblem4.py
or they are interactive notebooks (.ipynb files), which can be run using Jupyter.
Testing
Several automated tests are located inside the test/ directory. Type pytest inside the terminal to run them. Some are marked as slow, such as test_mumax3_standardproblem5.py. You can deselect those by running pytest -m "not slow". Tests inside the test/mumax3/ directory require external installation of mumax³. They are marked by mumax3 and can be deselected in the same way.
Contributing
Contributions are gratefully accepted. To contribute code, fork our repo on GitHub and send a pull request.
Owner
- Name: mumax
- Login: mumax
- Kind: organization
- Website: mumax.github.io
- Repositories: 5
- Profile: https://github.com/mumax
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite the following paper."
authors:
- family-names: Mulkers
given-names: Jeroen
orcid: "https://orcid.org/0000-0002-4000-9275"
- family-names: Moreels
given-names: Lars
orcid: "https://orcid.org/0000-0001-7362-2466"
- family-names: Lateur
given-names: Ian
orcid: "https://orcid.org/0009-0003-8283-4083"
- family-names: De Gusem
given-names: Diego
orcid: "https://orcid.org/0009-0008-3341-0555"
title: "mumax⁺"
version: 1.0.0
date-released: 2024-11-29
url: "https://github.com/mumax/plus"
preferred-citation:
type: generic
authors:
- family-names: Moreels
given-names: Lars
orcid: "https://orcid.org/0000-0001-7362-2466"
- family-names: Lateur
given-names: Ian
orcid: "https://orcid.org/0009-0003-8283-4083"
- family-names: De Gusem
given-names: Diego
orcid: "https://orcid.org/0009-0008-3341-0555"
- family-names: Mulkers
given-names: Jeroen
orcid: "https://orcid.org/0000-0002-4000-9275"
- family-names: Maes
given-names: Jonathan
orcid: "https://orcid.org/0000-0003-4973-8383"
- family-names: Milosevic
given-names: Milorad V.
orcid: "https://orcid.org/0000-0002-5431-377X"
- family-names: Leliaert
given-names: Jonathan
orcid: "https://orcid.org/0000-0001-8778-3092"
- family-names: Van Waeyenberge
given-names: Bartel
orcid: "https://orcid.org/0000-0001-7523-1661"
year: 2024
month: 11
day: 27
title: "mumax+: extensible GPU-accelerated micromagnetics and beyond"
doi: "10.48550/arXiv.2411.18194"
url: https://arxiv.org/abs/2411.18194
GitHub Events
Total
- Create event: 29
- Release event: 3
- Issues event: 17
- Watch event: 20
- Delete event: 28
- Issue comment event: 45
- Public event: 1
- Push event: 163
- Pull request review comment event: 286
- Pull request review event: 227
- Pull request event: 54
- Fork event: 4
Last Year
- Create event: 29
- Release event: 3
- Issues event: 17
- Watch event: 20
- Delete event: 28
- Issue comment event: 45
- Public event: 1
- Push event: 163
- Pull request review comment event: 286
- Pull request review event: 227
- Pull request event: 54
- Fork event: 4
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 9
- Total pull requests: 31
- Average time to close issues: 3 months
- Average time to close pull requests: 17 days
- Total issue authors: 4
- Total pull request authors: 3
- Average comments per issue: 1.78
- Average comments per pull request: 0.71
- Merged pull requests: 17
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 9
- Pull requests: 31
- Average time to close issues: 3 months
- Average time to close pull requests: 17 days
- Issue authors: 4
- Pull request authors: 3
- Average comments per issue: 1.78
- Average comments per pull request: 0.71
- Merged pull requests: 17
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- ilateur (4)
- lamoreel (3)
- Johnblog (1)
- kkingstoun (1)
- MathieuMoalic (1)
Pull Request Authors
- ilateur (12)
- lamoreel (11)
- DiegoDeGusem (9)
- hernantech (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- clang-format *
- numpy *