-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
7e619e4
commit 9e30ad0
Showing
8 changed files
with
789 additions
and
1,336 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,39 +4,40 @@ | |
<head> | ||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | ||
<title>mumax3</title> | ||
<link rel="icon" type="image/x-icon" href="nimble-cubes128.png"> | ||
<link rel="stylesheet" href="https://unpkg.com/[email protected]/build/pure-min.css"> | ||
<link rel="stylesheet" type="text/css" href="style.css"> | ||
|
||
<script> | ||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ | ||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), | ||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) | ||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga'); | ||
|
||
ga('create', 'UA-50169601-1', 'mumax.github.io'); | ||
ga('send', 'pageview'); | ||
|
||
</script> | ||
<script> | ||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ | ||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), | ||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) | ||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga'); | ||
ga('create', 'UA-50169601-1', 'mumax.github.io'); | ||
ga('send', 'pageview'); | ||
</script> | ||
</head> | ||
|
||
<body> | ||
|
||
<div style="float:left"> | ||
<img src="nimble-cubes128.png"/> | ||
<div style="float:left"> | ||
<a href="index.html"><img id="header_img" src="nimble-cubes128.png" href="index.html" /></a> | ||
</div> | ||
<script src="header.js"></script> | ||
|
||
<div style="float:left"> | ||
<span style="font-size:48px"><b>mumax</b><sup>3</sup><br/></span> | ||
GPU-accelerated micromagnetism <br/><br/> | ||
<a href="index.html" style="color:black"><span style="font-size:48px"><b>mumax</b><sup>3</sup><br /></span> | ||
GPU-accelerated micromagnetism <br /><br /></a> | ||
<a class="pure-button pure-button-primary" href="index.html">Home</a> | ||
<a class="pure-button pure-button-primary" href="download.html">Download</a> | ||
<a class="pure-button pure-button-primary" href="examples.html">Examples</a> | ||
<a class="pure-button pure-button-primary" href="https://mumax.ugent.be/mumax3-workshop/">Tutorial</a> | ||
<a class="pure-button pure-button-primary" href="api.html">API</a> | ||
<a class="pure-button pure-button-primary" href="https://groups.google.com/forum/#!forum/mumax2">Forum</a> | ||
</div> | ||
<br style="clear:both"/> | ||
<br style="clear:both" /> | ||
|
||
<hr/> | ||
<hr /> | ||
|
||
<h2> Prerequisites </h2> | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,42 +3,46 @@ | |
<head> | ||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | ||
<title>mumax3</title> | ||
<link rel="icon" type="image/x-icon" href="nimble-cubes128.png"> | ||
<link rel="stylesheet" href="https://unpkg.com/[email protected]/build/pure-min.css"> | ||
<link rel="stylesheet" type="text/css" href="style.css"> | ||
|
||
<script> | ||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ | ||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), | ||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) | ||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga'); | ||
|
||
ga('create', 'UA-50169601-1', 'mumax.github.io'); | ||
ga('send', 'pageview'); | ||
|
||
</script> | ||
<script> | ||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ | ||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), | ||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) | ||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga'); | ||
ga('create', 'UA-50169601-1', 'mumax.github.io'); | ||
ga('send', 'pageview'); | ||
</script> | ||
</head> | ||
|
||
<body> | ||
<div style="float:left"> | ||
<img src="nimble-cubes128.png"/> | ||
<a href="index.html"><img id="header_img" src="nimble-cubes128.png" href="index.html" /></a> | ||
</div> | ||
<script src="header.js"></script> | ||
|
||
<div style="float:left"> | ||
<span style="font-size:48px"><b>mumax</b><sup>3</sup><br/></span> | ||
GPU-accelerated micromagnetism <br/><br/> | ||
<a href="index.html" style="color:black"><span style="font-size:48px"><b>mumax</b><sup>3</sup><br /></span> | ||
GPU-accelerated micromagnetism <br /><br /></a> | ||
<a class="pure-button pure-button-primary" href="index.html">Home</a> | ||
<a class="pure-button pure-button-primary" href="download.html">Download</a> | ||
<a class="pure-button pure-button-primary" href="examples.html">Examples</a> | ||
<a class="pure-button pure-button-primary" href="https://mumax.ugent.be/mumax3-workshop/">Tutorial</a> | ||
<a class="pure-button pure-button-primary" href="api.html">API</a> | ||
<a class="pure-button pure-button-primary" href="https://groups.google.com/forum/#!forum/mumax2">Forum</a> | ||
</div> | ||
<br style="clear:both"/> | ||
<br style="clear:both" /> | ||
|
||
<hr/> | ||
<hr /> | ||
|
||
<h1>mumax 3.10 examples</h1> | ||
|
||
<p>These are example input scripts, the full API can be found <a href="http://mumax.github.io/api.html">here</a>.</p> | ||
<p> | ||
These are example input scripts, the full API can be found <a href="http://mumax.github.io/api.html">here</a>.<br> | ||
A more in-depth tutorial with video recordings can be found <a href="https://mumax.ugent.be/mumax3-workshop/">here</a>. | ||
</p> | ||
|
||
mumax<sup>3</sup> input files are run with the command | ||
|
||
|
@@ -47,7 +51,26 @@ <h1>mumax 3.10 examples</h1> | |
Output is automatically stored in the "myfile.out" directory. Additionally, a web interface provides live output. Default is <code><a href="http://127.0.0.1:35367">http://localhost:35367</a></code>.<br/> | ||
For more details, run <code>mumax3 -help</code> which will show the available command-line flags (e.g. to select a certain GPU). | ||
|
||
<hr/><h2>Getting started with Standard Problem #4</h2> | ||
<hr/> | ||
|
||
<ol id="contents"></ol> | ||
<script> | ||
window.addEventListener("load", function() { // Create contents from h2 and their ID's | ||
let ol = document.getElementById("contents"); | ||
for (const item of document.getElementsByTagName("h2")) { | ||
let li = document.createElement("li"); | ||
let a = document.createElement("a"); | ||
a.textContent=item.textContent; | ||
a.href=`#${item.id}`; | ||
li.appendChild(a); | ||
ol.appendChild(li); | ||
} | ||
}); | ||
</script> | ||
|
||
<hr/> | ||
|
||
<h2 id="ex_SP4">Getting started with Standard Problem #4</h2> | ||
|
||
Let's start with the classic mumag standard problem 4, as defined <a href="http://www.ctcms.nist.gov/~rdm/mumag.org.html">here</a>. | ||
|
||
|
@@ -107,7 +130,7 @@ <h3>output</h3> | |
</figure> | ||
|
||
|
||
<hr/><h2>Standard Problem #2</h2> | ||
<hr/><h2 id="ex_SP2">Standard Problem #2</h2> | ||
|
||
Using the scripting language explained above, relatively complex input files can be easily defined. E.g. <a href="http://www.ctcms.nist.gov/~rdm/std2/spec2.html">micromagnetic standard problem #2</a> specifies the simulation size in exchange lengths. The script below calculates the exchange length and chooses cells not larger than 0.75 exchange lengths so that the number of cells is a power of two (for best performance). | ||
|
||
|
@@ -146,7 +169,7 @@ <h3>output</h3> | |
|
||
|
||
|
||
<hr/><h2>Hysteresis</h2> | ||
<hr/><h2 id="ex_Hysteresis">Hysteresis</h2> | ||
|
||
Below is an example of a hysteresis loop where we step the applied field in small increments and find the magnetization ground state after each step. Minimize() finds the ground state using the conjugate gradient method, which is very fast. However, this method might fail on very high energy initial states like a random magnetization. In that case, Relax() is more robust (albeit much slower). | ||
|
||
|
@@ -192,7 +215,7 @@ <h3>output</h3> | |
|
||
|
||
|
||
<hr/><h2>Geometry</h2> | ||
<hr/><h2 id="ex_geom">Geometry</h2> | ||
|
||
mumax3 has powerful API to programatically define geometries. A number of primitive shapes are defined, like ellipses, rectangles, etc. They can be transformed (rotated, translated) and combined using boolean logic (add, sub, inverse). All positions are specified in meters and the origin lies in the center of the simulation box. See the full <a href="http://mumax.github.io/api.html">API</a>. | ||
|
||
|
@@ -323,7 +346,7 @@ <h3>output</h3> | |
|
||
Note: these are 3D geometries seen from above. The displayed cell filling is averaged along the thickness (notable in ellipse and layers example). Black means empty space, white is filled. | ||
|
||
<hr/><h2>Initial Magnetization</h2> | ||
<hr/><h2 id="ex_initmag">Initial Magnetization</h2> | ||
Some initial magnetization functions are provided, as well as transformations similar to those on Shapes. See the Config <a href="http://mumax.github.io/api.html">API</a>. | ||
|
||
<a id=example5></a><pre>setgridsize(256, 128, 1) | ||
|
@@ -430,7 +453,7 @@ <h3>output</h3> | |
The magnetization can also be set in separate regions, see below. | ||
|
||
|
||
<hr/><h2>Interlude: Rotating Cheese</h2> | ||
<hr/><h2 id="ex_cheese">Interlude: Rotating Cheese</h2> | ||
|
||
In this example we define a geometry that looks like a slice of cheese and have it rotate in time. | ||
|
||
|
@@ -479,7 +502,7 @@ <h3>output</h3> | |
</figure><br style="clear:both"/> | ||
|
||
|
||
<hr/><h2>Regions: Space-dependent Parameters</h2> | ||
<hr/><h2 id="ex_regions">Regions: Space-dependent Parameters</h2> | ||
|
||
<p>Space-dependent parameters are defined using material <i>regions</i>. Regions are numbered 0-255 and represent different materials. Each cell can belong to only one region. At the start of a simulation all cells have region number 0.</p> | ||
|
||
|
@@ -551,7 +574,7 @@ <h3>output</h3> | |
</figure><br style="clear:both"/> | ||
|
||
|
||
<hr/><h2>Slicing and dicing output</h2> | ||
<hr/><h2 id="ex_slicing">Slicing and dicing output</h2> | ||
|
||
The example below illustrates how to save only the part of the output you're interested in. | ||
|
||
|
@@ -597,7 +620,7 @@ <h3>output</h3> | |
|
||
|
||
|
||
<a id=MFM><hr/><h2>Magnetic Force Microscopy</h2></a> | ||
<a id=MFM><hr/><h2 id="ex_MFM">Magnetic Force Microscopy</h2></a> | ||
|
||
<p>Mumax3 has built-in generation of MFM images from the magnetization. The MFM tip lift can be freely chosen. By default the tip magnetization is modeled as a point monopole at the apex. This is sufficient for most situations. Nevertheless, it is also possible to model partially magnetized tips by setting MFMDipole to the magnetized portion of the tip, in meters. E.g., if only the first 20nm of the tip is (vertically) magnetized, set MFMDipole=20e-9.</p> | ||
|
||
|
@@ -640,7 +663,7 @@ <h3>output</h3> | |
</figure><br style="clear:both"/> | ||
|
||
|
||
<hr/><h2>PMA Racetrack</h2> | ||
<hr/><h2 id="ex_PMA">PMA Racetrack</h2> | ||
In this example we drive a domain wall in PMA material by spin-transfer torque. We set up a post-step function that makes the simulation box "follow" the domain wall. Like this, only a small number of cells is needed to simulate an infinitely long magnetic wire. | ||
|
||
<a id=example10></a><pre>setGridSize(128, 128, 1) | ||
|
@@ -696,7 +719,7 @@ <h3>output</h3> | |
Since we center on the domain wall we can not see that it is actually moving, but the domain wall breakdown is visible. | ||
|
||
|
||
<hr/><h2>Py Racetrack</h2> | ||
<hr/><h2 id="ex_Py">Py Racetrack</h2> | ||
|
||
In this example we drive a vortex wall in Permalloy by spin-transfer torque. The simulation box "follows" the domain wall. By removing surface charges at the left and right ends, we mimic an infintely long wire. | ||
|
||
|
@@ -789,7 +812,7 @@ <h3>output</h3> | |
Since we center on the domain wall we can not really see the motion, despite the vortex wall moving pretty fast. Note the absence of closure domains at the edges due to the surface charges being removed there. | ||
|
||
|
||
<hr/><h2>Voronoi tessellation</h2> | ||
<hr/><h2 id="ex_Voronoi">Voronoi tessellation</h2> | ||
|
||
In this example we use regions to specify grains in a material. The built-in extension <code>ext_makegrains</code> is used to define grain-like regions using Voronoi tessellation. We vary the material parameters in each grain. | ||
|
||
|
@@ -872,7 +895,7 @@ <h3>output</h3> | |
</figure><br style="clear:both"/> | ||
|
||
|
||
<hr/><h2>RKKY</h2> | ||
<hr/><h2 id="ex_RKKY">RKKY</h2> | ||
|
||
Scaling the exchange coupling between regions can be used to obtain antiferromagnetic coupling like the RKKY interaction. In that case we only model the magnetic layers and do not explicitly add a spacer layer (which is negligibly thin). We scale the exchange coupling to get the desired RKKY strength: <code>scale = (RKKY * cellsize_z) / (2 * Aex)</code>. | ||
|
||
|
@@ -913,7 +936,7 @@ <h3>output</h3> <br style="clear:both"/> | |
</figure> | ||
|
||
|
||
<hr/><h2>Slonczewski STT</h2> | ||
<hr/><h2 id="ex_Slonczewski">Slonczewski STT</h2> | ||
|
||
Example of a spin-torque MRAM stack consisting of a fixed layer, spacer and free layer. Only the free layer magnetization is explicitly modeled, so we use a 2D grid. The fixed layer polarization is set with <code>FixedLayer = ...</code>, which can be space-dependent. The spacer layer properties are modeled by setting the parameters <code>Lambda</code> and <code>EpsilonPrime</code>. Finally <code>Pol</code> sets the current polarization and <code>J</code> the current density, which should be along z in this case. | ||
|
||
|
@@ -1010,7 +1033,7 @@ <h3>output</h3> | |
</figure> | ||
|
||
|
||
<hr/><h2>Spinning hard disk</h2> | ||
<hr/><h2 id="ex_harddisk">Spinning hard disk</h2> | ||
|
||
Using the <code>Shift</code> function, we can shift the system (magnetization, regions and geometry) by a given number of cells. Here we use this feature to simulate a moving hard disk platter. A time-dependent gaussian field profile mimics the write field. | ||
|
||
|
Oops, something went wrong.