Supplementary information for "Kinematic Model of Magnetic Domain Wall Motion for Fast, High-Accuracy Simulations"
- read in mumax3 output table files from specified folder, output excel and .mat files with position and velocity extracted
- Should be run after extract_DW_motion, using the output .mat files
- Calculates various quantities (drift distance, time constant of velocity, max velocity) for each current density
- saves quantities to single .mat file per corner, for use in fit_model_constants.m
- Use after running DW_analysis.m for each parameter corner, and compiling all corners' .mat file outputs into single folder as input
- Finds model constants by fitting mumax simulation results to model
- Create and save lookup tables for model constants to use in model implementations
- VerilogA code for SPICE device implementation
DWSim_V=centerWall_Geom=1_Aex=11e-12_Ku=4.05e+5_A=0.01_Msat=7.95e+5_u0Hke=NaN_DMI=NaN_J=4.0e+09_RT=100e-9_W=100e-9.mx3
- sample mumax3 script for simple constant current pulse input
- The mumax script naming convention should be followed since extract_DW_motion.m uses the naming convention to associate the DW position and the micromagnetic parameters.
The kinematic DW model may be extended to alternative parameter corners, input stimuli, or data; the following sections include scripts to automatically extract model fitting parameters to match new simulation or experimental data.
The Mumax3 DW script in this project may be altered to run simulations with different micromagnetic parameters or input stimuli. For a fixed parameter corner, multiple simulations should be run with varying stimuli intensity. The table.txt files generated by mumax contain all the data needed to calculate model fitting parameters.
Experiments should comprise a single uniform stimulus followed by a period without stimulus. The time-length of both portions of the experiment should be sufficiently long for the DW to accelerate or decelerate to its final velocity, and multiple trials should be performed on the same material sample, varying only the strength of the input stimuli. Each trial will have its own table and tables should be stored in folders according to the name convention specified in the following subsection.
Experimental data must match the Mumax3 table.txt format in order for the Matlab scripts to properly extract model fitting parameters, that is in CSV format, structured according to the following table:
Time (s) | Unused | Unused | Unused | Norm. Mag. @ 0 nm | Norm. Mag. @ 1 nm | ... | Norm. Mag. @ (N) nm |
---|---|---|---|---|---|---|---|
0e-9 | 1 | 1 | ... | -1 | |||
1e-9 | 1 | 1 | ... | -1 | |||
⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
(T)e-9 | 1 | 0.97 | ... | -1 |
Time step size may be arbitrary. At each time step, magnetization of the sample should be measured at equally spaced locations along the length of the nanowire. For perpendicularly (in-plane) magnetized samples, the out-of-plane (track-length-wise) component of the magnetization should be written to the table, normalized to the saturation magnetization of the material. extract_DW_motion.m will implicitly assume a position step size of 1 nm, matching the Mumax3 template; line 212 of extract_DW_motion.m (positionStep = ...) should be changed to match the experimental spacing between samples.
There are three Matlab scripts provided to automatically extract the kinematic DW model fitting parameters from micromagnetic simulation or experimental data. The scripts are briefly described here and provided in a later section:
This script can read in Mumax3 or experimental data formatted according the the previous subsection. The script computes and saves (in .mat format) the DW position and velocity at each time step.
All .mat files produced by extract_DW_motion.m should be collected into folders, one folder per material parameter corner. Each parameter corner folder should contain .mat files from several trials with varied stimulation strength. DW_analysis.m is run over an entire parameter corner folder and calculates the DW drift distance, velocity time constants, and maximum velocity for each trial, saving them into a single .mat file to be collected by fit_model_constants.m.
All output .mat files from DW_analysis.m should be collected into a single folder. fit_model_constants.m extracts the kinematic model fitting coefficients for each parameter corner and compiles comprehensive lookup tables indexed by material parameter.
Parameter, stimuli, and timing information of the Mumax3 scripts are communicated in the file and folder names. It is therefore important to follow the naming convention. Mumax3 script filenames should be similar to the following:
DWSim_V=centerWall_Geom=1_Aex=11e-12_Ku=4.05e+5_A=0.01_Msat=7.95e+5_u0Hke=NaN_DMI=NaN_J=4.0e+09_RT=100e-9_W=100e-9.mx3
which is broken into a number of tokens, separated by single underscore characters. Ordering of tokens does not matter.
The tokens "J" and "RT" correspond with "current density" (the stimulation strength) and "run time" (the duration stimulus is applied) and are mainly used by DW_analysis.m to extract the relationships between DW velocity and current density.
The other tokens represent the micromagnetic material parameters for that trial suite and are only used by fit_model_constants.m to write the model parameter lookup tables which are indexed according to the various parameter corners. Should parameters be added or removed from the filenames, the tracked parameter list in fit_model_constants.m should be changed accordingly, in the sections beginning on line 60 and line 156.