{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 1D domain wall" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Author**: Marijan Beg\n", "\n", "**Date**: 26/02/2016\n", "\n", "This notebook can be downloaded from the github repository, found [here](https://github.com/computationalmodelling/fidimag/blob/master/doc/ipynb/1d_domain_wall.ipynb)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Problem specification" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The domain wall profile is computed in a one-dimenaional domain of $L=500 \\,\\text{nm}$ length.\n", "\n", "Material paremeters of the simulated material are:\n", "\n", "- exchange energy constant $A = 1.3 \\times 10^{-11} \\,\\text{J/m}$,\n", "- magnetisation saturation $M_\\text{s} = 8.6 \\times 10^{5} \\,\\text{A/m}$,\n", "- anisotropy constant $K_{1} = 1.86 \\times 10^{5} \\,\\text{J/m}^{3}$ with $(1, 0, 0)$ axis,\n", "- anisotropy constant $K_{2} = -0.92 \\times 10^{5} \\,\\text{J/m}^{3}$ with $(0, 0, 1)$ axis." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Simulation" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from fidimag.micro import Sim\n", "from fidimag.common import CuboidMesh\n", "from fidimag.micro import UniformExchange, UniaxialAnisotropy\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Firstly, the mesh is created." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Mesh dimensions.\n", "L = 500 # diameter (nm)\n", "\n", "# Mesh discretisation.\n", "dx = dy = dz = 2 # nm\n", "\n", "mesh = CuboidMesh(nx=int(L/dx), ny=1, nz=1, dx=dx, dy=dy, dz=dz, unit_length=1e-9)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The simulation object is created, parameters set, and energies added." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# NBVAL_IGNORE_OUTPUT\n", "Ms = 8.6e5 # magnetisation saturation (A/m)\n", "A = 1.3e-11 # exchange energy constant (J/m)\n", "K1 = 1.86e5 # anisotropy energy constant (J/m**3)\n", "K2 = -0.92e5 # anisotropy energy constant (J/m**3)\n", "alpha = 0.5 # Gilbert damping\n", "gamma = 2.211e5 # gyromagnetic ration (m/As)\n", "\n", "# Create simulation object.\n", "sim = Sim(mesh)\n", "\n", "# Set simulation parameters.\n", "sim.Ms = Ms\n", "sim.driver.alpha = alpha\n", "sim.driver.gamma = gamma\n", "\n", "# Add energies.\n", "sim.add(UniformExchange(A=A))\n", "sim.add(UniaxialAnisotropy(K1, axis=(1,0,0)))\n", "sim.add(UniaxialAnisotropy(K2, axis=(0,0,1)))\n", " \n", "# Since the magnetisation dynamics is not important in this stage,\n", "# the precession term in LLG equation can be set to artificially zero.\n", "sim.driver.do_precession = False" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to obtain the domain wall as the relaxed state, the system must be appropriatelly initialised. In this case, the initial magnetisation is set to be in $(0, 0, 1)$ direction for $x < 0.4L \\,\\text{nm}$, in $(-1, 0, 0)$ direction for $0.4L \\,\\text{nm} < x < 0.6L \\,\\text{nm}$, and in $(0, 0, 1)$ direction for $x > 0.6L \\,\\text{nm}$." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "def m_init(pos):\n", " x = pos[0]\n", "\n", " if x < 0.45*L:\n", " return (1,0,0)\n", " elif x > 0.55*L:\n", " return (-1,0,0) \n", " else:\n", " return (0,1,0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the next step, the magnetisation is initialised, and the system is relaxed." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "#1 t=1e-13 dt=1e-13 max_dmdt=2.97e+04\n", "#2 t=2e-13 dt=1e-13 max_dmdt=2.79e+04\n", "#3 t=3e-13 dt=1e-13 max_dmdt=2.6e+04\n", "#4 t=4e-13 dt=1e-13 max_dmdt=2.41e+04\n", "#5 t=5e-13 dt=1e-13 max_dmdt=2.21e+04\n", "#6 t=6e-13 dt=1e-13 max_dmdt=2.02e+04\n", "#7 t=7e-13 dt=1e-13 max_dmdt=1.83e+04\n", "#8 t=8e-13 dt=1e-13 max_dmdt=1.66e+04\n", "#9 t=9e-13 dt=1e-13 max_dmdt=1.5e+04\n", "#10 t=1e-12 dt=1e-13 max_dmdt=1.36e+04\n", "#11 t=1.1e-12 dt=1e-13 max_dmdt=1.22e+04\n", "#12 t=1.2e-12 dt=1e-13 max_dmdt=1.1e+04\n", "#13 t=1.3e-12 dt=1e-13 max_dmdt=9.97e+03\n", "#14 t=1.4e-12 dt=1e-13 max_dmdt=9.01e+03\n", "#15 t=1.5e-12 dt=1e-13 max_dmdt=8.16e+03\n", "#16 t=1.6e-12 dt=1e-13 max_dmdt=7.4e+03\n", "#17 t=1.7e-12 dt=1e-13 max_dmdt=6.73e+03\n", "#18 t=1.8e-12 dt=1e-13 max_dmdt=6.44e+03\n", "#19 t=1.9e-12 dt=1e-13 max_dmdt=6.27e+03\n", "#20 t=2e-12 dt=1e-13 max_dmdt=6.1e+03\n", "#21 t=2.1e-12 dt=1e-13 max_dmdt=5.93e+03\n", "#22 t=2.2e-12 dt=1e-13 max_dmdt=5.76e+03\n", "#23 t=2.3e-12 dt=1e-13 max_dmdt=5.58e+03\n", "#24 t=2.4e-12 dt=1e-13 max_dmdt=5.41e+03\n", "#25 t=2.5e-12 dt=1e-13 max_dmdt=5.24e+03\n", "#26 t=2.6e-12 dt=1e-13 max_dmdt=5.07e+03\n", "#27 t=2.7e-12 dt=1e-13 max_dmdt=4.91e+03\n", "#28 t=2.82e-12 dt=1.23e-13 max_dmdt=4.73e+03\n", "#29 t=2.95e-12 dt=1.23e-13 max_dmdt=4.55e+03\n", "#30 t=3.07e-12 dt=1.23e-13 max_dmdt=4.37e+03\n", "#31 t=3.19e-12 dt=1.23e-13 max_dmdt=4.2e+03\n", "#32 t=3.32e-12 dt=1.23e-13 max_dmdt=4.04e+03\n", "#33 t=3.44e-12 dt=1.23e-13 max_dmdt=3.88e+03\n", "#34 t=3.56e-12 dt=1.23e-13 max_dmdt=3.74e+03\n", "#35 t=3.69e-12 dt=1.23e-13 max_dmdt=3.6e+03\n", "#36 t=3.81e-12 dt=1.23e-13 max_dmdt=3.47e+03\n", "#37 t=3.93e-12 dt=1.23e-13 max_dmdt=3.35e+03\n", "#38 t=4.06e-12 dt=1.23e-13 max_dmdt=3.23e+03\n", "#39 t=4.18e-12 dt=1.23e-13 max_dmdt=3.12e+03\n", "#40 t=4.3e-12 dt=1.23e-13 max_dmdt=3.02e+03\n", "#41 t=4.43e-12 dt=1.23e-13 max_dmdt=2.92e+03\n", "#42 t=4.55e-12 dt=1.23e-13 max_dmdt=2.83e+03\n", "#43 t=4.74e-12 dt=1.86e-13 max_dmdt=2.77e+03\n", "#44 t=4.92e-12 dt=1.86e-13 max_dmdt=2.71e+03\n", "#45 t=5.11e-12 dt=1.86e-13 max_dmdt=2.64e+03\n", "#46 t=5.3e-12 dt=1.86e-13 max_dmdt=2.58e+03\n", "#47 t=5.48e-12 dt=1.86e-13 max_dmdt=2.52e+03\n", "#48 t=5.67e-12 dt=1.86e-13 max_dmdt=2.46e+03\n", "#49 t=5.86e-12 dt=1.86e-13 max_dmdt=2.4e+03\n", "#50 t=6.04e-12 dt=1.86e-13 max_dmdt=2.34e+03\n", "#51 t=6.23e-12 dt=1.86e-13 max_dmdt=2.29e+03\n", "#52 t=6.41e-12 dt=1.86e-13 max_dmdt=2.24e+03\n", "#53 t=6.6e-12 dt=1.86e-13 max_dmdt=2.18e+03\n", "#54 t=6.79e-12 dt=1.86e-13 max_dmdt=2.13e+03\n", "#55 t=6.97e-12 dt=1.86e-13 max_dmdt=2.09e+03\n", "#56 t=7.26e-12 dt=2.82e-13 max_dmdt=2.03e+03\n", "#57 t=7.54e-12 dt=2.82e-13 max_dmdt=1.97e+03\n", "#58 t=7.82e-12 dt=2.82e-13 max_dmdt=1.9e+03\n", "#59 t=8.1e-12 dt=2.82e-13 max_dmdt=1.85e+03\n", "#60 t=8.38e-12 dt=2.82e-13 max_dmdt=1.79e+03\n", "#61 t=8.67e-12 dt=2.82e-13 max_dmdt=1.74e+03\n", "#62 t=8.95e-12 dt=2.82e-13 max_dmdt=1.69e+03\n", "#63 t=9.23e-12 dt=2.82e-13 max_dmdt=1.64e+03\n", "#64 t=9.51e-12 dt=2.82e-13 max_dmdt=1.61e+03\n", "#65 t=9.8e-12 dt=2.82e-13 max_dmdt=1.59e+03\n", "#66 t=1.01e-11 dt=2.82e-13 max_dmdt=1.56e+03\n", "#67 t=1.04e-11 dt=2.82e-13 max_dmdt=1.54e+03\n", "#68 t=1.06e-11 dt=2.82e-13 max_dmdt=1.51e+03\n", "#69 t=1.11e-11 dt=4.23e-13 max_dmdt=1.48e+03\n", "#70 t=1.15e-11 dt=4.23e-13 max_dmdt=1.45e+03\n", "#71 t=1.19e-11 dt=4.23e-13 max_dmdt=1.42e+03\n", "#72 t=1.23e-11 dt=4.23e-13 max_dmdt=1.39e+03\n", "#73 t=1.28e-11 dt=4.23e-13 max_dmdt=1.36e+03\n", "#74 t=1.32e-11 dt=4.23e-13 max_dmdt=1.33e+03\n", "#75 t=1.36e-11 dt=4.23e-13 max_dmdt=1.3e+03\n", "#76 t=1.4e-11 dt=4.23e-13 max_dmdt=1.27e+03\n", "#77 t=1.45e-11 dt=4.23e-13 max_dmdt=1.25e+03\n", "#78 t=1.49e-11 dt=4.23e-13 max_dmdt=1.22e+03\n", "#79 t=1.53e-11 dt=4.23e-13 max_dmdt=1.2e+03\n", "#80 t=1.57e-11 dt=4.23e-13 max_dmdt=1.18e+03\n", "#81 t=1.61e-11 dt=4.23e-13 max_dmdt=1.16e+03\n", "#82 t=1.68e-11 dt=6.4e-13 max_dmdt=1.15e+03\n", "#83 t=1.74e-11 dt=6.4e-13 max_dmdt=1.13e+03\n", "#84 t=1.81e-11 dt=6.4e-13 max_dmdt=1.11e+03\n", "#85 t=1.87e-11 dt=6.4e-13 max_dmdt=1.09e+03\n", "#86 t=1.93e-11 dt=6.4e-13 max_dmdt=1.08e+03\n", "#87 t=2e-11 dt=6.4e-13 max_dmdt=1.06e+03\n", "#88 t=2.06e-11 dt=6.4e-13 max_dmdt=1.04e+03\n", "#89 t=2.13e-11 dt=6.4e-13 max_dmdt=1.03e+03\n", "#90 t=2.19e-11 dt=6.4e-13 max_dmdt=1.01e+03\n", "#91 t=2.26e-11 dt=6.4e-13 max_dmdt=994\n", "#92 t=2.32e-11 dt=6.4e-13 max_dmdt=980\n", "#93 t=2.42e-11 dt=9.91e-13 max_dmdt=969\n", "#94 t=2.52e-11 dt=9.91e-13 max_dmdt=956\n", "#95 t=2.62e-11 dt=9.91e-13 max_dmdt=943\n", "#96 t=2.72e-11 dt=9.91e-13 max_dmdt=929\n", "#97 t=2.81e-11 dt=9.91e-13 max_dmdt=915\n", "#98 t=2.91e-11 dt=9.91e-13 max_dmdt=901\n", "#99 t=3.01e-11 dt=9.91e-13 max_dmdt=887\n", "#100 t=3.11e-11 dt=9.91e-13 max_dmdt=872\n", "#101 t=3.21e-11 dt=9.91e-13 max_dmdt=863\n", "#102 t=3.31e-11 dt=9.91e-13 max_dmdt=854\n", "#103 t=3.41e-11 dt=9.91e-13 max_dmdt=844\n", "#104 t=3.51e-11 dt=9.91e-13 max_dmdt=834\n", "#105 t=3.61e-11 dt=9.91e-13 max_dmdt=823\n", "#106 t=3.71e-11 dt=9.91e-13 max_dmdt=811\n", "#107 t=3.81e-11 dt=9.91e-13 max_dmdt=798\n", "#108 t=3.9e-11 dt=9.91e-13 max_dmdt=786\n", "#109 t=4.07e-11 dt=1.61e-12 max_dmdt=768\n", "#110 t=4.23e-11 dt=1.61e-12 max_dmdt=748\n", "#111 t=4.39e-11 dt=1.61e-12 max_dmdt=730\n", "#112 t=4.55e-11 dt=1.61e-12 max_dmdt=711\n", "#113 t=4.71e-11 dt=1.61e-12 max_dmdt=690\n", "#114 t=4.87e-11 dt=1.61e-12 max_dmdt=669\n", "#115 t=5.03e-11 dt=1.61e-12 max_dmdt=646\n", "#116 t=5.19e-11 dt=1.61e-12 max_dmdt=623\n", "#117 t=5.35e-11 dt=1.61e-12 max_dmdt=600\n", "#118 t=5.51e-11 dt=1.61e-12 max_dmdt=576\n", "#119 t=5.67e-11 dt=1.61e-12 max_dmdt=552\n", "#120 t=5.83e-11 dt=1.61e-12 max_dmdt=530\n", "#121 t=5.99e-11 dt=1.61e-12 max_dmdt=509\n", "#122 t=6.15e-11 dt=1.61e-12 max_dmdt=488\n", "#123 t=6.31e-11 dt=1.61e-12 max_dmdt=468\n", "#124 t=6.48e-11 dt=1.61e-12 max_dmdt=447\n", "#125 t=6.64e-11 dt=1.61e-12 max_dmdt=434\n", "#126 t=6.8e-11 dt=1.61e-12 max_dmdt=422\n", "#127 t=6.96e-11 dt=1.61e-12 max_dmdt=410\n", "#128 t=7.12e-11 dt=1.61e-12 max_dmdt=397\n", "#129 t=7.28e-11 dt=1.61e-12 max_dmdt=384\n", "#130 t=7.44e-11 dt=1.61e-12 max_dmdt=371\n", "#131 t=7.6e-11 dt=1.61e-12 max_dmdt=357\n", "#132 t=7.76e-11 dt=1.61e-12 max_dmdt=344\n", "#133 t=7.92e-11 dt=1.61e-12 max_dmdt=331\n", "#134 t=8.08e-11 dt=1.61e-12 max_dmdt=318\n", "#135 t=8.24e-11 dt=1.61e-12 max_dmdt=306\n", "#136 t=8.4e-11 dt=1.61e-12 max_dmdt=293\n", "#137 t=8.56e-11 dt=1.61e-12 max_dmdt=281\n", "#138 t=8.72e-11 dt=1.61e-12 max_dmdt=269\n", "#139 t=8.88e-11 dt=1.61e-12 max_dmdt=258\n", "#140 t=9.05e-11 dt=1.61e-12 max_dmdt=246\n", "#141 t=9.21e-11 dt=1.61e-12 max_dmdt=235\n", "#142 t=9.37e-11 dt=1.61e-12 max_dmdt=225\n", "#143 t=9.53e-11 dt=1.61e-12 max_dmdt=215\n", "#144 t=9.77e-11 dt=2.41e-12 max_dmdt=202\n", "#145 t=1e-10 dt=2.41e-12 max_dmdt=188\n", "#146 t=1.03e-10 dt=2.41e-12 max_dmdt=175\n", "#147 t=1.05e-10 dt=2.41e-12 max_dmdt=162\n", "#148 t=1.07e-10 dt=2.41e-12 max_dmdt=151\n", "#149 t=1.1e-10 dt=2.41e-12 max_dmdt=140\n", "#150 t=1.12e-10 dt=2.41e-12 max_dmdt=129\n", "#151 t=1.15e-10 dt=2.41e-12 max_dmdt=120\n", "#152 t=1.17e-10 dt=2.41e-12 max_dmdt=111\n", "#153 t=1.19e-10 dt=2.41e-12 max_dmdt=103\n", "#154 t=1.22e-10 dt=2.41e-12 max_dmdt=94.9\n", "#155 t=1.24e-10 dt=2.41e-12 max_dmdt=87.7\n", "#156 t=1.27e-10 dt=2.41e-12 max_dmdt=81\n", "#157 t=1.29e-10 dt=2.41e-12 max_dmdt=74.9\n", "#158 t=1.31e-10 dt=2.41e-12 max_dmdt=69.1\n", "#159 t=1.34e-10 dt=2.41e-12 max_dmdt=63.8\n", "#160 t=1.36e-10 dt=2.41e-12 max_dmdt=58.9\n", "#161 t=1.4e-10 dt=3.72e-12 max_dmdt=53.3\n", "#162 t=1.44e-10 dt=3.72e-12 max_dmdt=47.1\n", "#163 t=1.47e-10 dt=3.72e-12 max_dmdt=41.6\n", "#164 t=1.51e-10 dt=3.72e-12 max_dmdt=36.8\n", "#165 t=1.55e-10 dt=3.72e-12 max_dmdt=32.5\n", "#166 t=1.59e-10 dt=3.72e-12 max_dmdt=28.7\n", "#167 t=1.62e-10 dt=3.72e-12 max_dmdt=25.4\n", "#168 t=1.66e-10 dt=3.72e-12 max_dmdt=22.5\n", "#169 t=1.7e-10 dt=3.72e-12 max_dmdt=19.9\n", "#170 t=1.73e-10 dt=3.72e-12 max_dmdt=17.6\n", "#171 t=1.77e-10 dt=3.72e-12 max_dmdt=15.5\n", "#172 t=1.81e-10 dt=3.72e-12 max_dmdt=13.7\n", "#173 t=1.85e-10 dt=3.72e-12 max_dmdt=12.1\n", "#174 t=1.88e-10 dt=3.72e-12 max_dmdt=10.7\n", "#175 t=1.92e-10 dt=3.72e-12 max_dmdt=9.5\n", "#176 t=1.96e-10 dt=3.72e-12 max_dmdt=8.41\n", "#177 t=2e-10 dt=3.72e-12 max_dmdt=7.44\n", "#178 t=2.03e-10 dt=3.72e-12 max_dmdt=6.58\n", "#179 t=2.07e-10 dt=3.72e-12 max_dmdt=5.83\n", "#180 t=2.11e-10 dt=3.72e-12 max_dmdt=5.16\n", "#181 t=2.14e-10 dt=3.72e-12 max_dmdt=4.56\n", "#182 t=2.2e-10 dt=5.7e-12 max_dmdt=3.91\n", "#183 t=2.26e-10 dt=5.7e-12 max_dmdt=3.25\n", "#184 t=2.31e-10 dt=5.7e-12 max_dmdt=2.7\n", "#185 t=2.37e-10 dt=5.7e-12 max_dmdt=2.24\n", "#186 t=2.43e-10 dt=5.7e-12 max_dmdt=1.86\n", "#187 t=2.49e-10 dt=5.7e-12 max_dmdt=1.54\n", "#188 t=2.54e-10 dt=5.7e-12 max_dmdt=1.28\n", "#189 t=2.6e-10 dt=5.7e-12 max_dmdt=1.07\n", "#190 t=2.66e-10 dt=5.7e-12 max_dmdt=0.886\n", "#191 t=2.71e-10 dt=5.7e-12 max_dmdt=0.737\n", "#192 t=2.77e-10 dt=5.7e-12 max_dmdt=0.614\n", "#193 t=2.83e-10 dt=5.7e-12 max_dmdt=0.511\n", "#194 t=2.89e-10 dt=5.7e-12 max_dmdt=0.425\n", "#195 t=2.94e-10 dt=5.7e-12 max_dmdt=0.354\n", "#196 t=3e-10 dt=5.7e-12 max_dmdt=0.295\n", "#197 t=3.06e-10 dt=5.7e-12 max_dmdt=0.246\n", "#198 t=3.11e-10 dt=5.7e-12 max_dmdt=0.205\n", "#199 t=3.2e-10 dt=8.66e-12 max_dmdt=0.163\n", "#200 t=3.29e-10 dt=8.66e-12 max_dmdt=0.123\n", "#201 t=3.37e-10 dt=8.66e-12 max_dmdt=0.0936\n", "#202 t=3.46e-10 dt=8.66e-12 max_dmdt=0.071\n", "#203 t=3.55e-10 dt=8.66e-12 max_dmdt=0.0539\n", "#204 t=3.63e-10 dt=8.66e-12 max_dmdt=0.041\n", "#205 t=3.72e-10 dt=8.66e-12 max_dmdt=0.0311\n", "#206 t=3.81e-10 dt=8.66e-12 max_dmdt=0.0236\n", "#207 t=3.89e-10 dt=8.66e-12 max_dmdt=0.018\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "#208 t=3.98e-10 dt=8.66e-12 max_dmdt=0.0137\n", "#209 t=4.07e-10 dt=8.66e-12 max_dmdt=0.0104\n", "#210 t=4.2e-10 dt=1.36e-11 max_dmdt=0.0073\n" ] } ], "source": [ "# NBVAL_IGNORE_OUTPUT\n", "# Initialise the system.\n", "sim.set_m(m_init)\n", "\n", "# Relax the system to its equilibrium state.\n", "sim.driver.relax(dt=1e-13, stopping_dmdt=0.01, max_steps=5000, save_m_steps=None, save_vtk_steps=None)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "After the system is relaxed, the magnetisation profile can be plotted." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#NBVAL_IGNORE_OUTPUT\n", "m = np.copy(sim.spin)\n", "\n", "m.shape = (-1, 3)\n", "\n", "mx = m[:, 0]\n", "my = m[:, 1]\n", "mz = m[:, 2]\n", "\n", "x_array = np.arange(0, L, dx)\n", "\n", "plt.figure(figsize=(10,6))\n", "plt.plot(x_array, mx, label='mx')\n", "plt.plot(x_array, my, label='my')\n", "plt.plot(x_array, mz, label='mz')\n", "plt.xlabel('x (nm)')\n", "plt.ylabel('')\n", "plt.xlim([0.4*L, 0.6*L])\n", "plt.ylim([-1, 1])\n", "plt.grid()\n", "plt.legend()" ] } ], "metadata": { "anaconda-cloud": {}, "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.2" } }, "nbformat": 4, "nbformat_minor": 1 }