Releases: mumax/3
mumax 3.11
A housekeeping update is currently being prepared for mumax³.
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.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_InitGeomFromOVF(file)
: can be used to load a geometry stored in an OVF file (e.g. as saved bysave(geom)
). Besides loading the geometry as aVoxelShape
(not accessible 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.
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 (20 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.
ext_make3Dgrains
did not use seeded random generator. Fixed in dcf1e2f.- 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.
mumax 3.6.1
binaries last updated Dec 9, 2014
Please cite "The Design and Verification of MuMax3", available on http://dx.doi.org/10.1063/1.4899186, in any work that uses mumax3
Requirements:
Mumax3 requires an nVIDIA GPU with compute capability 2.0 or higher, as well as the nVIDIA GPU driver. To run with CUDA6.5, driver v.340 or later is recommended. Older CUDA versions can be used with outdated drivers. Note that there is no need to install CUDA, it ships with the binaries.
Installation:
No explicit installation is needed. After downloading and decompressing the archive for your platform, you should be able to just run the mumax3 binary.
MacOSX users can compile from source.
Changes since mumax 3.5:
- Ability to fix spins in desired regions, with
FrozenSpins.SetRegion(x, 1)
(Thanks Mykola Dvornik) - Bulk DMI interaction (available via
Dbulk
) was implemented but not yet qualitatively tested. Please provide feedback but do not yet use this feature for production simulations. - To allow for bulk DMI interaction it was necessary to rename the quantity
Dex
toDind
(for induced DMI), to avoid confusion with the bulk DMI strengthDbulk
. We regret such backwards-incompatible rename, but think it is necessary to avoid accidental mix-up of both terms. - MFM images are now generated in AC mode, rather than the fairly unusual DC mode used in earlier mumax versions. Please contact the authors if you really need DC mode.
- Zhang-Li STT can now be explicitly disabled. This is of interest for 3D simulations with Slonczewski STT, where, by defeault, Zhang-Li was enabled as well (Thanks Mykola Dvornik).
- Add NewVectorMask for easier space-dependent excitation.
- RK4 solver is now available for finite-temperature simulations with a large time step (Thanks Jonathan Leliaert)
- mumax3-convert allows custom color scales, see the documentation on http://godoc.org/github.com/mumax/3/cmd
Fixes:
- Fixed and tested cubic anisotropy energy.
- Fixed mumax3-convert VTK output (Thanks Mykola Dvornik).
- Fixed incompatibility of dump format with mumax2 (Thanks Mykola Dvornik). In the unlikely event that you need to import mumax3.5 generated dump data into mumax3.6, you should use mumax3-convert (v3.5) to convert your dump files to OVF binary, and import the OVFs into mumax3.6.
- Fixed -o flag.
- Packaged mumax3 bootstrap program again (sets LD_LIBRARY_PATH for you).
Documentation
As always, available on http://mumax.github.io