{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Analysing simulation results\n", "\n", "With `micromagneticdata` we can analyse simulation results created with `oommfc`. This notebook summarises the available functionality." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import os\n", "\n", "import micromagneticdata as md" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have a set of example simulations stored in the test directory of `micromagneticdata` that we use to demonstrate its functionality." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "dirname = os.path.join(\"..\", \"micromagneticdata\", \"tests\", \"test_sample\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## `Data`\n", "First, we creata a `Data` object. We need to pass the name of the `micromagneticmodel.System` that we used to run the simulation and optionally an additional path to the base directory." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "data = md.Data(name=\"system_name\", dirname=dirname)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `Data` object contains all simulation runs of the `System`. These are called drives." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.n" ] }, { "cell_type": "code", "execution_count": 5, "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", "
drive_numberdatetimedrivertnHminHmax
002022-02-1112:51:44TimeDriver2.500000e-1125.0NaNNaN
112022-02-1112:51:45TimeDriver1.500000e-1115.0NaNNaN
222022-02-1112:51:45TimeDriver5.000000e-1210.0NaNNaN
332022-02-1112:51:46MinDriverNaNNaNNaNNaN
442022-02-1112:51:46TimeDriver5.000000e-125.0NaNNaN
552022-02-1112:51:46MinDriverNaNNaNNaNNaN
662022-02-1112:51:47HysteresisDriverNaN21.0[0, 0, 1000000.0][0, 0, -1000000.0]
772022-06-1916:15:06RelaxDriverNaNNaNNaNNaN
882022-06-1916:15:07MinDriverNaNNaNNaNNaN
992022-06-1916:15:08TimeDriver5.000000e-0910.0NaNNaN
\n", "
" ], "text/plain": [ " drive_number date time driver t n \\\n", "0 0 2022-02-11 12:51:44 TimeDriver 2.500000e-11 25.0 \n", "1 1 2022-02-11 12:51:45 TimeDriver 1.500000e-11 15.0 \n", "2 2 2022-02-11 12:51:45 TimeDriver 5.000000e-12 10.0 \n", "3 3 2022-02-11 12:51:46 MinDriver NaN NaN \n", "4 4 2022-02-11 12:51:46 TimeDriver 5.000000e-12 5.0 \n", "5 5 2022-02-11 12:51:46 MinDriver NaN NaN \n", "6 6 2022-02-11 12:51:47 HysteresisDriver NaN 21.0 \n", "7 7 2022-06-19 16:15:06 RelaxDriver NaN NaN \n", "8 8 2022-06-19 16:15:07 MinDriver NaN NaN \n", "9 9 2022-06-19 16:15:08 TimeDriver 5.000000e-09 10.0 \n", "\n", " Hmin Hmax \n", "0 NaN NaN \n", "1 NaN NaN \n", "2 NaN NaN \n", "3 NaN NaN \n", "4 NaN NaN \n", "5 NaN NaN \n", "6 [0, 0, 1000000.0] [0, 0, -1000000.0] \n", "7 NaN NaN \n", "8 NaN NaN \n", "9 NaN NaN " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.info" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## `Drive`\n", "To access one `Drive` we can index the `Data` object." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "drive = data[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `Drive` object has a number of properties containing information about the drive." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "25" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "drive.n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'drive_number': 0,\n", " 'date': '2022-02-11',\n", " 'time': '12:51:44',\n", " 'driver': 'TimeDriver',\n", " 't': 2.5e-11,\n", " 'n': 25}" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "drive.info" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "drive = data[6]" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'B_hysteresis'" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "drive.x" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'drive_number': 6,\n", " 'date': '2022-02-11',\n", " 'time': '12:51:47',\n", " 'driver': 'HysteresisDriver',\n", " 'Hmin': [0, 0, 1000000.0],\n", " 'Hmax': [0, 0, -1000000.0],\n", " 'n': 21}" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "drive.info" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "# MIF 2.2\n", "\n", "SetOptions {\n", " basename system_name\n", " scalar_output_format %.12g\n", " scalar_field_output_format {binary 8}\n", " vector_field_output_format {binary 8}\n", "}\n", "\n", "# BoxAtlas for main_atlas\n", "Specify Oxs_BoxAtlas:main_atlas {\n", " xrange { 0.0 1e-07 }\n", " yrange { 0.0 5e-08 }\n", " zrange { 0.0 2e-08 }\n", " name main\n", "}\n", "\n", "# RectangularMesh\n", "Specify Oxs_RectangularMesh:mesh {\n", " cellsize { 5e-09 5e-09 5e-09 }\n", " atlas :main_atlas\n", "}\n", "\n", "# UniformExchange\n", "Specify Oxs_UniformExchange:exchange {\n", " A 1.3e-11\n", "}\n", "\n", "# FixedZeeman\n", "Specify Oxs_FixedZeeman:zeeman {\n", " field {0.0 0.0 1000000.0}\n", "}\n", "\n", "# m0 file\n", "Specify Oxs_FileVectorField:m0 {\n", " file m0.omf\n", " atlas :main_atlas\n", "}\n", "\n", "# m0_norm\n", "Specify Oxs_VecMagScalarField:m0_norm {\n", " field :m0\n", "}\n", "\n", "# CGEvolver\n", "Specify Oxs_CGEvolve:evolver {\n", "}\n", "\n", "# OxS_UZeeman\n", "Specify Oxs_UZeeman:hysteresis {\n", " Hrange {\n", " { 0 0 1000000.0 0 0 -1000000.0 20 }\n", " { 0 0 -1000000.0 0 0 1000000.0 20 }\n", " }\n", "}\n", "\n", "# MinDriver\n", "Specify Oxs_MinDriver {\n", " evolver :evolver\n", " mesh :mesh\n", " Ms :m0_norm\n", " m0 :m0\n", " stopping_mxHxm 0.1\n", "}\n", "\n", "Destination table mmArchive\n", "Destination mags mmArchive\n", "\n", "Schedule DataTable table Stage 1\n", "Schedule Oxs_MinDriver::Magnetization mags Stage 1\n" ] } ], "source": [ "print(drive.calculator_script)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The initial magnetisation can be obtained with `m0`. It returns a `discretisedfield.Field` object." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Field\n", "" ], "text/plain": [ "Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=None)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "drive.m0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Scalar data of the drive can be accessed via the `table` property that returns a `ubermagtable.Table` object." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "drive.table.mpl(x=\"B_hysteresis\", y=[\"mx\", \"my\", \"mz\"])" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "41" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "drive.n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can access the magnetisation at a single step or iterate over the drive." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Field\n", "" ], "text/plain": [ "Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m)" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "drive[0]" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m)]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list(drive)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is possible to convert all magnetisation files into vtk for visualisation e.g. in Paraview." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "# drive.ovf2vtk()" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'drive_number': 8,\n", " 'date': '2022-06-19',\n", " 'time': '16:15:07',\n", " 'driver': 'MinDriver'}" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data[-2].info" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data[-2].n" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "data[-2].table.mpl(y=[\"mx\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can convert a drive into an `xarray.DataArray`. An additional dimension is added depending on the type of drive." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "tags": [ "nbval-ignore-output" ] }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.DataArray 'field' (t: 15, x: 20, y: 10, z: 4, comp: 3)>\n",
       "array([[[[[ 154351.17218212,  784953.47212361,   -4874.65353606],\n",
       "          [ 154351.17218212,  784953.47212361,   -4874.65353606],\n",
       "          [ 154351.17218212,  784953.47212361,   -4874.65353606],\n",
       "          [ 154351.17218212,  784953.47212361,   -4874.65353606]],\n",
       "\n",
       "         [[ 154351.17218212,  784953.47212361,   -4874.65353606],\n",
       "          [ 154351.17218212,  784953.47212361,   -4874.65353606],\n",
       "          [ 154351.17218212,  784953.47212361,   -4874.65353606],\n",
       "          [ 154351.17218212,  784953.47212361,   -4874.65353606]],\n",
       "\n",
       "         [[ 154351.17218212,  784953.47212361,   -4874.65353606],\n",
       "          [ 154351.17218212,  784953.47212361,   -4874.65353606],\n",
       "          [ 154351.17218212,  784953.47212361,   -4874.65353606],\n",
       "          [ 154351.17218212,  784953.47212361,   -4874.65353606]],\n",
       "\n",
       "         ...,\n",
       "\n",
       "         [[ 154351.17218212,  784953.47212361,   -4874.65353606],\n",
       "          [ 154351.17218212,  784953.47212361,   -4874.65353606],\n",
       "          [ 154351.17218212,  784953.47212361,   -4874.65353606],\n",
       "...\n",
       "          [ 190354.11016335, -774671.87412542,   60405.29929506],\n",
       "          [ 190354.11016335, -774671.87412542,   60405.29929506],\n",
       "          [ 190354.11016335, -774671.87412542,   60405.29929506]],\n",
       "\n",
       "         ...,\n",
       "\n",
       "         [[ 190354.11016335, -774671.87412542,   60405.29929506],\n",
       "          [ 190354.11016335, -774671.87412542,   60405.29929506],\n",
       "          [ 190354.11016335, -774671.87412542,   60405.29929506],\n",
       "          [ 190354.11016335, -774671.87412542,   60405.29929506]],\n",
       "\n",
       "         [[ 190354.11016335, -774671.87412542,   60405.29929506],\n",
       "          [ 190354.11016335, -774671.87412542,   60405.29929506],\n",
       "          [ 190354.11016335, -774671.87412542,   60405.29929506],\n",
       "          [ 190354.11016335, -774671.87412542,   60405.29929506]],\n",
       "\n",
       "         [[ 190354.11016335, -774671.87412542,   60405.29929506],\n",
       "          [ 190354.11016335, -774671.87412542,   60405.29929506],\n",
       "          [ 190354.11016335, -774671.87412542,   60405.29929506],\n",
       "          [ 190354.11016335, -774671.87412542,   60405.29929506]]]]])\n",
       "Coordinates:\n",
       "  * x        (x) float64 2.5e-09 7.5e-09 1.25e-08 ... 8.75e-08 9.25e-08 9.75e-08\n",
       "  * y        (y) float64 2.5e-09 7.5e-09 1.25e-08 ... 3.75e-08 4.25e-08 4.75e-08\n",
       "  * z        (z) float64 2.5e-09 7.5e-09 1.25e-08 1.75e-08\n",
       "  * comp     (comp) <U1 'x' 'y' 'z'\n",
       "  * t        (t) float64 1e-12 2e-12 3e-12 4e-12 ... 1.3e-11 1.4e-11 1.5e-11\n",
       "Attributes:\n",
       "    units:         A/m\n",
       "    cell:          (5e-09, 5e-09, 5e-09)\n",
       "    p1:            (0.0, 0.0, 0.0)\n",
       "    p2:            (1e-07, 5e-08, 2e-08)\n",
       "    drive_number:  1\n",
       "    date:          2022-02-11\n",
       "    time:          12:51:45\n",
       "    driver:        TimeDriver\n",
       "    t:             1.5e-11\n",
       "    n:             15
" ], "text/plain": [ "\n", "array([[[[[ 154351.17218212, 784953.47212361, -4874.65353606],\n", " [ 154351.17218212, 784953.47212361, -4874.65353606],\n", " [ 154351.17218212, 784953.47212361, -4874.65353606],\n", " [ 154351.17218212, 784953.47212361, -4874.65353606]],\n", "\n", " [[ 154351.17218212, 784953.47212361, -4874.65353606],\n", " [ 154351.17218212, 784953.47212361, -4874.65353606],\n", " [ 154351.17218212, 784953.47212361, -4874.65353606],\n", " [ 154351.17218212, 784953.47212361, -4874.65353606]],\n", "\n", " [[ 154351.17218212, 784953.47212361, -4874.65353606],\n", " [ 154351.17218212, 784953.47212361, -4874.65353606],\n", " [ 154351.17218212, 784953.47212361, -4874.65353606],\n", " [ 154351.17218212, 784953.47212361, -4874.65353606]],\n", "\n", " ...,\n", "\n", " [[ 154351.17218212, 784953.47212361, -4874.65353606],\n", " [ 154351.17218212, 784953.47212361, -4874.65353606],\n", " [ 154351.17218212, 784953.47212361, -4874.65353606],\n", "...\n", " [ 190354.11016335, -774671.87412542, 60405.29929506],\n", " [ 190354.11016335, -774671.87412542, 60405.29929506],\n", " [ 190354.11016335, -774671.87412542, 60405.29929506]],\n", "\n", " ...,\n", "\n", " [[ 190354.11016335, -774671.87412542, 60405.29929506],\n", " [ 190354.11016335, -774671.87412542, 60405.29929506],\n", " [ 190354.11016335, -774671.87412542, 60405.29929506],\n", " [ 190354.11016335, -774671.87412542, 60405.29929506]],\n", "\n", " [[ 190354.11016335, -774671.87412542, 60405.29929506],\n", " [ 190354.11016335, -774671.87412542, 60405.29929506],\n", " [ 190354.11016335, -774671.87412542, 60405.29929506],\n", " [ 190354.11016335, -774671.87412542, 60405.29929506]],\n", "\n", " [[ 190354.11016335, -774671.87412542, 60405.29929506],\n", " [ 190354.11016335, -774671.87412542, 60405.29929506],\n", " [ 190354.11016335, -774671.87412542, 60405.29929506],\n", " [ 190354.11016335, -774671.87412542, 60405.29929506]]]]])\n", "Coordinates:\n", " * x (x) float64 2.5e-09 7.5e-09 1.25e-08 ... 8.75e-08 9.25e-08 9.75e-08\n", " * y (y) float64 2.5e-09 7.5e-09 1.25e-08 ... 3.75e-08 4.25e-08 4.75e-08\n", " * z (z) float64 2.5e-09 7.5e-09 1.25e-08 1.75e-08\n", " * comp (comp) \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.DataArray 'field' (x: 20, y: 20, z: 1, comp: 3)>\n",
       "array([[[[ 7.00675188e+05, -3.86075438e+05, -3.13346771e+02]],\n",
       "\n",
       "        [[ 6.65048812e+05, -4.44646031e+05, -3.13106323e+02]],\n",
       "\n",
       "        [[ 6.19320000e+05, -5.06401781e+05, -3.33644318e+02]],\n",
       "\n",
       "        ...,\n",
       "\n",
       "        [[-1.75525266e+05, -7.80505750e+05, -1.27177136e+03]],\n",
       "\n",
       "        [[-2.24762719e+05, -7.67775938e+05, -1.33155176e+03]],\n",
       "\n",
       "        [[-2.59434703e+05, -7.56763812e+05, -1.46627930e+03]]],\n",
       "\n",
       "\n",
       "       [[[ 7.21049375e+05, -3.46536844e+05, -2.86615723e+02]],\n",
       "\n",
       "        [[ 6.93671875e+05, -3.98521406e+05, -2.90904022e+02]],\n",
       "\n",
       "        [[ 6.55573312e+05, -4.58501469e+05, -3.17528809e+02]],\n",
       "...\n",
       "        [[-2.16536406e+05,  7.70136438e+05, -1.38442407e+03]],\n",
       "\n",
       "        [[-2.78445031e+05,  7.49977562e+05, -1.43108533e+03]],\n",
       "\n",
       "        [[-3.26508750e+05,  7.30335250e+05, -1.55219861e+03]]],\n",
       "\n",
       "\n",
       "       [[[ 7.00675125e+05,  3.86075406e+05, -3.13348938e+02]],\n",
       "\n",
       "        [[ 6.65048812e+05,  4.44646062e+05, -3.13108154e+02]],\n",
       "\n",
       "        [[ 6.19319938e+05,  5.06401781e+05, -3.33647583e+02]],\n",
       "\n",
       "        ...,\n",
       "\n",
       "        [[-1.75525281e+05,  7.80505812e+05, -1.27177051e+03]],\n",
       "\n",
       "        [[-2.24762781e+05,  7.67776000e+05, -1.33154993e+03]],\n",
       "\n",
       "        [[-2.59434719e+05,  7.56763812e+05, -1.46627563e+03]]]])\n",
       "Coordinates:\n",
       "  * x        (x) float64 2.5e-09 7.5e-09 1.25e-08 ... 8.75e-08 9.25e-08 9.75e-08\n",
       "  * y        (y) float64 2.5e-09 7.5e-09 1.25e-08 ... 8.75e-08 9.25e-08 9.75e-08\n",
       "  * z        (z) float64 2.5e-09\n",
       "  * comp     (comp) <U1 'x' 'y' 'z'\n",
       "Attributes:\n",
       "    units:         A/m\n",
       "    cell:          (5e-09, 5e-09, 5e-09)\n",
       "    p1:            (0.0, 0.0, 0.0)\n",
       "    p2:            (1e-07, 1e-07, 5e-09)\n",
       "    drive_number:  8\n",
       "    date:          2022-06-19\n",
       "    time:          16:15:07\n",
       "    driver:        MinDriver
" ], "text/plain": [ "\n", "array([[[[ 7.00675188e+05, -3.86075438e+05, -3.13346771e+02]],\n", "\n", " [[ 6.65048812e+05, -4.44646031e+05, -3.13106323e+02]],\n", "\n", " [[ 6.19320000e+05, -5.06401781e+05, -3.33644318e+02]],\n", "\n", " ...,\n", "\n", " [[-1.75525266e+05, -7.80505750e+05, -1.27177136e+03]],\n", "\n", " [[-2.24762719e+05, -7.67775938e+05, -1.33155176e+03]],\n", "\n", " [[-2.59434703e+05, -7.56763812e+05, -1.46627930e+03]]],\n", "\n", "\n", " [[[ 7.21049375e+05, -3.46536844e+05, -2.86615723e+02]],\n", "\n", " [[ 6.93671875e+05, -3.98521406e+05, -2.90904022e+02]],\n", "\n", " [[ 6.55573312e+05, -4.58501469e+05, -3.17528809e+02]],\n", "...\n", " [[-2.16536406e+05, 7.70136438e+05, -1.38442407e+03]],\n", "\n", " [[-2.78445031e+05, 7.49977562e+05, -1.43108533e+03]],\n", "\n", " [[-3.26508750e+05, 7.30335250e+05, -1.55219861e+03]]],\n", "\n", "\n", " [[[ 7.00675125e+05, 3.86075406e+05, -3.13348938e+02]],\n", "\n", " [[ 6.65048812e+05, 4.44646062e+05, -3.13108154e+02]],\n", "\n", " [[ 6.19319938e+05, 5.06401781e+05, -3.33647583e+02]],\n", "\n", " ...,\n", "\n", " [[-1.75525281e+05, 7.80505812e+05, -1.27177051e+03]],\n", "\n", " [[-2.24762781e+05, 7.67776000e+05, -1.33154993e+03]],\n", "\n", " [[-2.59434719e+05, 7.56763812e+05, -1.46627563e+03]]]])\n", "Coordinates:\n", " * x (x) float64 2.5e-09 7.5e-09 1.25e-08 ... 8.75e-08 9.25e-08 9.75e-08\n", " * y (y) float64 2.5e-09 7.5e-09 1.25e-08 ... 8.75e-08 9.25e-08 9.75e-08\n", " * z (z) float64 2.5e-09\n", " * comp (comp) Field\n", "
    \n", " \n", "
  • Mesh\n", "
      \n", "
    • Region\n", "
        \n", "
      • p1 = (0.0, 0.0, 0.0)
      • \n", "
      • p2 = (1e-07, 5e-08, 2e-08)
      • \n", "
    • \n", "
    • n = (20, 10, 4)
    • \n", "
    • attributes:\n", "
        \n", "
      • unit: m
      • \n", "
      • fourierspace: False
      • \n", "
      • isplane: False
      • \n", "
      \n", "
    • \n", "
  • \n", "
  • dim = 3
  • \n", "
  • components:\n", "
    • x
    • \n", "
    • y
    • \n", "
    • z
    • \n", "
    \n", "
  • \n", "
  • units = None
  • \n", "
" ], "text/plain": [ "Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=None)" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "combined.m0" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "50" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "combined.n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The combined drive has one large table that contains the data for all individual drives." ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "combined.table.mpl(y=[\"mx\", \"my\", \"mz\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can iterate over the drives in the combined drive or access a single element." ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Field\n", "
    \n", " \n", "
  • Mesh\n", "
      \n", "
    • Region\n", "
        \n", "
      • p1 = (0.0, 0.0, 0.0)
      • \n", "
      • p2 = (1e-07, 5e-08, 2e-08)
      • \n", "
    • \n", "
    • n = (20, 10, 4)
    • \n", "
    • attributes:\n", "
        \n", "
      • unit: m
      • \n", "
      • fourierspace: False
      • \n", "
      • isplane: False
      • \n", "
      \n", "
    • \n", "
  • \n", "
  • dim = 3
  • \n", "
  • components:\n", "
    • x
    • \n", "
    • y
    • \n", "
    • z
    • \n", "
    \n", "
  • \n", "
  • units = A/m
  • \n", "
" ], "text/plain": [ "Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m)" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "combined[15]" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m),\n", " Field(Mesh(Region(p1=(0.0, 0.0, 0.0), p2=(1e-07, 5e-08, 2e-08)), n=(20, 10, 4), attributes: (unit: m, fourierspace: False, isplane: False)), dim=3, components: (x, y, z), units=A/m)]" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list(combined)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'t'" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "combined.x" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The combined drive can be converted into an `xarray.DataArray` similar to the normal `Drive`." ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "tags": [ "nbval-ignore-output" ] }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.DataArray 'field' (t: 50, x: 20, y: 10, z: 4, comp: 3)>\n",
       "array([[[[[ -27584.49540021,  658579.77501927,  453334.06616874],\n",
       "          [ -27584.49540021,  658579.77501927,  453334.06616874],\n",
       "          [ -27584.49540021,  658579.77501927,  453334.06616874],\n",
       "          [ -27584.49540021,  658579.77501927,  453334.06616874]],\n",
       "\n",
       "         [[ -27584.49540021,  658579.77501927,  453334.06616874],\n",
       "          [ -27584.49540021,  658579.77501927,  453334.06616874],\n",
       "          [ -27584.49540021,  658579.77501927,  453334.06616874],\n",
       "          [ -27584.49540021,  658579.77501927,  453334.06616874]],\n",
       "\n",
       "         [[ -27584.49540021,  658579.77501927,  453334.06616874],\n",
       "          [ -27584.49540021,  658579.77501927,  453334.06616874],\n",
       "          [ -27584.49540021,  658579.77501927,  453334.06616874],\n",
       "          [ -27584.49540021,  658579.77501927,  453334.06616874]],\n",
       "\n",
       "         ...,\n",
       "\n",
       "         [[ -27584.49540021,  658579.77501927,  453334.06616874],\n",
       "          [ -27584.49540021,  658579.77501927,  453334.06616874],\n",
       "          [ -27584.49540021,  658579.77501927,  453334.06616874],\n",
       "...\n",
       "          [ 345793.85199607, -349773.97904047, -630939.59735296],\n",
       "          [ 345793.85199607, -349773.97904047, -630939.59735296],\n",
       "          [ 345793.85199607, -349773.97904047, -630939.59735296]],\n",
       "\n",
       "         ...,\n",
       "\n",
       "         [[ 345793.85199607, -349773.97904047, -630939.59735296],\n",
       "          [ 345793.85199607, -349773.97904047, -630939.59735296],\n",
       "          [ 345793.85199607, -349773.97904047, -630939.59735296],\n",
       "          [ 345793.85199607, -349773.97904047, -630939.59735296]],\n",
       "\n",
       "         [[ 345793.85199607, -349773.97904047, -630939.59735296],\n",
       "          [ 345793.85199607, -349773.97904047, -630939.59735296],\n",
       "          [ 345793.85199607, -349773.97904047, -630939.59735296],\n",
       "          [ 345793.85199607, -349773.97904047, -630939.59735296]],\n",
       "\n",
       "         [[ 345793.85199607, -349773.97904047, -630939.59735296],\n",
       "          [ 345793.85199607, -349773.97904047, -630939.59735296],\n",
       "          [ 345793.85199607, -349773.97904047, -630939.59735296],\n",
       "          [ 345793.85199607, -349773.97904047, -630939.59735296]]]]])\n",
       "Coordinates:\n",
       "  * x        (x) float64 2.5e-09 7.5e-09 1.25e-08 ... 8.75e-08 9.25e-08 9.75e-08\n",
       "  * y        (y) float64 2.5e-09 7.5e-09 1.25e-08 ... 3.75e-08 4.25e-08 4.75e-08\n",
       "  * z        (z) float64 2.5e-09 7.5e-09 1.25e-08 1.75e-08\n",
       "  * comp     (comp) <U1 'x' 'y' 'z'\n",
       "  * t        (t) float64 1e-12 2e-12 3e-12 4e-12 ... 4.4e-11 4.45e-11 4.5e-11\n",
       "Attributes:\n",
       "    units:          A/m\n",
       "    cell:           (5e-09, 5e-09, 5e-09)\n",
       "    p1:             (0.0, 0.0, 0.0)\n",
       "    p2:             (1e-07, 5e-08, 2e-08)\n",
       "    drive_numbers:  [0, 1, 2]\n",
       "    driver:         TimeDriver
" ], "text/plain": [ "\n", "array([[[[[ -27584.49540021, 658579.77501927, 453334.06616874],\n", " [ -27584.49540021, 658579.77501927, 453334.06616874],\n", " [ -27584.49540021, 658579.77501927, 453334.06616874],\n", " [ -27584.49540021, 658579.77501927, 453334.06616874]],\n", "\n", " [[ -27584.49540021, 658579.77501927, 453334.06616874],\n", " [ -27584.49540021, 658579.77501927, 453334.06616874],\n", " [ -27584.49540021, 658579.77501927, 453334.06616874],\n", " [ -27584.49540021, 658579.77501927, 453334.06616874]],\n", "\n", " [[ -27584.49540021, 658579.77501927, 453334.06616874],\n", " [ -27584.49540021, 658579.77501927, 453334.06616874],\n", " [ -27584.49540021, 658579.77501927, 453334.06616874],\n", " [ -27584.49540021, 658579.77501927, 453334.06616874]],\n", "\n", " ...,\n", "\n", " [[ -27584.49540021, 658579.77501927, 453334.06616874],\n", " [ -27584.49540021, 658579.77501927, 453334.06616874],\n", " [ -27584.49540021, 658579.77501927, 453334.06616874],\n", "...\n", " [ 345793.85199607, -349773.97904047, -630939.59735296],\n", " [ 345793.85199607, -349773.97904047, -630939.59735296],\n", " [ 345793.85199607, -349773.97904047, -630939.59735296]],\n", "\n", " ...,\n", "\n", " [[ 345793.85199607, -349773.97904047, -630939.59735296],\n", " [ 345793.85199607, -349773.97904047, -630939.59735296],\n", " [ 345793.85199607, -349773.97904047, -630939.59735296],\n", " [ 345793.85199607, -349773.97904047, -630939.59735296]],\n", "\n", " [[ 345793.85199607, -349773.97904047, -630939.59735296],\n", " [ 345793.85199607, -349773.97904047, -630939.59735296],\n", " [ 345793.85199607, -349773.97904047, -630939.59735296],\n", " [ 345793.85199607, -349773.97904047, -630939.59735296]],\n", "\n", " [[ 345793.85199607, -349773.97904047, -630939.59735296],\n", " [ 345793.85199607, -349773.97904047, -630939.59735296],\n", " [ 345793.85199607, -349773.97904047, -630939.59735296],\n", " [ 345793.85199607, -349773.97904047, -630939.59735296]]]]])\n", "Coordinates:\n", " * x (x) float64 2.5e-09 7.5e-09 1.25e-08 ... 8.75e-08 9.25e-08 9.75e-08\n", " * y (y) float64 2.5e-09 7.5e-09 1.25e-08 ... 3.75e-08 4.25e-08 4.75e-08\n", " * z (z) float64 2.5e-09 7.5e-09 1.25e-08 1.75e-08\n", " * comp (comp)