Simulate magnetization orientations, domain wall dynamics, and spin vectors at nanometer scales using GPU clusters.
The micromagnetics pipeline solves the Landau-Lifshitz-Gilbert (LLG) equation to determine the spatial distribution of magnetization vectors in magnetic alloys. We support both GPU-accelerated finite-difference engines (MuMax3) and CPU-oriented solvers (OOMMF).
A Go-based finite-difference micromagnetic solver that runs on CUDA GPUs. Designed to compute large structures containing millions of mesh cells.
The Object Oriented Micromagnetic Framework (OOMMF) from NIST. Provides modular C++ class interfaces and detailed micro-scale energy models.
The following script defines a thin ferromagnetic Permalloy strip, initializes it with uniform spin, and simulates its relaxation under an external field.
| 1 | # Mumax3 script template to simulate magnetization dynamics in a thin ferromagnetic film |
| 2 | setgridsize(128, 64, 1) // Set cell dimensions |
| 3 | setcellsize(5e-9, 5e-9, 5e-9) // Cell dimensions in meters (5nm resolution) |
| 4 | |
| 5 | // Define material properties for Permalloy (NiFe) |
| 6 | Msat = 860e3 // Saturation magnetization (A/m) |
| 7 | Aex = 13e-12 // Exchange stiffness constant (J/m) |
| 8 | alpha = 0.02 // Landau-Lifshitz damping parameter |
| 9 | |
| 10 | // Define shape and initial state |
| 11 | DefRegion(1, Box(0, 0, 0)) |
| 12 | m = uniform(1, 0, 0) // Initialize magnetization spin oriented along X-axis |
| 13 | |
| 14 | // Apply external magnetic field to trigger relaxation |
| 15 | B_ext = vector(0.01, 0.002, 0) // External field in Tesla |
| 16 | |
| 17 | // Solve and output magnetization state snapshots |
| 18 | relax() |
| 19 | save(m) |