{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Micromagnetic standard problem 4\n", "\n", "## Problem specification\n", "\n", "The sample is a thin film cuboid with dimensions:\n", "\n", "- length $l_{x} = 500 \\,\\text{nm}$,\n", "- width $l_{y} = 125 \\,\\text{nm}$, and\n", "- thickness $l_{z} = 3 \\,\\text{nm}$.\n", "\n", "The material parameters (similar to permalloy) are:\n", "\n", "- exchange energy constant $A = 1.3 \\times 10^{-11} \\,\\text{J/m}$,\n", "- magnetisation saturation $M_\\text{s} = 8 \\times 10^{5} \\,\\text{A/m}$.\n", "\n", "Magnetisation dynamics are governed by the Landau-Lifshitz-Gilbert equation\n", "\n", "$$\\frac{d\\mathbf{m}}{dt} = \\underbrace{-\\gamma_{0}(\\mathbf{m} \\times \\mathbf{H}_\\text{eff})}_\\text{precession} + \\underbrace{\\alpha\\left(\\mathbf{m} \\times \\frac{d\\mathbf{m}}{dt}\\right)}_\\text{damping}$$\n", "\n", "where $\\gamma_{0} = 2.211 \\times 10^{5} \\,\\text{m}\\,\\text{A}^{-1}\\,\\text{s}^{-1}$ and Gilbert damping $\\alpha=0.02$.\n", "\n", "In the standard problem 4, the system is first relaxed at zero external magnetic field and then, starting from the obtained equlibrium configuration, the magnetisation dynamics are simulated for two external magnetic fields $\\mathbf{B}_{1} = (-24.6, 4.3, 0.0) \\,\\text{mT}$ and $\\mathbf{B}_{2} = (-35.5, -6.3, 0.0) \\,\\text{mT}$.\n", "\n", "More detailed specification of Standard problem 4 can be found in Ref. 1.\n", "\n", "## Simulation\n", "\n", "\n", "In the first step, we import the required `discretisedfield` and `oommfc` modules." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import discretisedfield as df\n", "import oommfc as oc" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we can set all required geometry and material parameters." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Geometry\n", "lx = 500e-9 # x dimension of the sample(m)\n", "ly = 125e-9 # y dimension of the sample (m)\n", "lz = 3e-9 # sample thickness (m)\n", "\n", "# Material (permalloy) parameters\n", "Ms = 8e5 # saturation magnetisation (A/m)\n", "A = 1.3e-11 # exchange energy constant (J/m)\n", "\n", "# Dynamics (LLG equation) parameters\n", "gamma = 2.211e5 # gyromagnetic ratio (m/As)\n", "alpha = 0.02 # Gilbert damping" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## First stage\n", "\n", "In the first stage, we need to relax the system at zero external magnetic field.\n", "\n", "We choose `stdprob4` to be the name of the system. This name will be used to name all output files created by OOMMF." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "system = oc.System(name='stdprob4')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to completely define the micromagnetic system, we need to provide:\n", "\n", "1. hamiltonian $\\mathcal{H}$\n", "2. dynamics $\\text{d}\\mathbf{m}/\\text{d}t$\n", "3. magnetisation $\\mathbf{m}$\n", "\n", "The mesh is created by providing two points `p1` and `p2` between which the mesh domain spans and the size of a discretisation cell. We choose the discretisation to be $(5, 5, 3) \\,\\text{nm}$." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "cell = (5e-9, 5e-9, 3e-9) # mesh discretisation (m)\n", "\n", "mesh = oc.Mesh(p1=(0, 0, 0), p2=(lx, ly, lz), cell=cell) # Create a mesh object." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can visualise the mesh domain and a discretisation cell:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n4y2KmysAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "mesh" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Hamiltonian:** In the second step, we define the system's Hamiltonian. In this standard problem, the Hamiltonian contains only exchange and demagnetisation energy terms. Please note that in the first simulation stage, there is no applied external magnetic field. Therefore, we do not add Zeeman energy term to the Hamiltonian." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "system.hamiltonian = oc.Exchange(A) + oc.Demag()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can check what is the continuous model of system's Hamiltonian." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\mathcal{H}=A (\\nabla \\mathbf{m})^{2}-\\frac{1}{2}\\mu_{0}M_\\text{s}\\mathbf{m} \\cdot \\mathbf{H}_\\text{d}$" ], "text/plain": [ "Exchange(A=1.3e-11, name=\"exchange\") + Demag(name=\"demag\")" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "system.hamiltonian" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Dynamics:** Similarly, the system's dynamics is defined by providing precession and damping terms (LLG equation)." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\frac{\\partial \\mathbf{m}}{\\partial t}=-\\gamma_{0}^{*} \\mathbf{m} \\times \\mathbf{H}_\\text{eff}+\\alpha \\mathbf{m} \\times\\frac{\\partial \\mathbf{m}}{\\partial t}$" ], "text/plain": [ "Precession(gamma=221100.0, name=\"precession\") + Damping(alpha=0.02, name=\"damping\")" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "system.dynamics = oc.Precession(gamma) + oc.Damping(alpha)\n", "\n", "system.dynamics # check the dynamics equation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Magnetisation:** Finally, we have to provide the magnetisation configuration that is going to be relaxed subsequently. We choose the uniform configuration in $(1, 0.25, 0.1)$ direction, and as norm (magnitude) we set the magnetisation saturation $M_\\text{s}$. In order to create the magnetisation configuration, we create a `Field` object from the `discretisedfield` module." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "system.m = df.Field(mesh, value=(1, 0.25, 0.1), norm=Ms)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, the system is fully defined.\n", "\n", "**Energy minimisation:** The system (its magnetisation) is evolved using a particular driver. In the first stage, we need to relax the system - minimise its energy. Therefore, we create `MinDriver` object and drive the system using its `drive` method." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2017/9/25 14:45: Calling OOMMF (stdprob4/stdprob4.mif) ... [1.0s]\n" ] } ], "source": [ "md = oc.MinDriver() # create energy minimisation driver\n", "md.drive(system) # minimise the system's energy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The system is now relaxed. We can now obtain some data characteristic to the magnetisation field." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The average magnetisation is (773766.18071901985, 99856.830052885518, -0.00013772185816580555).\n", "The magnetisation at the mesh centre (2.5e-07, 6.25e-08, 1.5e-09) is (799979.27390606399, -5758.5866337096604, 0.00083329097883469297).\n" ] } ], "source": [ "print('The average magnetisation is {}.'.format(system.m.average))\n", "\n", "print('The magnetisation at the mesh centre {} is {}.'.format(\n", " system.m.mesh.centre, system.m(system.m.mesh.centre)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Second stage: field $\\mathbf{B}_{1}$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the second stage, we need to apply an external magnetic field $\\mathbf{B}_{1} = (-24.6, 4.3, 0.0) \\,\\text{mT}$ to the system. In other words, we have to add Zeeman energy term to the Hamiltonian." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Add Zeeman energy term to the Hamiltonian\n", "H1 = (-24.6e-3/oc.mu0, 4.3e-3/oc.mu0, 0.0)\n", "system.hamiltonian += oc.Zeeman(H1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we now inspect the Hamiltonian, we see that an additional Zeeman term is added." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\mathcal{H}=A (\\nabla \\mathbf{m})^{2}-\\frac{1}{2}\\mu_{0}M_\\text{s}\\mathbf{m} \\cdot \\mathbf{H}_\\text{d}-\\mu_{0}M_\\text{s} \\mathbf{m} \\cdot \\mathbf{H}$" ], "text/plain": [ "Exchange(A=1.3e-11, name=\"exchange\") + Demag(name=\"demag\") + Zeeman(H=(-19576.05800030313, 3421.8312764757497, 0.0), name=\"zeeman\")" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "system.hamiltonian" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we can run the simulation using `TimeDriver` this time. We run the magnetisation evolution for $t=1 \\,\\text{ns}$, during which we save the system's state $n=200$ times." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2017/9/25 14:45: Calling OOMMF (stdprob4/stdprob4.mif) ... [5.0s]\n" ] } ], "source": [ "t = 1e-9 # simulation time (s)\n", "n = 200 # number of data saving steps\n", "\n", "td = oc.TimeDriver() # create time driver\n", "td.drive(system, t=t, n=n) # drive the system" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Postprocessing" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When we drove the system using the `TimeDriver`, we specified that we want to save the magnetisation configuration $n=200$ times. A detailed table of all computed parameters from the last simulation can be shown from the datatable (`system.dt`), which is a `pandas` dataframe [2].\n", "\n", "For instance, if we want to show the last 10 rows in the table, we run:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
EEcountmax_dm/dtdE/dtdeltaEE_Exchangemax_spin_anglestage_max_spin_anglerun_max_spin_angleE_DemagE_Zeemaniterationstage_iterationstagemxmymzlast_time_stept
195-2.676341e-183736.01161.950424-1.697395e-09-2.287890e-219.548590e-203.9123364.28275829.6158018.530166e-19-3.624844e-18784.03.0195.0-0.984260-0.0109710.0339871.380205e-129.800000e-10
196-2.685463e-183755.01258.391022-1.935260e-09-2.633291e-218.637492e-204.1549204.15492029.6158018.844370e-19-3.656275e-18788.03.0196.0-0.9870860.0215920.0392861.380052e-129.850000e-10
197-2.695498e-183774.01383.452356-2.057823e-09-2.825555e-218.039798e-204.7259674.72596729.6158019.074607e-19-3.683357e-18792.03.0197.0-0.9880920.0578240.0426041.379647e-129.900000e-10
198-2.705827e-183793.01352.420665-2.053205e-09-2.841747e-217.586055e-204.6686294.77506229.6158019.220444e-19-3.703732e-18796.03.0198.0-0.9869640.0958700.0437941.379029e-129.950000e-10
199-2.715833e-183812.01192.821302-1.931678e-09-2.693251e-217.141344e-204.3520374.66862929.6158019.291427e-19-3.716389e-18800.03.0199.0-0.9837650.1337930.0428321.378198e-121.000000e-09
\n", "
" ], "text/plain": [ " E Ecount max_dm/dt dE/dt deltaE \\\n", "195 -2.676341e-18 3736.0 1161.950424 -1.697395e-09 -2.287890e-21 \n", "196 -2.685463e-18 3755.0 1258.391022 -1.935260e-09 -2.633291e-21 \n", "197 -2.695498e-18 3774.0 1383.452356 -2.057823e-09 -2.825555e-21 \n", "198 -2.705827e-18 3793.0 1352.420665 -2.053205e-09 -2.841747e-21 \n", "199 -2.715833e-18 3812.0 1192.821302 -1.931678e-09 -2.693251e-21 \n", "\n", " E_Exchange max_spin_angle stage_max_spin_angle run_max_spin_angle \\\n", "195 9.548590e-20 3.912336 4.282758 29.615801 \n", "196 8.637492e-20 4.154920 4.154920 29.615801 \n", "197 8.039798e-20 4.725967 4.725967 29.615801 \n", "198 7.586055e-20 4.668629 4.775062 29.615801 \n", "199 7.141344e-20 4.352037 4.668629 29.615801 \n", "\n", " E_Demag E_Zeeman iteration stage_iteration stage mx \\\n", "195 8.530166e-19 -3.624844e-18 784.0 3.0 195.0 -0.984260 \n", "196 8.844370e-19 -3.656275e-18 788.0 3.0 196.0 -0.987086 \n", "197 9.074607e-19 -3.683357e-18 792.0 3.0 197.0 -0.988092 \n", "198 9.220444e-19 -3.703732e-18 796.0 3.0 198.0 -0.986964 \n", "199 9.291427e-19 -3.716389e-18 800.0 3.0 199.0 -0.983765 \n", "\n", " my mz last_time_step t \n", "195 -0.010971 0.033987 1.380205e-12 9.800000e-10 \n", "196 0.021592 0.039286 1.380052e-12 9.850000e-10 \n", "197 0.057824 0.042604 1.379647e-12 9.900000e-10 \n", "198 0.095870 0.043794 1.379029e-12 9.950000e-10 \n", "199 0.133793 0.042832 1.378198e-12 1.000000e-09 " ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "system.dt.tail()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we want to plot the average magnetisation configuration `my` as a function of time `t`:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nXjblkXC2xUEAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "myplot = system.dt.plot(\"t\", \"my\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## References\n", "\n", "[1] µMAG Site Directory: http://www.ctcms.nist.gov/~rdm/mumag.org.html\n", " \n", "[2] Pandas: http://pandas.pydata.org/" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.2" } }, "nbformat": 4, "nbformat_minor": 1 }