Releases: mumax/3
mumax 3.11.1
This patch solves a few bugs, most importantly one that appeared in 3.10 where regions with Msat=0
could influence other regions through the exchange interaction.
Changelog
Bugfixes
- Regions with
Msat=0
could interact with other regions through the exchange interaction, and were themselves affected by the demagnetising field. Reported by @jplauzie in #357. Fixed in #372. mumax3 -i
always opened default port:35367
in browser even if it was already used by another mumax process. Fixed in 46fe212.-gpu
flag had no effect when specifying multiple input files. Fixed in #373.
mumax 3.11
Important
In mumax 3.11, GPUs with compute capability <5.0 will no longer be able to run the mumax³ pre-compiled binaries that are provided on the mumax³ download page. Those binaries will only be compiled with CUDA 10.0 and higher. Check your GPU's compute capability with nvidia-smi --query-gpu="compute_cap" --format="csv"
.
Changelog
New functionality in input scripts
Functions
FunctionFromDatafile(file, xcol, ycol, interp)
: creates a function from columns in a CSV file. #343 by @JeroenMulkers.RedefRegion(old_idx, new_idx)
: all cells with region indexold_idx
will be moved to regionnew_idx
. #280 by @RossKnapman.RemoveCustomEnergies()
: clear all user-defined energies. #301 by @FGarcias.ClearPostSteps()
: clears all functions that run after each simulation step (e.g., running averages, tracking skyrmions/DWs...). #362 by @ilateur.RunningAverage(q)
: tracks the time-average of a (custom) quantityq
, accounting for adaptive time steps.
Sum(q)
andSumVector(q)
: sum of a quantityq
over all cells in the simulation domain. #347 by @JonathanMaes.Triangle(x0, y0, x1, y1, x2, y2)
: triangle shape, infinite along z-axis. #364 by @ilateur.ext_centerWallInLayer(reg, comp)
andext_centerWallInRegion(reg, comp)
: follow a domain wall in only one layer/region (useful e.g. in SAF or odd-shaped geometries). #222 by @jsampaio.ext_hopfindex_<method>()
,ext_hopfindexdensity_<method>()
andext_emergentmagneticfield_<method>()
: calculation of Hopf index and related quantities via different numerical methods, as described in Knapman et al., Phys. Rev. B 111, 134408 (2025). #365 by @RossKnapman.ext_InitGeomFromOVF(file)
: load geometry stored in an OVF file (e.g. saved bysave(geom)
). Besides loading the geometry as aVoxelShape
(inaccessible by the user), this function also resizes the grid and cells to the same size as in the.ovf
file. Part of #311 by @Artemkth.
Boolean parameters
EdgeCarryShift
(defaultfalse
): if set totrue
, callingShift(x)
uses the values ofm
at the border to set the magnetization of the introduced cells. For cells where this border was outside the geometry,ShiftMagL/R/D/U
is used. #316 by @jsampaio.ext_grainCutShape
(defaultfalse
): if set totrue
, callingext_make3Dgrains()
on a certain shape will complete all voronoi grains whose centre lies within the shape, while grains whose centre lies outside the shape will be cut out. #335 by @JLeliaert.ext_enableCenterBubbleX
andY
(defaulttrue
): if set tofalse
,ext_centerBubble
will not consider that axis for centering. #361 by @ilateur.
Other changes
- Updated README with instructions and troubleshooting for building mumax³ on Windows, and updated
deploy_windows.ps1
to be more versatile. Related: #332. - Warn the user when the grid is not 7-smooth, when it contains an odd number of cells at nonzero temperature, or when cells have a high aspect ratio. See #340.
- Removed unnecessary torque evaluation in RKF56 solver. Fixed in #341.
- Print extra system information when mumax³ starts, including commit hash when
mumax3.exe
was compiled. Merged in e07e134 and #344. - Updated GPU benchmarks on homepage (24 new, 12 removed).
Bugfixes
- OVF files could not contain comments when loaded with mumax³. Fixed in #311 by @Artemkth.
Shifted(x, y, z)
could not be used to shift quantities over more than one direction at once. Fixed in #283.- Incorrect equation for magnetoelastic effective field. Fixed in #324 by @marcrovi.
- Bulk DMI with Neumann BC skipped derivative calculation in non-3D systems. Fixed in #363 by @ilateur.
ext_make3Dgrains
did not use seeded random generator. Fixed in dcf1e2f.ShiftY
erroneously relied on x-axis for one calculation. Fixed in #355 by @ilateur.- MFM images could not be calculated for some grid sizes. Fixed in #334.
- Cone was not a cone. Fixed in ef13cb6, reported by @gnmp in #287.
- Demag kernel calculation did not always print 0% and 100% completion.
- Scrolling in mumax-view was broken in Firefox.
- 🎅 9c348f6
- Updated LICENSE with additional permission under GNU GPL version 3 section 7 concerning NVIDIA CUDA Toolkit. Fixed in #296 by @rolandmas.
mumax 3.10
You would need at least Nvidia driver v331 to run mumax3.10 (corresponding to CUDA 7.0 release).
We strongly encourage you to use as latest driver as it possible for your hardware, since newer CUDA versions offer sizeable performance gains.
The mumax3.10 release version includes
- Fixed sign in field-like Slonczewski torque (see issue #99 for the details)
- Fixed boundary conditions in exchange field calculation (see pull request #115 for the details; thanks to Attila Kakay for reporting)
- Support for Nvidia GPUs from Maxwell to Turing architectures; Fermi is now deprecated.
- Relax() now supports user-defined threshold contributed by @jsampaio (see issue #146 and pull request #148 for the details).
- mumax3-convert can now render arrows with scalar colorplots (see pull request #152 for the details)
- mumax3-convert can now convert ovf files to numpy binary files.
- Adaptive time step with finite temperature. Ref: http://doi.org/10.1063/1.5003957
- User-defined field terms (for a detailed example see supplementary materials Ref. https://doi.org/10.1088/1361-6463/aa8601)
- skyrmion / bubble position estimation and 2D moving window (see pull request #135)
- Runge-Kutta 56 solver (see Ref: http://doi.org/10.1063/1.5003957)
- Point-wise FixedLayer quantity.
- mumax3 binary can now handle *.go input files directly.
- 3D voronoi tessellation contributed by @peytondmurray
- Creation of bibtex file (references.bib) in output directory with relevant references specific to your simulation.
- mumax3-fft, a post-processing tool, has been moved to https://github.com/mumax/mumax3-fft
- SnapshotAs(...) contributed by @kkingstoun
- Vector fields, e.g., B_eff, can now be accessed in mx3 script via HostCopy() method.
- mumax3-convert can now handle wildcards on Windows.
- Option to use open boundary conditions instead of Neumann boundary conditions.
- Substantial overhaul of the build system for easier deployment for a given CUDA version.
- Up to CUDA 11 and Nvidia Ampere support.
- Lattice-based topological charge calculation contributed by @nov2oj (see #262 , #265 and https://arxiv.org/abs/2006.13336 for the details).
- Fixed solver reproducibility issue reported by @DeSanz (see #260 for the details).
- It is now possible to output magnetization angles using
ext_angles
contributed by @peytondmurray (see #232 for the details andtest/sp4_angles.mx3
for an example). - It is now possible to initialized magnetization to conical or helical states (see #203 for the details and
test/conical.mx3
for an example). - Magnifying loupe in the web interface contributed by @jsampaio (see #216 for the details).
- Free layer thickness can now be set with
FreeLayerThickness
parameter, instead of deducted from the model thickness by default (#266). - Slight solver performance optimization contributed by @peytondmurray (see #233 for the details).
There is also plethora of fixes, including contributions from @joh, @syockit, @kkingstoun, @LLizardi, @kakutsmann, @ivlis, @jsampaio and @yuli-nano.
Finally, we would like to thank everybody who kindly shared mumax3 benchmark results with us.
mumax 3.10β
You would need CUDA 10 and Nvidia driver 410.48 (Linux) and 411.31 (Windows) to run mumax3.10β.
Binaries for older CUDA versions are NOT RECOMMENDED and only provided for compatibility reasons (e.g. for supercomputers)
This version includes
- Fixed sign in field-like Slonczewski torque (see issue #99 for the details)
- Fixed boundary conditions in exchange field calculation (see pull request #115 for the details; thanks to Attila Kakay for reporting)
- Support for Nvidia GPUs from Maxwell to Turing architectures; Fermi is now deprecated.
- Relax() now supports user-defined threshold contributed by @jsampaio (see issue #146 and pull request #148 for the details).
- mumax3-convert can now render arrows with scalar colorplots (see pull request #152 for the details)
- Adaptive time step with finite temperature. Ref: http://doi.org/10.1063/1.5003957
- User-defined field terms (for a detailed example see supplementary materials Ref. https://doi.org/10.1088/1361-6463/aa8601)
- skyrmion / bubble position estimation and 2D moving window (see pull request #135)
- Runge-Kutta 56 solver (see Ref: http://doi.org/10.1063/1.5003957)
- Point-wise FixedLayer quantity.
- mumax3 binary can now handle *.go input files directly.
- 3D voronoi tessellation contributed by @peytondmurray
- Creation of bibtex file (references.bib) in output directory with relevant references specific to your simulation.
- mumax3-fft, a post-processing tool, has been moved to https://github.com/mumax/mumax3-fft
- SnapshotAs(...) contributed by @kkingstoun
- Vector fields, e.g., B_eff, can now be accessed in mx3 script via HostCopy() method.
- mumax3-convert can now handle wildcards on Windows.
- Option to use open boundary conditions instead of Neumann boundary conditions.
There is also plethora of fixes, including contributions from @joh, @syockit, @kkingstoun, @LLizardi, @kakutsmann, @ivlis and @jsampaio.
Finally, we would like to thank everybody who kindly shared mumax3 benchmark results with us.
mumax 3.9.3
This release allows space-dependent induced DMI (thanks @JeroenMulkers).
Linux binary is now compiled for cuda 7.5, which ships with ubuntu 16.04.
mumax 3.9.1
This version works around issue #52: a bug in NVIDIA's cuFFT library caused wrong FFT results for certain sizes with CUDA >= 6.5. Fortunately, a sanity check in mumax detected this issue, causing mumax to checkfail and not return wrong results. Thanks @godsic for detecting and fixing this issue.
Upgrading is recommended for everyone using CUDA 6.5 or newer.
mumax 3.9 "community" release
This first community release features Ahmad Syukri bin Abdollah's fast conjugate gradient energy minimizer.
mumax 3.8 final
This release is intended to be very stable and usable in the long-term.
Fixes
This version fixes the "closure caveat" that arises when using a time-dependent function that also depends on an other variable. E.g.:
for i:=0; i<256; i++{
alpha.SetRegion(i, i*t*1e9)
}
Until now, the same i
was shared among all regions. It would have the value 255 (the last value assigned to it). This unexpected behavior has now been fixed and a fresh copy of i
is used for each region, giving the expected time- and space-dependence.
However, there is a price to pay. E.g., in this case:
A = 1e-3
B_ext = vector(A*sin(omega*t), 0, 0)
A = 2e-3 // B_ext not affected by new A
the second assignment to A
used to change the amplitude of B_ext. This is not the case anymore, as the A
in A*sin(omega*t)
is now a fresh copy, unaffected by assignments to the original. If you want to change the amplitude in this case, you need to repeat B_ext =
after setting a new A
.
Running
On linux, cd to the directory containing mumax3.sh and run:
./mumax3.sh
which should start mumax3 in a browser window. You can also run an .mx3
input file, see http://mumax.github.io/examples.html.
You can have a look at the contents of the mumax3.sh script. All it does is set your LD_LIBRARY_PATH
to the current directory (which contains cuda6.0 libraries) and run mumax3-cuda6.0.
If you have manually installed CUDA on your system, you should be able to run mumax3-cudaX.X, with X.X your CUDA version. The same goes for clusters, etc. You may then also copy mumax3-cudaX.X to a convenient location like ~/bin/mumax3
or /usr/local/bin/mumax3
After which you can run mumax3 from any location.
Driver
You will, of course, need a proprietary nvidia driver. If your current driver does not work, version 340 is recommended.
Reference
Thank you for citing "The Design and Verification of MuMax3", http://dx.doi.org/10.1063/1.4899186.
More documentation at:
- http://mumax.github.io/
- http://godoc.org/github.com/mumax/3/cmd/mumax3-convert
- http://godoc.org/github.com/mumax/3/cmd/mumax3-server
Questions
Most questions can be answered by reading "The Design and Verification of MuMax3", http://dx.doi.org/10.1063/1.4899186.
If that does not work, your question can be posted here: https://groups.google.com/forum/#!forum/mumax2.
Please use a descriptive subject like, e.g.:
"mumax 3.7 crashes with CUDA_ERROR_UNKNOWN on Ubuntu 15.04",
but not, e.g.:
"mumax question".
To install from source in Ubuntu 15.04:
Installing from source is easy from Ubuntu 15.04. Execute these steps if you understand what they do:
sudo apt-get install git golang-go gcc nvidia-cuda-toolkit nvidia-cuda-dev nvidia-340 gnuplot
export GOPATH=$HOME go get -u -v github.com/mumax/3/cmd/mumax3
This will install mumax3 in $HOME/bin
mumax 3.7
New features:
- MaxAngle, SpinAngle quantities return the maximum spin-spin angle and the space-dependent spin-spin angle.
- Finite temperature can now be used with all solvers, but still requires a fixed time step (thanks @JLeliaert).
- 2D topological charge can now be output (Thanks @godsic).
- Add CC5.2 code for recent GPU's (Thanks @godsic ) and handle older drivers better.
Reference
Thank you for citing "The Design and Verification of MuMax3", http://dx.doi.org/10.1063/1.4899186.
Questions
Most questions can be answered by reading "The Design and Verification of MuMax3", http://dx.doi.org/10.1063/1.4899186.
If that does not work, your question can be posted here: https://groups.google.com/forum/#!forum/mumax2.
Please use a descriptive subject like, e.g.:
"mumax 3.7 crashes with CUDA_ERROR_UNKNOWN on Ubuntu 15.04",
but not, e.g.:
"mumax question".
To install from source in Ubuntu 15.04:
Execute these steps if you understand what they do:
sudo apt-get install git golang-go gcc nvidia-cuda-toolkit nvidia-cuda-dev nvidia-340 gnuplot
export $GOPATH=$HOME go get -u -v github.com/mumax/3/cmd/mumax3
This will install mumax3 in $HOME/bin
mumax 3.6.2
Fixes
This is primarily a maintenance release with a few minor fixes:
- Made mumax3-server http file system more fault-tolerant.
- gnuplot output now works for simulations started by mumax3-server (Thanks @syockit)
- Fixed rare bug occasionally causing Ku2, Dind, Dbulk to be wrong after changing Msat.
- Fixed OVF2 read bug causing occasional issues with kernel caching.
- Minor documentation fixes (Thanks Sam Sloetjes).
- GUI: nicer rendering of vector fields with norm != 1 (Thanks @godsic)
Additions
There are a few minor additions:
- Add ability to output mumax2's binary dump format (Thanks @godsic)
- Record the time spent in CUDA calls if
-sync
flag is provided - Batch mode: report number of OK/failed simulations.
Questions
can be posted here: https://groups.google.com/forum/#!forum/mumax2
Reference
Thank you for citing "The Design and Verification of MuMax3", http://dx.doi.org/10.1063/1.4899186.