{ "cells": [ { "cell_type": "markdown", "id": "e115187a", "metadata": {}, "source": [ "# Dispersion of a nanotube in vortex state\n", "\n", "This notebook will calculate the dispersion relation of a nanotube with 60 nm outer and 40 nm inner diameters, permalloy material parameters. The obtained dispersion(s) must be equivalent to that(those) calculated analytically as well as with micromagnetic simulations published in: ```Jorge A. Otálora, Ming Yan, Helmut Schultheiss, Riccardo Hertel, and Attila Kákay, Phys. Rev. Lett. 117, 227203 (2016).```" ] }, { "cell_type": "markdown", "id": "a2941d85", "metadata": {}, "source": [ "First we need to import the ```TetraX``` package.\n", "The ```%matplotlib notebook``` and ```import matplotlib.pyplot as plt``` are for plotting the obtained dispersions." ] }, { "cell_type": "code", "execution_count": 1, "id": "a0ea9478", "metadata": {}, "outputs": [], "source": [ "import tetrax as tx\n", "%matplotlib notebook\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "id": "fe359475", "metadata": {}, "source": [ "Here, we create a sample with permalloy like material parameters. By default the material parameters are set to those of permalloy. Each sample needs a geometry in the form of a mesh. We create a geometry with tubular cross section, 30nm outer and 20 nm inner radii. To do so, we use the ```tube_cross_section(r,R,lc,x0,y0)``` geometry function from the geometries module." ] }, { "cell_type": "code", "execution_count": 2, "id": "4220be52", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "This sample does not have a mesh yet. You cannot set spatially dependent saturation for it.\n", "This sample does not have a mesh yet. You cannot set spatially dependent exchange stiffness for it.\n", "Setting geometry and calculating discretized differential operators on mesh.\n", "Done.\n" ] } ], "source": [ "sample = tx.create_sample(name=\"Nanotube_20_30\")\n", "sample.Msat = 800e3\n", "sample.Aex = 13e-12\n", "sample.Didmi = 0\n", "mesh = tx.geometries.tube_cross_section(20,30,lc=3)\n", "sample.set_geom(mesh)" ] }, { "cell_type": "markdown", "id": "8e10b619", "metadata": {}, "source": [ "The ```sample``` parameters, material and mesh, can be listed by typing ```sample```." ] }, { "cell_type": "code", "execution_count": 3, "id": "37359cb3", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Material parameter | \n", "Attribute name | \n", "(Average) value | \n", "
---|---|---|
Saturation magnetization | Msat | \n", "799999.9999999999 A/m | \n", "
Exchange stiffness constant | Aex | \n", "1.3e-11 J/m | \n", "
Gyromagnetic ratio | gamma | \n", "176085964400.0 rad Hz/T | \n", "
Gilbert damping parameter | alpha | \n", "0.01 | \n", "
Unaxial anistropy constant | Ku1 | \n", "0.0 J/m3 | \n", "
Unaxial anistropy direction | e_u | \n", "array([0, 0, 1]) | \n", "
Cubic anistropy constant | Kc1 | \n", "0.0 J/m3 | \n", "
Cubic anistropy axes | v1Kc v2Kc | \n",
" (1, 0, 0) (0, 1, 0) | \n",
"
Bulk DMI constant | Dbulk | \n", "0.0 J/m2 | \n", "
Interfacial DMI constant | Didmi | \n", "0 J/m2 | \n", "
Interlayer bilinear exchange constant | J1 | \n", "0.0 J/m2 | \n", "
\n", " | \n", " | |
Mesh parameter | Attribute name | \n", "Value | \n", "
Mesh scaling | scale | \n", "1e-09 | \n", "
Number of nodes | nx | \n", "272 | \n", "
Number of boundary nodes | nb | \n", "105 | \n", "