{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Fidimag: A Basic Simulation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook is a guide to the essential commands required to write and run basic Fidimag simulations. It can be downloaded from the github repository, found [here](https://github.com/computationalmodelling/fidimag/blob/master/doc/ipynb/tutorial-basics.ipynb).\n", "\n", "The first step is to import Fidimag. Numpy and Matplotlib are also imported for later use, to demonstrate visualising simulations results." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import fidimag\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Meshes\n", "\n", " Mesh Cell\n", " +------------+\n", " +-----+-----+-----+-----+-----+-----+ / /|\n", " / / / / / / /| / / |\n", " +-----+-----+-----+-----+-----+-----+ | / / | dz\n", " / / / / / / /| + +------------+ |\n", " +-----+-----+-----+-----+-----+-----+ |/ -----> | | |\n", " / / / / / / /| + | | + \n", " +-----+-----+-----+-----+-----+-----+ |/ | | /\n", " | | | | | | | + | | / dy\n", " | | | | | | |/ | |/\n", " +-----+-----+-----+-----+-----+-----+ +------------+\n", " dx\n", "\n", "We need to create a mesh. Meshes are created by specifying the dimensions of the finite difference cells, (dx, dy, dz) and the number of cells in each direction, (nx, ny, nz).\n", "\n", "The cell dimensions are defined by dimensionless units. The dimensions of the mesh/cells are integrated by the parameter, unit_length.\n", "\n", "In the the following example, the (cuboid) mesh consists of 50x20x1 cells (nx=50, ny=20 and nz=1), with each cell comprising of the dimensions, dx=3, dy=3 and dz=4. The unit_length = 1e-9 (nm).\n", "\n", "Thus, the total size of the mesh is 150nm x 60nm x 4nm.\n", "\n", "***Required Fidimag Function***\n", "\n", "`fidimag.common.CuboidMesh(nx, ny, nz, dx, dy, dz, unit_length)`\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "nx, ny, nz = 50, 20, 1\n", "dx, dy, dz = 3, 3, 4 #nm\n", "unit_length = 1e-9 # define the unit length of the dx units to nm.\n", "\n", "mesh = fidimag.common.CuboidMesh(nx=nx, ny=ny, nz=nz, dx=dx, dy=dy, dz=dz, unit_length=unit_length)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## Creating the Simulation Object\n", "\n", "Now we can create the simulation object.\n", "\n", "A mesh is required to create a simulation object. We also give the simulation object a name. Is this case, we call the simulation object, 'sim_tutorial_basics'\n", "\n", "***Required Fidimag Function***\n", "\n", "`fidimag.micro.Sim(mesh, name)`" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "sim_name = 'sim_tutorial_basics'\n", "\n", "sim = fidimag.micro.Sim(mesh, name=sim_name)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Adding Interactions (and specifying material parameters)\n", "\n", "The material specific interactions (and parameters) can now be added to the simulation object. Let's first specify the material specific parameters:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "Ms = 1e6 # magnetisation saturation (A/m)\n", "A = 1e-12 # exchange energy constant (J/m)\n", "D = 1e-3 # DMI constant (J/m**2)\n", "Ku = 1e5 # uniaxial anisotropy constant (J/m**3)\n", "Kaxis = (0, 0, 1) # uniaxial anisotropy axis\n", "H = (0, 0, 1e3) # external magnetic field (A/m)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The simulation object, sim created earlier has a property for the saturation magnetisation, Ms which is set in the following way:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "sim.Ms = 8.0e5" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's add the following interactions:\n", "\n", "- Exchange\n", "- Uniaxial Anisotropy\n", "- Dyzaloshinskii-Moriya (bulk)\n", "- Zeeman Field\n", "- Demagnetisation\n", "\n", "***Required Fidimag Functions***\n", "\n", "to a simulation object named, sim:\n", "\n", "- sim.add(interaction)\n", "\n", "where the interactions are:\n", "\n", "| interaction | function |\n", "|---------------------|------------------------------------------------------|\n", "| exchange | `fidimag.micro.UniformExchange(A)` |\n", "| uniaxial anisotropy | `fidimag.micro.UniaxialAnisotropy(Ku, axis)` |\n", "| DMI | `fidimag.micro.DMI(D)` |\n", "| Zeeman | `fidimag.micro.Zeeman(H0)` |\n", "| Demag | `fidimag.micro.Demag()` |" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [], "source": [ "exchange = fidimag.micro.UniformExchange(A=A)\n", "sim.add(exchange)\n", "\n", "anis = fidimag.micro.UniaxialAnisotropy(Ku=Ku, axis=Kaxis)\n", "sim.add(anis)\n", "\n", "dmi = fidimag.micro.DMI(D=D)\n", "sim.add(dmi)\n", "\n", "zeeman = fidimag.micro.Zeeman(H0=H)\n", "sim.add(zeeman)\n", "\n", "demag = fidimag.micro.Demag()\n", "sim.add(demag)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So, at this point the Hamiltonian is created. Now, we can set parameters in the LLG equation. The sim object has properties for the values of alpha and gamma which are set in the following way:\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "sim.driver.alpha = 0.5\n", "sim.driver.gamma = 2.211e5\n", "# sim.do_precession = True" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can also specfiy whether the magnetisation spins precess or not. The sim object has a property, do_precession, which can be set to either True of False. In this example, let's have precession:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "sim.driver.do_precession = True" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When both Hamiltonian and LLG equations are set, we need to set the intial magnetisation before we relax the system. Let's set it to all point in the x-direction:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [], "source": [ "m_init = (1,0,0)\n", "sim.set_m(m_init)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Relaxing the Simulation\n", "\n", "The simulation object is now set up: we're now ready to relax the magnetisation.\n", "\n", "### Time Integrator Parameters\n", "\n", "In order to do so, we need to specify the value of dt for the time integration. By default this is set to dt=1e-11.\n", "\n", "We also need to tell the simulation when to stop, through the desired stoppping precision, stopping\\_dmdt. By default this is set to stopping\\_dmdt=0.01.\n", "\n", "The maximum number of steps, max_steps the time integrator take also needs to be specified. By default this is set to 1000.\n", "\n", "### Data Saving Parameters\n", "\n", "Within the relax function, when to save the magnetisation, *save\\_m\\_steps*, and vtk files of the magnetisation, *save\\_vtk\\_steps*, are also specified. By default they are set to save every 100 steps that the integrator takes. The final magnetisation is also saved. In this example we save the spatial magnetisation every 10 time steps.\n", "\n", "When the relax function is called, a text file containing simulation data (including time, energies and average magnetisation) is created with the name sim_name.txt.\n", "\n", "Sub-directories for the (spatial) magnetisation and vtk files are also created with the names, *sim\\_name\\_npys* and *sim\\_name\\_vtks* respectively, where the relevant data is subsequently saved. The names of these files are m\\_\\*.npy and m\\_\\*\\*\\*\\*\\*\\*\\*.vts respectively, where \\* is replaced with the time integrator step (with leading zeros for the vts (vtk) file).\n", "\n", "***Required Fidimag Function***\n", "\n", "`sim.relax(dt, stopping_dmdt, max_steps, save_m_steps, save_vtk_steps)`" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [], "source": [ "%%capture\n", "sim.driver.relax(dt=1e-11, stopping_dmdt=0.01, max_steps=200, save_m_steps=10, save_vtk_steps=100)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Inspecting the data\n", "\n", "Now that a simulation has run, it is useful to inspect and visualise the generated data.\n", "\n", "## Structure of (spatial) m array\n", "\n", "The spatial magnetisation array from the last relaxation step can be accessed via `sim.spin`. We also saved the spatial magnetisation for all time steps into the folder *sim\\_basics\\_tutorial\\_npys*.\n", "\n", "The structure of `sim.spin` (and the also the data saved in the *.npy* files) is an 1-dimensional. For a mesh with *n* cells, the components are ordered as follows:\n", "\n", "`[mx(0), my(0), mz(0), mx(1), my(1), mz(1), ..., mx(n), my(n), mz(n)]`\n", "\n", "where the numbering of the mesh cell adheres to the following convention:\n", "\n", " +-------+\n", " .' .:|\n", " +-------+:::|\n", " | |:::|\n", " | 30 |::;+-------+-------+-------+-------+-------+\n", " | |;' .:| 11 .' 12 .' 13 .' 14 .:|\n", " +-------+-------+:::|---+-------+-------+-------+:::|\n", " | | |:::| .' 7 .' 8 .' 9 .:|:::|\n", " | 15 | 16 |::;+-------+-------+-------+:::|:::+\n", " | | |;' .' .' .:|:::|::'\n", " +-------+-------+-------+-------+-------+:::|:::+'\n", " | | | | | |:::|:.'\n", " | 0 | 1 | 2 | 3 | 4 |:::+'\n", " | | | | | |::'\n", " +-------+-------+-------+-------+-------+'\n", "\n", "\n", "## Plotting m (spatial)\n", "There are built-in functions in fidimag to restructure this 1-D array, which is useful for creating spatial plots of the magnetisation. These are\n", "\n", "***Required Fidimag Function***\n", "\n", "`TODO: write built-in helper functions!!`\n", "\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "m = sim.spin\n", "m.shape = (-1,3)\n", "mz = m[:,2]" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#the data shape should be (ny,nx) rather than (nx,ny)\n", "mz.shape = (ny,nx)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.pcolor(mz)\n", "plt.xlabel('x (nm)')\n", "plt.ylabel('y (nm)')\n", "plt.colorbar(label=r\"m$_z$\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plotting m (average)\n", "\n", "It is also useful to plot the average components of m over time." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1d_domain_wall.ipynb \u001b[0m\u001b[01;34msim_tutorial_basics_vtks\u001b[0m/\r\n", "current-driven-domain-wall.ipynb spin-polarised-current-driven-skyrmion.ipynb\r\n", "isolated_skyrmion.ipynb spin-waves-in-periodic-system.ipynb\r\n", "runtimes.org standard_problem_4.ipynb\r\n", "sanitize_file tutorial-basics.ipynb\r\n", "\u001b[01;34msim_tutorial_basics_npys\u001b[0m/ tutorial-docker-container.ipynb\r\n", "sim_tutorial_basics.txt\r\n" ] } ], "source": [ "# PYTEST_VALIDATE_IGNORE_OUTPUT\n", "%ls" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true }, "outputs": [], "source": [ "f = fidimag.common.fileio.DataReader('sim_tutorial_basics.txt')" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [], "source": [ "mz = f.datadic['m_z']\n", "t = f.datadic['time']" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nPk8DZ7T7nAS8CLye5OhpjulsYPUU7UcDlwIXARe3498JkOQw4DngCeD49rOXgO4zRx8AxyU5ZJqx\nJf2HFoz7ACRpWFVNJPkL2FZVmwbtO3hueQFwS1VtaPusoAlAh1bVH8Da9vmjc4AX28BzFXB4Vf3Y\n1ngkyYXA9cBdOzisY4HHpmgPcO3gjlGSZ4HzgLtpQtyewMtVNQhznw7tv7GtcQywCUn/O8OQpPlu\n2yAItX4CNrRBqNt2aPvzKTTh44uhb4XtDWyeZpwDgS1TtG/oTp0BP3TG+gh4C/gkyZvASmBFVf3W\n6T/RqS9pDAxDkua7v4d+rx20DR4L2AP4BzgVmBzqN1XYGZgA9t/F8fcAqKpJ4PwkZ9BM290K3J9k\nSVVtbPsPlgmYQNJY+MyQpLnqL5opplFb09ZdWFVfD23TfVPtS+DI2QxYVauq6l6au1J/A5d1Pj6K\nJkCtn01tSbvPO0OS5qoNwJIkR9Hcsfmlbd+tBQ+r6sskzwHPJLmDJhwdDJwLfFxVb+xg1/eA02Yy\nVpLFNM8PrQR+Bk5vx/q8020xsH5cSwZI8s6QpLnrIWA78BlNkDiibR/FSrHXAc+0Y6wFXqEJJd9O\ns8/zwLlDX4vfmQmab6G9RrO44n3Asqp6s9Pnkra2pDFxBWpJ2kXtCtRPVtXyEdVbRBPGTqyq70ZR\nU9LMGYYkaRe1CzM+BpxQI/jnmeRhgKq6fXdrSZo9w5AkSeo1nxmSJEm9ZhiSJEm9ZhiSJEm9ZhiS\nJEm9ZhiSJEm9ZhiSJEm9ZhiSJEm9ZhiSJEm9ZhiSJEm9ZhiSJEm99i/Fm3kIwtzOKgAAAABJRU5E\nrkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(t/1e-9, mz)\n", "plt.xlabel(\"time (ns)\")\n", "plt.ylabel(r\"$\\left\\langle \\mathrm{m}_{\\mathrm{z}} \\right\\rangle$\", fontsize=14)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" }, "widgets": { "state": {}, "version": "1.1.2" } }, "nbformat": 4, "nbformat_minor": 0 }