{ "cells": [ { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "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=\"rectangle\", 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": [ "7" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\n", " | drive_number | \n", "date | \n", "time | \n", "driver | \n", "adapter | \n", "t | \n", "n | \n", "n_threads | \n", "
---|---|---|---|---|---|---|---|---|
0 | \n", "0 | \n", "2024-06-11 | \n", "14:14:32 | \n", "TimeDriver | \n", "oommfc | \n", "2.500000e-11 | \n", "25.0 | \n", "NaN | \n", "
1 | \n", "1 | \n", "2024-06-11 | \n", "14:14:39 | \n", "TimeDriver | \n", "mumax3c | \n", "1.500000e-11 | \n", "15.0 | \n", "NaN | \n", "
2 | \n", "2 | \n", "2024-06-11 | \n", "14:14:39 | \n", "TimeDriver | \n", "mumax3c | \n", "5.000000e-10 | \n", "250.0 | \n", "NaN | \n", "
3 | \n", "3 | \n", "2024-06-11 | \n", "14:14:41 | \n", "RelaxDriver | \n", "mumax3c | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
4 | \n", "4 | \n", "2024-06-11 | \n", "14:14:42 | \n", "MinDriver | \n", "mumax3c | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
5 | \n", "5 | \n", "2024-06-11 | \n", "14:14:42 | \n", "TimeDriver | \n", "oommfc | \n", "5.000000e-12 | \n", "5.0 | \n", "NaN | \n", "
6 | \n", "6 | \n", "2024-06-11 | \n", "14:14:49 | \n", "MinDriver | \n", "oommfc | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
<xarray.DataArray 'field' (iteration: 14, x: 20, y: 10, z: 4, vdims: 3)> Size: 269kB\n", "array([[[[[ 3.50067876e+05, 6.98022376e+05, 1.73831082e+05],\n", " [ 3.50067876e+05, 6.98022376e+05, 1.73831082e+05],\n", " [ 3.50067876e+05, 6.98022376e+05, 1.73831082e+05],\n", " [ 3.50067876e+05, 6.98022376e+05, 1.73831082e+05]],\n", "\n", " [[ 3.50067876e+05, 6.98022376e+05, 1.73831082e+05],\n", " [ 3.50067876e+05, 6.98022376e+05, 1.73831082e+05],\n", " [ 3.50067876e+05, 6.98022376e+05, 1.73831082e+05],\n", " [ 3.50067876e+05, 6.98022376e+05, 1.73831082e+05]],\n", "\n", " [[ 3.50067876e+05, 6.98022376e+05, 1.73831082e+05],\n", " [ 3.50067876e+05, 6.98022376e+05, 1.73831082e+05],\n", " [ 3.50067876e+05, 6.98022376e+05, 1.73831082e+05],\n", " [ 3.50067876e+05, 6.98022376e+05, 1.73831082e+05]],\n", "\n", " ...,\n", "\n", " [[ 3.50067876e+05, 6.98022376e+05, 1.73831082e+05],\n", " [ 3.50067876e+05, 6.98022376e+05, 1.73831082e+05],\n", " [ 3.50067876e+05, 6.98022376e+05, 1.73831082e+05],\n", "...\n", " [-3.41568167e-06, -6.81074074e-06, 8.00000000e+05],\n", " [-3.41568167e-06, -6.81074074e-06, 8.00000000e+05],\n", " [-3.41568167e-06, -6.81074074e-06, 8.00000000e+05]],\n", "\n", " ...,\n", "\n", " [[-3.41568167e-06, -6.81074074e-06, 8.00000000e+05],\n", " [-3.41568167e-06, -6.81074074e-06, 8.00000000e+05],\n", " [-3.41568167e-06, -6.81074074e-06, 8.00000000e+05],\n", " [-3.41568167e-06, -6.81074074e-06, 8.00000000e+05]],\n", "\n", " [[-3.41568167e-06, -6.81074074e-06, 8.00000000e+05],\n", " [-3.41568167e-06, -6.81074074e-06, 8.00000000e+05],\n", " [-3.41568167e-06, -6.81074074e-06, 8.00000000e+05],\n", " [-3.41568167e-06, -6.81074074e-06, 8.00000000e+05]],\n", "\n", " [[-3.41568167e-06, -6.81074074e-06, 8.00000000e+05],\n", " [-3.41568167e-06, -6.81074074e-06, 8.00000000e+05],\n", " [-3.41568167e-06, -6.81074074e-06, 8.00000000e+05],\n", " [-3.41568167e-06, -6.81074074e-06, 8.00000000e+05]]]]])\n", "Coordinates:\n", " * x (x) float64 160B -4.75e-08 -4.25e-08 ... 4.25e-08 4.75e-08\n", " * y (y) float64 80B -2.25e-08 -1.75e-08 ... 1.75e-08 2.25e-08\n", " * z (z) float64 32B 2.5e-09 7.5e-09 1.25e-08 1.75e-08\n", " * vdims (vdims) <U1 12B 'x' 'y' 'z'\n", " * iteration (iteration) float64 112B 0.0 1.0 2.0 3.0 ... 10.0 11.0 12.0 13.0\n", "Attributes:\n", " drive_number: 6\n", " date: 2024-06-11\n", " time: 14:14:49\n", " driver: MinDriver\n", " adapter: oommfc\n", " n_threads: None
<xarray.DataArray 'field' (t: 290, x: 20, y: 10, z: 4, vdims: 3)> Size: 6MB\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", " [ 797212.875 , -51317.65625 , 42639.36328125],\n", " [ 797212.875 , -51317.65625 , 42639.36328125],\n", " [ 797212.875 , -51317.65625 , 42639.36328125]],\n", "\n", " ...,\n", "\n", " [[ 797212.875 , -51317.65625 , 42639.36328125],\n", " [ 797212.875 , -51317.65625 , 42639.36328125],\n", " [ 797212.875 , -51317.65625 , 42639.36328125],\n", " [ 797212.875 , -51317.65625 , 42639.36328125]],\n", "\n", " [[ 797212.875 , -51317.65625 , 42639.36328125],\n", " [ 797212.875 , -51317.65625 , 42639.36328125],\n", " [ 797212.875 , -51317.65625 , 42639.36328125],\n", " [ 797212.875 , -51317.65625 , 42639.36328125]],\n", "\n", " [[ 797212.875 , -51317.65625 , 42639.36328125],\n", " [ 797212.875 , -51317.65625 , 42639.36328125],\n", " [ 797212.875 , -51317.65625 , 42639.36328125],\n", " [ 797212.875 , -51317.65625 , 42639.36328125]]]]])\n", "Coordinates:\n", " * x (x) float64 160B -4.75e-08 -4.25e-08 ... 4.25e-08 4.75e-08\n", " * y (y) float64 80B -2.25e-08 -1.75e-08 -1.25e-08 ... 1.75e-08 2.25e-08\n", " * z (z) float64 32B 2.5e-09 7.5e-09 1.25e-08 1.75e-08\n", " * vdims (vdims) <U1 12B 'x' 'y' 'z'\n", " * t (t) float64 2kB 1e-12 2e-12 3e-12 ... 5.423e-10 5.445e-10 5.466e-10\n", "Attributes:\n", " drive_numbers: [0, 1, 2]\n", " driver: TimeDriver