{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Getting started 01: Geometry and magnetisation\n", "\n", "> Interactive online tutorial:\n", "> [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/ubermag/oommfc/master?filepath=docs%2Fipynb%2Findex.ipynb)\n", "\n", "In this tutorial we explore how geometries and magnetisation states can be specified. The package we use to define finite difference meshes and fields is called `discretisedfield` and we have to import it before we start." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import discretisedfield as df\n", "\n", "# The following line enables plotting inside the notebook.\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Mesh\n", "\n", "Let us say that we need to define a nanocube mesh with edge length $L=100\\,\\text{nm}$ and discretisation cell $(d, d, d)$, with $d=10 \\,\\text{nm}$. For that we need to define two points $p_{1}$ and $p_{2}$ between which the mesh spans and pass them (together with the discretisation cell) to the `Mesh` class:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "L = 100e-9 # edge length (m)\n", "d = 10e-9 # cell size (m)\n", "\n", "p1 = (0, 0, 0) # first point of the cuboid containing simulation geometry\n", "p2 = (L, L, L) # second point\n", "cell = (d, d, d) # discretisation cell\n", "\n", "mesh = df.Mesh(p1=p1, p2=p2, cell=cell) # mesh definition" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can then inspect some basic parameters of the mesh:\n", "\n", "### Edge length:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1e-07, 1e-07, 1e-07)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mesh.l # edge length" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Number of discretisation cells in all three directions:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(10, 10, 10)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mesh.n # number of cells " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Minimum mesh domain coordinate:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0.0, 0.0, 0.0)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mesh.pmin # minimum mesh domain coordinate" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Maximum mesh domain coordinate:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1e-07, 1e-07, 1e-07)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mesh.pmax # maximum mesh domain coordinate" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Visualise the mesh domain and a discretisation cell:\n", "\n", "Using k3d interactive plots:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "7f7102129b6c4d3d8a63501fb9a16a7a", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Output()" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mesh.k3d()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using matplotlib" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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PP/889x66618/PHHzJ07F41GA9iEmp544gnuv/9+brjhhnYftwX0BN3LHYIgUFNTw8GDB6VGXV5eHv379ycpKUli1AUHB0vjVmJ91FWxFbFDLgbiuro6lEqlQ304M9Nbqg+np8vJzXV9flgQBGnmdtCgQS2O2HUmtFotGRkZBAUFERERgV6vd2CTAZLgUWNroPXrlTz+uAd5efW0t0RqscDbbyslcfGXXtKTknICq9VCfHy8y7udsrIynnjiCVQqFW+//XaHuwq7wizLzs5m2rRp/Oc//yEwMNChtuoufPzxx6xdu5ZffvkFLy8vpkyZgqenJ4MGDWLXrl1MnTqVZ555xq3HbAI9QfdKhFgP3b9/PwcOHODAgQPk5+cjCALTpk1j8uTJjBw5sl0GhqLUnxiIDQaDRGAQ9SWOHfNosT48dKgetTqT+HgFMTFRnaZD0BIsFgu5ublotVri4+OblM901rAULYS+/HIAy5eHUFBQR3Bw2x8iJ0/KmD3bg/R0BbfeauaZZ86j02W1WFO2hyAIfPHFF7z66qssW7aMO+64o1MebPv27WPZsmX8+9//BmDFihUADjXjp556itjYWB566KEOW4fVauW+++5DrVazdu1aysvLSUtL4/Tp09x8880OD4EORk/Q/T3grrvuIiQkhLvuuotTp05x8OBBjhw5gkwmY+TIkRKRIy4urs31U3sCgxiMRdlL+/rwoUPKC9MSMg4dkte76q0AABTISURBVFFfbzteR9WH2wJRzKd///5tGpsTBY/eflvJq6/248sv9xAYKL+E2txyowtWrVJK4uKvvFJPQsJx5HLbTsXV+mNpaSlPPPEE3t7evPnmm50qu+gKs+z2228nNjaWvXv3YrFYWLZsGTfffLPb11JZWcktt9wiORG/8cYbbs+oXUAPI+33gA0bNkiZ2nXXXcesWbMQBAGdTkd6ejqpqamsXLmSrKwsgoKCSE5OJjk5mauuuspleq1IYPD29paEXeyprOfOFVNbm0H//jIiI1XcfLOOPn1CMZujHerDzvQl2lIfbgtMJhOZmZlYrdZ22bArlUp69+5NQIDtNrrmmqtQqS7uDM6dO9esGDw4iovfeaeZJ58spLY2j7CwaJdLAlarlc8//5zXX3+dF154gdtvv73blG3sYTabyc7OZs+ePRQVFXH99ddz/Phxt5NyzGYzpaWlCILA+vXruyLgNovLPui2VLw3Go3MmDGD9PR0goKC2L59e7dxK3U3nG2NRXfccePGMW7cOODiRMOBAwfYv38/GzZskGx3xPnhUaNG4efn59LN25jKKiqUWSwWwsLCqKuro65uH0OGeDB27EX94awsnwvZsK0+vGNHx84P29eUo6Ki3HYz2tv1NPYnsxeDr6mp4ezZs5hMJhQKPzZvHsxHHwUTEiKweXMtgwYdRyZTtcqSqaSkhPnz5+Pv78+ePXu6TObSFWZZeHg4V199NSqVikGDBhEbG0t2djajR49261pee+01HnroIZYsWeLW93UXLuvygivF+7///e8cO3aMd999l23btvGvf/2L7du3d+GquycsFgtZWVlSffjw4cOYTCaGDRsmBeLExMRmg4G944WzmVt7SyCNRoPRaJTGtdRqNWZzgEv14bbMD9fX13P69Gl8fX2Jjo52q37DypVKli/3QKutd8mG/bffZPz1rypyc5X86U8VzJhxDJWqjl69ehESEuKS2pjVauXTTz/ljTfe4MUXX2TKlCldmt26wizbuXMnW7duZdOmTVRUVDBq1CiOHDni9gdFBxIeWoMrs6brSvH+pptuYtmyZYwdOxaz2Uy/fv0oLy/vltuv7gaDwcDhw4cdROD9/PwcRH5EYfPs7GyqqqoICQkhMjLSZTGS5myR/P0DHOrDbZkfFl0vysrKiIuL6xB9iRdfVLFihQqdrr5Z4+fG4uKrV+vo2/cYPj4+DB482EGLufEInyhyI5fLKSkp4bHHHqN379688cYbbZLf7Ai0xCwTBIEnnniCnTt3olAoWLJkCXfffXdXL7ujcGUGXVeK90OHDmXnzp2Eh4cDEBUVRWpq6hXh7dTZEASByspKDh48KAXivLw8qYSxePHidovAN7ZFEnUVLgaeAAoLfV2aH05IqMXL6ySDBvV2+UHQFjz3nIo1a5RoNPomX+MoLt7AI4+coaamiLi4OAIDA53+P43F4F999VVOnTpFVVUV06dP5+GHHyYmJqbbqYL1AOhppPXAHZDJZAQHBzNp0iQmTZpEeno6Dz74IA8++CC9e/fmp59+4rXXXkOn05GYmChlxMOHD3e5WSUG2ICAAOlBaW+LVFaWc4Gt58E116il+nBmprdUH05Lk7FjhwcQBFzf4foSZnPTso724uIxMVZ27KhGrT6OXB7A6NGj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mkRVf+qppzqVqh4VFUVGRkanHa9bormI3NmPBnfj1KlTQkBAgJCdnd3VS2k1GhoahEGDBgl5eXmC0WgUhg8fLpw4caLJ17sr020pUxIEQdi+fbuQkJAgJCYmCvfcc0+7j3klwGw2CydPnhQ+/PBDYdasWUJERIRw5513CnV1dZ22ht9++0248cYbpZ9ffvll4eWXX27y9YcOHRKuueaazlja7xGXd6bbVvj4+LBy5Uqio6OdUoi7M1zRlXA3XMmUsrOzWbFiBXv37pVstHtg23UlJiaSmJjI/fff3yXN2h6q+uWBKzroRkREMHv27Msu4IpoSVfCHnv27Gn38VyZmFi/fj2PPvqoJLzd3Uz/ugu6+3RMD1W963D5RaI24HIMuF0BZ5lScXGxw2uysrLIysri2muvZcyYMezcubOzl9mDJtBaqvqOHTt6qOpdgCs60+2B+9FZNto9aD1Gjx5Ndna2RPrYtm0bW7ZscXjN4cOHmTVrFjt37uzZpXQRelLAHkhw1UZ7ypQpl9ho96Dr0RVU9R60Ac112bqi5deDroMrExPff/+9MGPGDEEQBKG8vFwIDw8XKioq2nXcliYmCgoKhHHjxgkjR44Uhg0bJnz77bftOl4PetAJaDKu9gTdHjjg22+/FWJiYoTBgwcLL774oiAIgvDss88KX331lSAINrLA3/72NyEhIUEYOnSosHXr1nYdz2w2C4MHDxZyc3OlQH/y5EmH1zz88MPC3//+d0EQBOHkyZNCREREu47Zgx50An6fI2M9aD1ampiQyWSsXr3abfqnrkxMyGQytFotABqNhrCwMLccuwc96Ar01HQvc4wfP57du3cD8MwzzzB37twuXlHr4MrExLJly9i8eTPh4eFMnjyZt99+u7OX2WloSc7TaDRy1113ER0dzdVXX01+fn7nL7IH7UJP0L3M8fzzz/PSSy/xySefcPjwYdasWdPVS3I7tm7dysyZMykqKuK7775j+vTprdLCvVwgklO+//57Tp06xdatWzl16pTDazZs2EBgYCA5OTn87W9/+12qdF3u6Am6lzmuv/56BEFg9erVbNu2zUGP4nKAKxMTGzZsYNq0aQCMHTsWg8FARUVFp66zM2BfavHw8JBKLfb46quvuO+++wCYOnUqP/74o60504PLBj1B9zLH8ePHOX/+PB4eHi5bfHcn2M+Wmkwmtm3bdskY08CBAyXTwtOnT2MwGBys1luLBx54gD59+jRp3yQIAvPmzSM6Oprhw4dz6NChNh+rNXCl1GL/GqVSiVqtprKyslPW1wP3oCfoXsY4f/489957L1999RV+fn6XJTvMldnSVatWsX79ekaMGME999zDRx991C6a7cyZM5v9rL7//nuys7PJzs7m/fffZ/bs2W0+Vg960Bgt2fX0oJtCJpP5AD8CSwVB2C2Tya4HXhEEYWwXL+2ygEwmiwS+EQThknRXJpO9B+wRBGHrhZ8zgXGCIJzv4DWNBZYJgnDThZ8XAQiCsMLuNf++8Jp9MplMCZQAIULPjXzZoCfTvUwhCEK9IAhjBUHYfeHnX3oCrtvQHyi0+7nowr91NA4CMTKZbJBMJvMA7gYaO0LuAO678PepwH96Au7lhZ453R70oJtAEASzTCabA/wbUAAfCoJwUiaTvQCkCYKwA9gA/EMmk+UAVdgCcw8uI/QE3R704FIUAwPsfg6/8G8dDkEQvgO+a/RvS+3+bgDu7Iy19KBj0FNe6EEPLsUOYIbMhjGApqPruT34/aAn0+3B7w4ymWwrMA4IlslkRcBzgApAEIR3sWWak4EcoB64v2tW2oMrET3TCz3oQQ960In4/8Q/mmsJcGbAAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "mesh.mpl()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Field\n", "\n", "After we defined a mesh, we can define different finite difference fields. For that, we use `Field` class. We need to provide:\n", "\n", "1. Mesh,\n", "2. Dimension of the data values,\n", "3. Value of the field.\n", "\n", "Let us define a 3D-vector field (`dim=3`) that is uniform in the $(1, 0, 0)$ direction." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "m = df.Field(mesh, dim=3, value=(1, 0, 0))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A simple slice visualisation of the mesh in the $z$ direction at $L/2$ is:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "m.plane('z').mpl()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Similarly, a three-dimensional interactive visualisation is:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "c7eb37329757436ca8ce46ecd47ea6dc", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Output()" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "m.plane('z').k3d_vectors(head_size=30)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Spatially varying field\n", "\n", "When we defined a uniform vector field, we used a tuple `(1, 0, 0)` to define its value. However, we can also provide a Python function if we want to define a non-uniform field. This function takes the position in the mesh as input, and returns a value that the field should have at that point:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def m_value(pos):\n", " x, y, z = pos # unpack position into individual components\n", " if x > L/5:\n", " return (1, 0, 0)\n", " else:\n", " return (-1, 1, 0)\n", " \n", "m = df.Field(mesh, dim=3, value=m_value)\n", "\n", "m.plane('z').mpl()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The field object can be treated as a function - if we pass a position tuple to the function, it will return the vector value of the field at that location:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(-1.0, 1.0, 0.0)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "point = (0, 0, 0)\n", "m(point)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In micromagnetics, the saturation magnetisation $M_\\mathrm{s}$ is typically constant (at least for each position). The `Field` constructor accepts an additional parameter `norm` which we can use for that:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(8000000.0, 0.0, 0.0)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ms = 8e6 # saturation magnetisation (A/m)\n", "m = df.Field(mesh, dim=3, value=m_value, norm=Ms)\n", "\n", "m((50e-9, 0, 0))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Spatially varying $M_\\mathrm{s}$\n", "\n", "By defining different norms, we can specify different geometries, so that $M_\\text{s}=0$ outside the mesh. For instance, let us assume we want to define a sphere of radius $L/2$ and magnetise it in the negative $y$ direction." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "mesh = df.Mesh(p1=(-L/2, -L/2, -L/2), p2=(L/2, L/2, L/2), cell=(d, d, d))\n", "\n", "def Ms_value(pos):\n", " x, y, z = pos\n", " if (x**2 + y**2 + z**2)**0.5 < L/2:\n", " return Ms\n", " else:\n", " return 0\n", "\n", "m = df.Field(mesh, dim=3, value=(0, -1, 0), norm=Ms_value)\n", "\n", "m.plane('z').mpl()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Similarly, we can inspect the defined domain using k3d and inspecting the field's norm." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "b22681dc54744330b3ae7c8b4d01cff6", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Output()" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "m.norm.k3d_nonzero()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise 1\n", "\n", "**a)** The code in the next cell defines a thin film of thickness $t$ in the $xy$ plane. Extend it to define the disk geometry of thickness $t = 10 \\,\\text{nm}$ and diameter $d = 120 \\,\\text{nm}$. The saturation magnetisation $M_\\mathrm{s} = 10^7\\mathrm{A/m}$. The disk is centred around the origin (0, 0, 0). The magnetisation is $\\mathbf{m} = (1, 0, 0)$ at all points." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "4c4d444968f243228bfa26b3a6a616d9", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Output()" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "t = 10e-9 # thickness (m)\n", "d = 120e-9 # diameter (m)\n", "cell = (5e-9, 5e-9, 5e-9) # discretisation cell size (m)\n", "Ms = 1e7 # saturation magnetisation (A/m)\n", "\n", "mesh = df.Mesh(p1=(-d/2, -d/2, -t/2), p2=(d/2, d/2, t/2), cell=cell)\n", "\n", "def Ms_value(pos):\n", " x, y, z = pos\n", " # insert missing code here\n", " if (x**2 + y**2)**0.5 < d/2:\n", " return Ms\n", " else:\n", " return 0\n", " # return Ms\n", " \n", "m = df.Field(mesh, value=(1, 0, 0), norm=Ms_value)\n", "\n", "m.plane('z', n=(20, 20)).k3d_vectors(head_size=20)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**b)** Extend the previous example in the next cell so that the magnetisation is:\n", "\n", "$$\\mathbf{m} = \\begin{cases} (-1, 0, 0) & \\text{for } y \\le 0 \\\\ (1, 0, 0) & \\text{for } y > 0 \\end{cases}$$\n", "\n", "with saturation magnetisation $10^{7} \\,\\text{A}\\,\\text{m}^{-1}$." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "4bec8ff755af4485b714bfee7c490e86", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Output()" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "t = 10e-9 # thickness (m)\n", "d = 120e-9 # diameter (m)\n", "cell = (5e-9, 5e-9, 5e-9) # discretisation cell size (m)\n", "Ms = 1e7 # saturation magnetisation (A/m)\n", "\n", "mesh = df.Mesh(p1=(-d/2, -d/2, -t/2), p2=(d/2, d/2, t/2), cell=cell)\n", "\n", "def Ms_value(pos):\n", " x, y, z = pos\n", " # Copy code from exercise 1a.\n", " if (x**2 + y**2)**0.5 < d/2:\n", " return Ms\n", " else:\n", " return 0\n", " # return Ms\n", " \n", "def m_value(pos):\n", " x, y, z = pos\n", " # Insert missing code here to get the right magnetisation.\n", " if y <= 0:\n", " return (-1, 0, 0)\n", " else:\n", " return (1, 0, 0)\n", " # return (1, 0, 0)\n", " \n", "m = df.Field(mesh, value=m_value, norm=Ms_value)\n", "\n", "m.plane('z', n=(20, 20)).k3d_vectors(head_size=20)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise 2\n", "\n", "Extend the code in the following cell to define the following geometry with $10\\,\\text{nm}$ thickness:\n", "\n", " \n", "\n", "The magnetisation saturation is $8 \\times 10^{6} \\,\\text{A}\\,\\text{m}^{-1}$ and the magnetisation direction is as shown in the figure." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "cell = (5e-9, 5e-9, 5e-9) # discretisation cell size (m)\n", "Ms = 8e6 # saturation magnetisation (A/m)\n", "\n", "mesh = df.Mesh(p1=(0, 0, 0), p2=(100e-9, 50e-9, 10e-9), cell=cell)\n", "\n", "def Ms_value(pos):\n", " x, y, z = pos\n", " # Insert missing code here to get the right shape of geometry.\n", " if x < 50e-9 and y > 35e-9:\n", " return 0\n", " else:\n", " return Ms\n", " # return Ms\n", " \n", "def m_value(pos):\n", " x, y, z = pos\n", " if 20e-9 < x <= 30e-9:\n", " return (1, 1, -1)\n", " else:\n", " return (1, 1, 1)\n", " \n", "m = df.Field(mesh, value=m_value, norm=Ms_value)\n", "\n", "m.plane('z').mpl()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Other\n", "\n", "More details on various functionality can be found in the [API Reference](https://oommfc.readthedocs.io/en/latest/)." ] } ], "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.7.4" } }, "nbformat": 4, "nbformat_minor": 2 }