{ "cells": [ { "cell_type": "code", "execution_count": 3, "id": "765a37b0-887b-43bd-97c9-92e82ad96308", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from math import cos, sin\n", "import sys\n", "from PIL import Image, ImageDraw, ImageColor\n", "from matplotlib import pyplot as plt\n", "import matplotlib as mpl\n", "import matplotlib.ticker as ticker" ] }, { "cell_type": "code", "execution_count": 4, "id": "eff046b4-f6d3-4037-93f0-b95042da9e3c", "metadata": {}, "outputs": [], "source": [ "from util_functions import wireIntegrate, cutoffPercentile, toGreyScale, createXYGrid, createXZGrid, createXYZGrid" ] }, { "cell_type": "code", "execution_count": 5, "id": "bdeb573b-c003-406c-83c2-65706f8bd3fd", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(100, 100, 3)\n" ] } ], "source": [ "meshsize = 100 # The size of the mesh grid\n", "I = 1 # 1 amp of current flowing through coil\n", "mu0 = 4 *np.pi*10**(-7) # magnetic permeability constant\n", "radius = 1 # radius of coil in meters\n", "#bbox = (-.05,-.05, -.05, .05, .05, .05) # bounding box of visual area in meters\n", "bbox = (0,0, 10, 10) # bounding box of visual area in meters\n", "xgrid, zgrid, vecs = createXZGrid(bbox, meshsize)\n", "print(vecs.shape)" ] }, { "cell_type": "markdown", "id": "c956ccff-0209-4bbc-834d-00533fc7d454", "metadata": {}, "source": [ "bbox = (-.05,-.05, -0.05, .05, .05, 0.05) # bounding box of visual area in meters\n", "xgrid,ygrid,zgrid,vecs = createXYZGrid(bbox, meshsize)\n", "print(xgrid.shape,vecs.shape)" ] }, { "cell_type": "code", "execution_count": 6, "id": "f5a95338-30b2-42f6-99de-898c418840e3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(360, 3)\n" ] } ], "source": [ "angnum = 360 # The number of evenly spaced angle values around a circumference of length 2*pi*R or part thereof\n", "\n", "\n", "angles = np.linspace(0, np.pi/2, angnum, endpoint=False)\n", "\n", "# create an array of the vector l\n", "coss = np.cos(angles)\n", "sins = np.sin(angles)\n", "zz = np.zeros_like(angles)\n", "l = np.stack((coss, sins, zz), axis=-1)*radius\n", "print (l.shape)" ] }, { "cell_type": "code", "execution_count": 7, "id": "258b9e62-95fe-4138-85fd-9ee08cd119c1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 651 ms, sys: 0 ns, total: 651 ms\n", "Wall time: 653 ms\n" ] } ], "source": [ "%time bField = I*wireIntegrate(vecs, l, closed=False) # Integrate the field around the wire\n", " \n", "# Now we are only interested in the magnitude of the integral result rather\n", "# than it's direction.\n", "\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 8, "id": "e7a09120-13dc-408a-996c-54f1764e9ce8", "metadata": {}, "outputs": [], "source": [ "with open(\"bField-{}x{}.npy\".format(meshsize, meshsize),\"wb\") as f:\n", " np.save(f, bField)" ] }, { "cell_type": "code", "execution_count": 9, "id": "2334b2f4-bfbb-432b-9b4c-fde428d29494", "metadata": {}, "outputs": [], "source": [ "with open(\"bField-{}x{}.npy\".format(meshsize, meshsize),\"rb\") as f:\n", " bField = np.load(f)" ] }, { "cell_type": "code", "execution_count": 10, "id": "5026006e-5876-4a0e-9881-5e185b2c4b18", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(100, 100, 3)\n", "3\n" ] } ], "source": [ "print (bField.shape)\n", "\n", "print (bField.ndim)" ] }, { "cell_type": "code", "execution_count": 11, "id": "fa8baf74-02c3-4bbf-87e0-799024baa1ec", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(200, 200, 3)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "doubleShape = tuple( x*2 for x in bField.shape[: - 1]) + (bField.shape[-1],)\n", "cellsCanvas = np.zeros(doubleShape)\n", "cellsCanvas.shape" ] }, { "cell_type": "code", "execution_count": 12, "id": "fe608dd7-cf28-4c46-aaa8-e7dfe92b5ca5", "metadata": { "scrolled": true }, "outputs": [], "source": [ "cellsCanvas[meshsize:2*meshsize, meshsize:2*meshsize] += bField\n", "cellsCanvas[meshsize-1::-1, meshsize:2*meshsize] += bField\n", "cellsCanvas[meshsize-1::-1, meshsize-1::-1] += bField\n", "cellsCanvas[meshsize:2*meshsize, meshsize-1::-1] += bField\n" ] }, { "cell_type": "code", "execution_count": 13, "id": "c1120796-86ff-4bc0-a751-f188398fbf95", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAf4AAAGbCAYAAAAlVvLMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABo1klEQVR4nO2deXwU9f3/XzO72YQQEkCQEI0QjooWBIuIHIpoLFgvqihiq0DxtirF+wJBRcXaAmKlWCtWEfxR61WRiqhVvyCIglWpFTAKiAkgp4EcO/P5/TE7k5nd2WN2Z+/X8+EaMvOZ93xmdrOvz/v4fEYSQggQQgghJC+Q090BQgghhKQOCj8hhBCSR1D4CSGEkDyCwk8IIYTkERR+QgghJI+g8BNCCCF5BIWfEEIIySMo/IQQQkgeQeEnhBBC8ggKf44iSRLuvffelJ/33XffhSRJePfdd1N+brc49dRTceqppxq/f/PNN5AkCQsWLEhbn4IJ7iOxMn78eHTt2jUl51qwYAEkScI333zj+Nh7770XkiTF1NbJ3/SaNWvg8/nw7bffOu6TTnNzMyorK/GnP/0pbhskM3Ek/D/++COmTp2KkSNHon379jF/GZ544omQJAlPPPGE4w7u378f06ZNQ9++fVFSUoJWrVqhd+/euO2227B9+3bH9jKFDRs24N5773X8ZbF+/Xr8+te/RmVlJQoLC9G+fXtUV1fj6aefhqIoyelshrN582ZcddVV6NatG4qKilBaWoohQ4Zg9uzZOHToULq7l1a6du0KSZJQXV1tu//JJ5+EJEmQJAlr165Nce8SY/v27bj33nuxfv36pJ5n/Pjxxj0Kfi1btiyp546Xu+66C2PHjkWXLl1C9r322ms455xz0KlTJ/h8PrRv3x6nnHIKHn30Uezfv99oV1BQgMmTJ+OBBx5AQ0NDKrtPkozXSeNdu3Zh+vTpOOqoo9C3b9+YvLqNGzfio48+QteuXbFw4UJcc801MZ/v66+/RnV1NbZs2YILL7wQV155JXw+H/7zn//gqaeewksvvYSvvvrKySVkDBs2bMC0adNw6qmnxuyZ/OUvf8HVV1+NTp064dJLL0XPnj1x4MABrFixAhMnTsT333+PO++8EwBw6NAheL2O3t6s5PXXX8eFF16IwsJCXHbZZejduzeamprwwQcf4JZbbsEXX3yB+fPnO7L55ptvJqm36aGoqAjvvPMOamtrUV5ebtm3cOFCFBUVZeUX+/bt2zFt2jR07doV/fr1s+x78sknoaqqa+cqLCzEX/7yl5Dtffv2xRlnnIGLL74YhYWFrp0vEdavX4+33noLK1eutGxXVRUTJ07EggUL0KdPH1x77bWorKzEgQMHsGrVKtx9991YunQpVqxYYRwzYcIE3H777Xj++efxm9/8JtWXQpKEI2Xo3Lkzvv/+e5SXl2Pt2rUYMGBA1GOee+45HH744Xj00UcxevRofPPNNzEJnd/vx/nnn4+6ujq8++67GDp0qGX/Aw88gIcffthJ98PS0NAAn88HWQ4NgNTX16N169aunCcRPvzwQ1x99dUYNGgQli5dijZt2hj7Jk2ahLVr1+Lzzz83thUVFUW1mSnXFolIfaypqcHFF1+MLl264O2330bnzp2Nfddddx02bdqE119/3fE5fT5f3P3NRIYMGYKPPvoIL7zwAm688UZj+7Zt2/D+++/jl7/8JV588cU09tB9CgoKXLXn9Xrx61//Oux+j8fj6vkS4emnn8ZRRx2Fk046ybJ95syZWLBgAX73u9/h0UcftaQYbrzxRnz//ff429/+Zjmmbdu2+PnPf44FCxZQ+HMJEScfffSRACCefvrpiO169Oghrr32WtHY2Cjatm0rHnjggZjsL168WACIuX2XLl3EuHHjQrYPGzZMDBs2zPj9nXfeEQDEokWLxF133SUqKiqEJEliz549Yty4caJ169Zi06ZN4swzzxQlJSXivPPOE0IIoSiK+OMf/yiOPfZYUVhYKA4//HBx5ZVXit27d4f046yzzhLvv/++GDBggCgsLBRVVVXimWeeMdo8/fTTAkDI65133gl7fSNHjhRer1d8++23Md0PAGLq1KnG71OnThUAxBdffCHGjh0r2rZtK/r162fsf/bZZ8WAAQNEq1atRNu2bcXJJ58s/vWvf4W1Z75e833X76/5Wt577z0xevRoUVlZKXw+nzjyyCPFpEmTxMGDBy22It1/O66++moBQPzf//1fTPekublZTJ8+XXTr1k34fD7RpUsXcccdd4iGhgZLu+DPTE1NTUyf9R9++EHcdNNNonfv3qJ169aiTZs2YuTIkWL9+vWWdvo9euGFF8T9998vjjjiCFFYWChOO+00sXHjxhC7f/7zn0W3bt1EUVGRGDBggHjvvfdC+hgO/fM4fvx4ceKJJ1r2zZw5Uxx22GFi/vz5AoD46KOPjH2ffvqpGDdunKiqqhKFhYWiU6dOYsKECWLXrl0h53jnnXdE//79RWFhoejWrZuYN2+e8XkzA0Bcd9114qWXXhI//elPhc/nE8cee6x44403Qmxu27ZNTJgwQRx++OFGu6eeeirkHga/9Pdo3LhxokuXLhabiqKIWbNmid69e4vCwkLRoUMHMWLECMt126F/LsOh/z3X1NRYti9dulQMHTpUFBcXi5KSEvGLX/xCfP7555Y2dvepoaFBTJo0SXTo0EGUlJSIc845R2zdujXs32AwRx11lBg/frxlW319vWjbtq346U9/Kvx+f1QbZmbPni0kSRI//PCDo+NI5pLUWPDq1auxadMmPP300/D5fDj//POxcOFCIxwdiVdffRUAcOmllyalb/fddx98Ph9uvvlmNDY2Gl6e3+/HiBEjMHToUPz+979HcXExAOCqq67CggULMGHCBNxwww2oqanB3LlzsW7dOvzf//2fxcPYtGkTRo8ejYkTJ2LcuHH461//ivHjx6N///746U9/ilNOOQU33HAD5syZgzvvvBPHHHMMABg/gzl48CBWrFiBU045BUcddVRC133hhReiZ8+emDFjBkTgiczTpk3Dvffei8GDB2P69Onw+XxYvXo13n77bfz85z9P6HwAsGTJEhw8eBDXXHMNDjvsMKxZswaPPfYYtm3bhiVLlljahrv/drz22mvo1q0bBg8eHFM/Lr/8cjzzzDMYPXo0brrpJqxevRoPPvgg/vvf/+Kll15K6BoBLTX18ssv48ILL0RVVRXq6urw5z//GcOGDcOGDRtQUVFhaf/QQw9BlmXcfPPN2LdvH2bOnIlf/epXWL16tdHmqaeewlVXXYXBgwdj0qRJ+Prrr3Huueeiffv2qKysjLlvl1xyCX7+859j8+bN6N69OwDg+eefx+jRo2294+XLl+Prr7/GhAkTUF5ebqRMvvjiC3z44YeGt7hu3TqMHDkSnTt3xrRp06AoCqZPn46OHTva9uODDz7AP/7xD1x77bVo06YN5syZgwsuuABbtmzBYYcdBgCoq6vDSSedBEmS8Nvf/hYdO3bEG2+8gYkTJ2L//v2YNGkSjjnmGEyfPh1TpkzBlVdeiZNPPhkAIn4W9DD3mWeeicsvvxx+vx/vv/8+PvzwQ5xwwglR7+GuXbssvxcUFKCsrMy27bPPPotx48ZhxIgRePjhh3Hw4EE88cQTGDp0KNatWxcx6nn55ZfjueeewyWXXILBgwfj7bffxllnnRW1fwDw3XffYcuWLfjZz35m2f7BBx9g7969uPnmmx1HJ/r37w8hBFauXImzzz7b0bEkQ4l3xBCLx//b3/5WVFZWClVVhRBCvPnmmwKAWLduXVT7xx9/vCgrK4u5P049/m7dutl6nADE7bffbtn+/vvvCwBi4cKFlu3Lli0L2d6lSxcBQLz33nvGth07dojCwkJx0003GduWLFkS1cvX+fTTTwUAceONN0Ztq4MwHv/YsWMt7TZu3ChkWRa//OUvhaIoln36+2ZnTycWjz/4PgshxIMPPigkSbJEMMLdfzv27dsnAESMCJhZv369ACAuv/xyy/abb75ZABBvv/22sS1ej7+hoSHkHtbU1IjCwkIxffp0Y5t+j4455hjR2NhobJ89e7YAID777DMhhBBNTU3i8MMPF/369bO00z10Jx6/3+8X5eXl4r777hNCCLFhwwYBQPz73/82PFaz52v3ni1atCjks33OOeeI4uJi8d133xnbNm7cKLxer63H7/P5xKZNm4xt+mf7scceM7ZNnDhRdO7cOSS6cPHFF4uysjKjb5G+g4I9/rffflsAEDfccENIW/Pn3A79cxn80u9/sMd/4MAB0bZtW3HFFVdY7NTW1oqysjLL9mCPX/+cXnvttZZjL7nkkpg8/rfeeksAEK+99pplu/7Zevnlly3b/X6/2Llzp+UVfD+2b98uAIiHH3444rlJ9pC06Xx+vx8vvPACxowZY3gHp512Gg4//HAsXLgw6vH79++35LHdZty4cWjVqpXtvuACxCVLlqCsrAxnnHEGdu3aZbz69++PkpISvPPOO5b2xx57rOGBAEDHjh1x9NFH4+uvv46rr3qlrRv34+qrr7b8/vLLL0NVVUyZMiWkxiHWaUbRMN/n+vp67Nq1C4MHD4YQAuvWrQtpH0sBqNN7snTpUgDA5MmTLdtvuukmAIirFiCYwsJC4x4qioIffvgBJSUlOProo/HJJ5+EtJ8wYYKlnkD/zOifk7Vr12LHjh24+uqrLe3Gjx8f1tMMh8fjwUUXXYRFixYB0Ir6KisrLZ9TM+b3rKGhAbt27TJyxvq1KIqCt956C6NGjbJEM3r06IEzzzzT1m51dbURcQCA4447DqWlpcY1CyHw4osv4pxzzoEQwvL3NmLECOzbt8/2XkbjxRdfhCRJmDp1asi+WD7nRUVFWL58ueX16KOP2rZdvnw59u7di7Fjx1r67/F4MHDgwJDvCzP65/SGG26wbJ80aVLUPgLADz/8AABo166dZbv+91JSUmLZ/tlnn6Fjx46Wl25DR7cVHPEg2UvSQv1vvvkmdu7ciRNPPBGbNm0ytg8fPhyLFi3Cww8/bFtMp2P+MkgGVVVVttu9Xi+OPPJIy7aNGzdi3759OPzww22P2bFjh+V3u3B8u3btsGfPnrj6WlpaCgA4cOBAXMebCb7uzZs3Q5ZlHHvssQnbDseWLVswZcoUvPrqqyH3YN++fZbf7e6/HU7vybfffgtZltGjRw/L9vLycrRt2zah+c46qqpi9uzZ+NOf/oSamhrL9Eo9jG0m+HOif8Hq90jvU8+ePS3tCgoK0K1bN8f9u+SSSzBnzhx8+umneP7553HxxReHFb3du3dj2rRpWLx4ccjnW3/PduzYgUOHDoXcUwC224Dofxs7d+7E3r17MX/+/LCzMYL7EwubN29GRUUF2rdv7/hYQBs4hZsSGczGjRsBaI6OHfpn1w79c2oeHAHA0UcfHWNPNUQgjaejD5B//PFHy/YePXpg+fLlAIC//e1vePbZZ8PacssRIOknacKve/UXXXSR7f5///vfGD58eNjje/XqhXXr1mHr1q0x5TLDfSgVRbHNaYXz9s1em46qqhEjFcH5zHA5tOA/xljp0aMHvF4vPvvss7iONxPuuuMl2toBiqLgjDPOwO7du3HbbbehV69eaN26Nb777juMHz8+ZMqV3f23o7S0FBUVFZaZDLGQzC+vGTNm4J577sFvfvMb3HfffWjfvj1kWcakSZNsp5a5/TmJxsCBA9G9e3dMmjQJNTU1uOSSS8K2veiii7By5Urccsst6NevH0pKSqCqKkaOHJnQNLlo16zb/vWvf41x48bZtj3uuOPiPn8q0K/h2WefDZk+CSCp02z1AWbwALtXr14AgM8//xznnXeesb2kpMQY0HzwwQe2NnVbHTp0cL2/JD0k5RNYX1+PV155BWPGjMHo0aND9t9www1YuHBhROE/55xzsGjRIjz33HO44447op6zXbt22Lt3b8j2b7/9Ni7vyEz37t3x1ltvYciQIa4JpxMBKi4uxmmnnYa333475oFQrHTv3h2qqmLDhg0hc6HN2N3fpqYmfP/99xHtf/bZZ/jqq6/wzDPP4LLLLjO2615GIpx99tmYP38+Vq1ahUGDBkVs26VLF6iqio0bN1qKKOvq6rB3717bhU6c8ve//x3Dhw/HU089Zdm+d+/euL409T5t3LjR4j02NzejpqYGffv2dWxz7NixuP/++3HMMceEfb/37NmDFStWYNq0aZgyZYqxXfdkdQ4//HAUFRVZIno6dttioWPHjmjTpg0URYnqYTv5G+revTv+9a9/Yffu3XF7/U7OBWj3J9YogY7+Od28ebPFy//f//4X0/G6wNfU1Fi2n3zyySgrK8PixYtxxx13xDS41tFthSs+JtlHUnL8L730Eurr63Hddddh9OjRIa+zzz4bL774IhobG8PaGD16NPr06YMHHngAq1atCtl/4MAB3HXXXcbv3bt3x4cffoimpiZj2z//+U9s3bo14eu56KKLoCgK7rvvvpB9fr/fdsARDX1ueqzHTp06FUIIXHrppSHhOgD4+OOP8cwzzzjux6hRoyDLMqZPnx7iyZk9z+7du+O9996z7J8/f35Uj1/38My2hBCYPXu2474Gc+utt6J169a4/PLLUVdXF7J/8+bNxnl+8YtfAABmzZplafOHP/wBAGKumo6Ex+MJ8daXLFmC7777Li57J5xwAjp27Ih58+ZZPtcLFiyI6zMHaBXjU6dODZufBuzfMyD03unh75dfftmyiuamTZvwxhtvxNU/j8eDCy64AC+++KJtNGfnzp3Gv538DV1wwQUQQmDatGkh+9yOsIwYMQKlpaWYMWMGmpubQ/abryEYvTZizpw5lu3B9z4cRxxxBCorK0NWYSwuLsatt96Kzz//HLfffrvtNYe7Dx9//DEkSYo6uCbZg2OPf+7cudi7d6/xh/7aa69h27ZtAIDrr78eZWVlWLhwIQ477LCwU2vOPfdcPPnkk3j99ddx/vnn27YpKCjAP/7xD1RXV+OUU07BRRddhCFDhqCgoABffPEFnn/+ebRr1w4PPPAAAO0L7e9//ztGjhyJiy66CJs3b8Zzzz0XkiuLh2HDhuGqq67Cgw8+iPXr1+PnP/85CgoKsHHjRixZsgSzZ8+2jWxEol+/fvB4PHj44Yexb98+FBYWGsWPdgwePBiPP/44rr32WvTq1cuyct+7776LV199Fffff7/ja+vRowfuuusu3HfffTj55JNx/vnno7CwEB999BEqKirw4IMPAtDu79VXX40LLrgAZ5xxBj799FP861//iurJ9urVC927d8fNN9+M7777DqWlpXjxxRfjrncw0717dzz//PMYM2YMjjnmGMvKfStXrsSSJUswfvx4ANoKa+PGjcP8+fOxd+9eDBs2DGvWrMEzzzyDUaNGRYw+xcrZZ5+N6dOnY8KECRg8eDA+++wzLFy4MO6IU0FBAe6//35cddVVOO200zBmzBjU1NTg6aefjttmly5doq73XlpailNOOQUzZ85Ec3MzjjjiCLz55pshXiSgrTX/5ptvYsiQIbjmmmugKArmzp2L3r17x72U7kMPPYR33nkHAwcOxBVXXIFjjz0Wu3fvxieffIK33noLu3fvBqC9/23btsW8efPQpk0btG7dGgMHDrSt3xk+fDguvfRSzJkzBxs3bjRSFu+//z6GDx+O3/72t3H11Y7S0lI88cQTuPTSS/Gzn/0MF198MTp27IgtW7bg9ddfx5AhQzB37lzbY/v164exY8fiT3/6E/bt24fBgwdjxYoVjiIo5513Hl566SUIISxRkdtvvx3//e9/8cgjj+DNN9/EBRdcgCOPPBJ79uzBJ598giVLlhhRHDPLly/HkCFDbOtUSJbidBqAPl3N7lVTUyPq6uqE1+sVl156aVgbBw8eFMXFxeKXv/xl1PPt2bNHTJkyRfTp00cUFxeLoqIi0bt3b3HHHXeI77//3tL20UcfNRZDGTJkiFi7dm3Y6XxLliwJOVe0hTrmz58v+vfvL1q1aiXatGkj+vTpI2699Vaxfft2y/0566yzQo61W3DlySefFN26dRMejyfmqX0ff/yxuOSSS0RFRYUoKCgQ7dq1E6effrp45plnLFPJEGY6386dO23t/vWvfxXHH3+8KCwsFO3atRPDhg0Ty5cvN/YriiJuu+020aFDB1FcXCxGjBghNm3aFNN0vg0bNojq6mpRUlIiOnToIK644gpjGpd5Kla0+x+Or776SlxxxRWia9euwufziTZt2oghQ4aIxx57zLI4T3Nzs5g2bZqoqqoSBQUForKy0tUFfBoaGsRNN90kOnfuLFq1aiWGDBkiVq1aFfNnMNx5/vSnPxkL6ZxwwglxLeATCbvpfNu2bRO//OUv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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "magnitudes = np.linalg.norm( cellsCanvas * mu0/(4*np.pi), axis=-1)\n", "mags = cutoffPercentile(magnitudes, 99.9)\n", "\n", "fig,ax = plt.subplots()\n", "plt.title(\"1A Current Circular Coil and Magnetic Field (G)\")\n", "\n", "ax.xaxis.set_major_locator(ticker.NullLocator())\n", "ax.yaxis.set_major_locator(ticker.NullLocator())\n", "\n", "im = ax.imshow(mags*10000) # Convert to Gauss units\n", "cbar = ax.figure.colorbar(im, ax=ax)\n", "cbar.ax.set_ylabel(\"Gauss (G)\", rotation=-90, va=\"bottom\")\n", "\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": 14, "id": "3ead3630-28b6-40af-9623-89575c485eea", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "(100, 100, 3)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bField.shape" ] }, { "cell_type": "code", "execution_count": 15, "id": "a322f8a0-32bc-4cb1-88e9-e5e61e242095", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[array([0. , 0. , 2.0286698], dtype=float32), array([0. , 0. , 2.3175063], dtype=float32)]\n" ] } ], "source": [ "vs = [ y for y in bField[0,2:4] ]\n", "print (vs)" ] }, { "cell_type": "code", "execution_count": 16, "id": "32d323cb-c0f8-4687-ba79-53ddecbaf049", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[array([0., 0.], dtype=float32), array([0., 0.], dtype=float32), array([2.0286698, 2.3175063], dtype=float32)]\n" ] } ], "source": [ "paired_arrays = [np.array([x, y]) for x, y in zip(*vs)]\n", "print (paired_arrays)" ] }, { "cell_type": "code", "execution_count": 17, "id": "3f06b8ec-045a-45f7-b521-e27f6af8ddf7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[0.0, 0.0, 2.1730880737304688]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[np.interp(2.5,[2,3], vs) for vs in paired_arrays]" ] }, { "cell_type": "code", "execution_count": 18, "id": "217544b9-c3e7-4eba-a453-76daa8440804", "metadata": {}, "outputs": [], "source": [ "def createCanvasViaRotation(numCells, shape):\n", " cellCanvas2 = np.zeros(newShape)\n", " for ii in range(0,numCells):\n", " for kk in range(0, numCells):\n", " for jj in range(0, numCells):\n", " d = np.sqrt(ii**2 + jj**2)\n", " if int(d) >= numCells: break\n", " if d == int(d):\n", " cellCanvas2[ii, jj, kk] = bField[kk,int(d)]\n", " else:\n", " #print (ii, ' ',jj,' ', end='')\n", " xp = [ jj, jj+1 ]\n", " if d < bField.shape[1]-1:\n", " yps0 = [ y for y in bField[kk,int(d):int(d)+2] ]\n", " yps1 = [np.array([x, y]) for x, y in zip(*yps0)]\n", " #print (yps1)\n", " cellCanvas2[ii,jj, kk] = [np.interp(d,[int(d),int(d)+1], yps0) for vs in yps1]\n", " \n", " #print (\"np.interp( {:2f}, {}, {})\".format(d, xp , yps1[2]))\n", " #print (cellCanvas2[ii,jj])\n", " return cellCanvas2 " ] }, { "cell_type": "code", "execution_count": 19, "id": "54106fea-0e36-4022-ad78-ae69d1f95a76", "metadata": {}, "outputs": [ { "ename": "ValueError", "evalue": "object too deep for desired array", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", "File \u001b[0;32m:1\u001b[0m\n", "Cell \u001b[0;32mIn[18], line 17\u001b[0m, in \u001b[0;36mcreateCanvasViaRotation\u001b[0;34m(numCells, shape)\u001b[0m\n\u001b[1;32m 15\u001b[0m yps1 \u001b[38;5;241m=\u001b[39m [np\u001b[38;5;241m.\u001b[39marray([x, y]) \u001b[38;5;28;01mfor\u001b[39;00m x, y \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(\u001b[38;5;241m*\u001b[39myps0)]\n\u001b[1;32m 16\u001b[0m \u001b[38;5;66;03m#print (yps1)\u001b[39;00m\n\u001b[0;32m---> 17\u001b[0m cellCanvas2[ii,jj, kk] \u001b[38;5;241m=\u001b[39m [np\u001b[38;5;241m.\u001b[39minterp(d,[\u001b[38;5;28mint\u001b[39m(d),\u001b[38;5;28mint\u001b[39m(d)\u001b[38;5;241m+\u001b[39m\u001b[38;5;241m1\u001b[39m], yps0) \u001b[38;5;28;01mfor\u001b[39;00m vs \u001b[38;5;129;01min\u001b[39;00m yps1]\n\u001b[1;32m 19\u001b[0m \u001b[38;5;66;03m#print (\"np.interp( {:2f}, {}, {})\".format(d, xp , yps1[2]))\u001b[39;00m\n\u001b[1;32m 20\u001b[0m \u001b[38;5;66;03m#print (cellCanvas2[ii,jj])\u001b[39;00m\n\u001b[1;32m 21\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m cellCanvas2\n", "Cell \u001b[0;32mIn[18], line 17\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 15\u001b[0m yps1 \u001b[38;5;241m=\u001b[39m [np\u001b[38;5;241m.\u001b[39marray([x, y]) \u001b[38;5;28;01mfor\u001b[39;00m x, y \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(\u001b[38;5;241m*\u001b[39myps0)]\n\u001b[1;32m 16\u001b[0m \u001b[38;5;66;03m#print (yps1)\u001b[39;00m\n\u001b[0;32m---> 17\u001b[0m cellCanvas2[ii,jj, kk] \u001b[38;5;241m=\u001b[39m [\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minterp\u001b[49m\u001b[43m(\u001b[49m\u001b[43md\u001b[49m\u001b[43m,\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;28;43mint\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43md\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[38;5;28;43mint\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43md\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43myps0\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m vs \u001b[38;5;129;01min\u001b[39;00m yps1]\n\u001b[1;32m 19\u001b[0m \u001b[38;5;66;03m#print (\"np.interp( {:2f}, {}, {})\".format(d, xp , yps1[2]))\u001b[39;00m\n\u001b[1;32m 20\u001b[0m \u001b[38;5;66;03m#print (cellCanvas2[ii,jj])\u001b[39;00m\n\u001b[1;32m 21\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m cellCanvas2\n", "File \u001b[0;32m<__array_function__ internals>:200\u001b[0m, in \u001b[0;36minterp\u001b[0;34m(*args, **kwargs)\u001b[0m\n", "File \u001b[0;32m~/venvs/jupyter-notebook7/lib/python3.8/site-packages/numpy/lib/function_base.py:1595\u001b[0m, in \u001b[0;36minterp\u001b[0;34m(x, xp, fp, left, right, period)\u001b[0m\n\u001b[1;32m 1592\u001b[0m xp \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mconcatenate((xp[\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m:]\u001b[38;5;241m-\u001b[39mperiod, xp, xp[\u001b[38;5;241m0\u001b[39m:\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m+\u001b[39mperiod))\n\u001b[1;32m 1593\u001b[0m fp \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mconcatenate((fp[\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m:], fp, fp[\u001b[38;5;241m0\u001b[39m:\u001b[38;5;241m1\u001b[39m]))\n\u001b[0;32m-> 1595\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43minterp_func\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mxp\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfp\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mleft\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mright\u001b[49m\u001b[43m)\u001b[49m\n", "\u001b[0;31mValueError\u001b[0m: object too deep for desired array" ] } ], "source": [ "newShape = (bField.shape[0],)*3 + (3,)\n", "%time cellCanvas2 = createCanvasViaRotation(meshsize, newShape)" ] }, { "cell_type": "code", "execution_count": 19, "id": "c3a6ebc9-0743-4220-81d5-b6ce8a5e4c70", "metadata": {}, "outputs": [], "source": [ "with open(\"cellCanvas-{}x{}.npy\".format(meshsize, meshsize),\"wb\") as f:\n", " np.save(f, cellCanvas2)" ] }, { "cell_type": "code", "execution_count": 18, "id": "6b353b4e-37e3-46fd-b993-ad36b3f3e17d", "metadata": {}, "outputs": [], "source": [ "with open(\"cellCanvas-{}x{}.npy\".format(meshsize, meshsize),\"rb\") as f:\n", " cellCanvas2 = np.load(f)" ] }, { "cell_type": "code", "execution_count": 19, "id": "6abe412c-0918-455e-9edc-ed072143182c", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 461 ms, sys: 946 ms, total: 1.41 s\n", "Wall time: 1.41 s\n" ] } ], "source": [ "%time magnitudes = np.linalg.norm( cellCanvas2 * mu0/(4*np.pi), axis=-1)" ] }, { "cell_type": "code", "execution_count": 20, "id": "19a99319-7080-4032-b92e-187484989546", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(200, 200)" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "magnitudes[:,:,0].shape" ] }, { "cell_type": "code", "execution_count": 21, "id": "d0214059-91a6-4e8f-b352-d593d3a1c769", "metadata": {}, "outputs": [ { "data": { "image/png": "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vnwZb731FgYPHoy9e/fWmD196KGH8O677+L+++/HwIED8cUXX2D48OG1nh8A/PHHH8jJycENN9ygKv/uu+9QUFCAp59+2uksR0xMDIQQ2L59O+68806nnksNWF2jCkcyB0888YSIiIgQsiwLIYT47LPPBACxd+/eWtvv06ePCAkJcfh8nM0cdO7c2e43VwBi1qxZqvJvv/1WABBr165VlW/btq1KeceOHQUA8c033yhlp0+fFgaDQTz11FNKWXp6eq3ZAqsff/xRABAzZsyota4VqskcjB07VlXvyJEjQqPRiL/85S/CbDar9ln/3ey1Z+VI5qDy+yyEEAsXLhSSJKkyIdW9//YUFhYKADVmFmzt27dPABAPPfSQqvzpp58WAMQXX3yhlNU1c1BSUlLlPczOzhYGg0HMmzdPKbO+R927dxelpaVK+bJlywQAsX//fiGEEGVlZaJNmzYiOjpaVc/6Td+ZzIHJZBLh4eFi/vz5QgghDh06JACIr7/+Wvnma/sN2t6/2XvvvVfls33XXXeJgIAA8ccffyhlR44cETqdzm7mQK/Xi6NHjypl1s/2m2++qZRNnjxZtG3btkqWYsyYMSIkJEQ5t5r+BlXOHHzxxRcCgJg+fXqVurafc3usn8vKm/X9r5w5uHjxomjevLmYMmWKqp28vDwREhKiKq+cObB+Th977DHVc++//36HMgeff/65ACA+/vhjVbn1s7Vp0yZVuclkEmfOnFFtld+P3NxcAUC89tprNR6bGhePTWU0mUzYsGEDRo8erXzLuPXWW9GmTRusXbu21ucXFRWp+tXdbcKECfD397e7r/KgyfT0dISEhOD222/H2bNnlS0mJgZBQUH48ssvVfV79OihfJMBgNatW+Paa6/Fb7/9VqdztY4gdsf78cgjj6geb9q0CbIsIzk5ucqYC0enWNXG9n0uLi7G2bNnMXDgQAghsHfv3ir1HRm06ux7snXrVgBAUlKSqvypp54CgDqNTajMYDAo76HZbMa5c+cQFBSEa6+9Fnv27KlSf9KkSarxDdbPjPVzsmvXLpw+fRqPPPKIqt7EiROr/cZaHa1Wi1GjRuG9994DYBmIGBERofqc2rL9NyspKcHZs2eVPmzrazGbzfj888+RmJioyop07doVd9xxh9124+PjlcwFAFx//fUIDg5WXrMQAh988AHuuusuCCFU/98SEhJQWFho972szQcffABJkpCSklJlnyOfc6PRiIyMDNW2ZMkSu3UzMjJQUFCAsWPHqs5fq9UiNja2yt8LW9bP6fTp01XlM2fOrPUcAeDcuXMAgBYtWqjKrf9fgoKCVOX79+9H69atVZu1DStrW5UzJ9S4eaxb4bPPPsOZM2fQv39/HD16VCm/5ZZb8N577+G1116zOwDQyvYPhidERkbaLdfpdOjQoYOq7MiRIygsLESbNm3sPuf06dOqx/ZS/y1atMCFCxfqdK7BwcEAgIsXL9bp+bYqv+5jx45Bo9GgR48eLrddnZycHCQnJ2Pz5s1V3oPCwkLVY3vvvz3Ovie///47NBoNunbtqioPDw9H8+bNXZoPbiXLMpYtW4a///3vyM7OVk0ttabMbVX+nFj/CFvfI+s5devWTVXPz88PnTt3dvr87r//frzxxhv48ccfsW7dOowZM6baC+P58+cxd+5crF+/vsrn2/pvdvr0aVy5cqXKewrAbhlQ+/+NM2fOoKCgAGlpadXOMql8Po44duwY2rVrh5YtWzr9XMASXFU3HbSyI0eOALB8GbLH+tm1x/o5tQ2gAODaa6918EwtREWXoZU1iL506ZKqvGvXrsjIyAAA/Otf/8K///3vatty15cFahg8FhxYswOjRo2yu//rr7/GLbfcUu3zo6KisHfvXpw4ccKhvtXqPrhms9luH1t1WQPbb39WsizXmPGo3L9aXZ9e5f+wjuratSt0Oh32799fp+fbqu5111VtayuYzWbcfvvtOH/+PJ577jlERUUhMDAQf/zxByZOnFhlupm999+e4OBgtGvXTjVDwxGe/AO3YMECvPTSS/i///s/zJ8/Hy1btoRGo8HMmTPtTqtz9+ekNrGxsejSpQtmzpyJ7Oxs3H///dXWHTVqFLZv345nnnkG0dHRCAoKgizLGDZsmEtTBGt7zda2H3zwQUyYMMFu3euvv77Ox/cG62v497//XWXqKACPTjG2BqGVg/CoqCgAwIEDB3DPPfco5UFBQUrQ891339lt09pWaGio28+XfJdHPqXFxcX46KOPMHr0aIwcObLK/unTp2Pt2rU1Bgd33XUX3nvvPbz77rt4/vnnaz1mixYtUFBQUKX8999/r9O3LFtdunTB559/jkGDBrnt4urMRSogIAC33norvvjiC4eDJUd16dIFsizj0KFD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o7l6ST9+/Dhat26t2t+8eXOH22NwQEREXia5aSOrHj16YOfOncpjWZZRUlKiPN6/fz+6du3qcHvsViAiIu9it4LbjRo1Cs888wzeeecdAMCVK1dU+9PS0vDAAw843B6DAyIiogbu0UcfRW5uLsxms1J2yy23KL8//PDDuO222xxuj8EBERF5FzMHbmc0GrF48eJq9995551OtcfggIiIvIt3ZfSIn376CUePHkVMTAw6duzoUlsckEhERF5lvSujqxtdtWzZMvTp0wf3338/oqKi8PnnnwMA3njjDfztb39zuj0GB0RERA3c4sWL8be//Q0lJSV4/PHH8eqrrwIAevfujVWrVjndHoMDIiLyLuGmjRQFBQW46667AFhmLvzyyy8AgMjISPz2229Ot8fggIiIvMs65sDVjRQ33XQTvvvuOwBAy5YtUVRUBMByp8a63LKZAxKJiIgauAceeACzZs3C77//jvbt28NkMuGDDz7ASy+9pGQUnMHggIiIvEoSls3VNuiq8ePHAwBSUlKUskcffRSjRo3Ca6+95nR7DA6IiMi7uM6B2124cEH1WK/Xw2g01rk9BgdEREQNXHBwsFvb44BEIiLyrnoakLhixQp06tQJRqMRsbGxqhsV2ZOeno6oqCgYjUb06tULW7duVe3fuHEjhg4dilatWkGSJOzbt69KG9apha1atUJQUBBGjBiB/Px8VZ2cnBwMHz4cAQEBaNOmDZ555hmYTCanX98vv/yC1NRUzJ8/H3PnzlVtzmJwQERE3lUPUxk3bNiApKQkpKSkYM+ePejduzcSEhJw+vRpu/W3b9+OsWPHYvLkydi7dy8SExORmJiIAwcOKHWKi4sxePDgGvv0n3zySXz88cdIT0/H119/jdzcXNx7773KfrPZjOHDh6OsrAzbt2/HmjVrsHr1aiQnJzv1+tLS0tCzZ0/MnTsXGzduxEcffaRsmzZtcqotAJCEcM86U0VFRQgJCcHNuAc6yc8dTRIRkZeYRDm+wkcoLCx0e4raynqdiHh9PjT+de8PBwD5SglOJL3k8PnGxsaiX79+WL58ueX5soyIiAhMmzYNs2bNqlJ/9OjRKC4uxieffKKUDRgwANHR0UhNTVXVPX78OCIjI7F3715ER0cr5YWFhWjdujXWrVuHkSNHArB8u+/evTuysrIwYMAAfPrpp7jzzjuRm5uLsLAwAEBqaiqee+45nDlzBnq93qH3o1OnTnjsscfw7LPPOlS/NswcEBGRd7kxc1BUVKTaSktLqxyurKwMu3fvRnx8vFKm0WgQHx+PrKwsu6eYlZWlqg8ACQkJ1da3Z/fu3SgvL1e1ExUVhWuuuUZpJysrC7169VICA+txioqKcPDgQYePdf78eSUAcQcGB0RE5F1uDA4iIiIQEhKibAsXLqxyuLNnz8JsNqsuwAAQFhaGvLw8u6eYl5fnVP3q2tDr9WjevHm17VR3HOs+R40YMQKffvqpw/Vrw9kKRETkXW68K+OJEydU3QoGg8G1dhuoa6+9FsnJydi+fTv69OkDPz919/6MGTOcao/BARERNVjBwcG1jjkIDQ2FVqutMksgPz8f4eHhdp8THh7uVP3q2igrK0NBQYEqe2DbTnh4eJVZE9bjOnOstLQ0hISEICsrq0rXhxDC6eCA3QpERORV1hUSXd0cpdfrERMTg8zMTKVMlmVkZmYiLi7O7nPi4uJU9QEgIyOj2vr2xMTEwM/PT9XO4cOHkZOTo7QTFxeH/fv3q2ZNZGRkIDg4GD169HD4WL/99lu1W3Z2tsPtWDFzQERE3lUPKyQmJSVhwoQJ6Nu3L/r374+lS5eiuLgYkyZNAmBZfrh9+/bKmIUZM2ZgyJAhWLJkCYYPH47169dj165dSEtLU9o8f/48cnJykJubC8By4Qcs3/jDw8MREhKCyZMnIykpCS1btkRwcDCmTZuGuLg4DBgwAAAwdOhQ9OjRA+PGjcOiRYuQl5eH2bNn4/HHH3eqi+T06dO4fPkyOnXqpJRduHABwcHB0Gq1zr1ZYOaAiIiagNGjR+Ovf/0rkpOTER0djX379mHbtm3K4L+cnBycOnVKqT9w4ECsW7cOaWlp6N27N95//31s2rQJPXv2VOps3rwZffr0wfDhwwEAY8aMQZ8+fVRTHf/2t7/hzjvvxIgRI3DTTTchPDwcGzduVPZrtVp88skn0Gq1iIuLw4MPPojx48dj3rx5Tr2+Rx55RBW4/N///R9CQ0MRGhqKr776yqm2AK5zQERE8O46B9e89rJb1jnIeW62R8+3IenQoQPef/99DBgwAD/++CMGDBiAzz77DFu2bMGXX36JHTt2ONUeuxWIiMirJLjhroxuOZPG49y5c2jXrh0AYNu2bbj99ttx4403IiIiQln4yRnsViAiImrg2rZti19++QWApbvDuvBSaWlplWmNjmDmgIiIvMuN6xyQxcSJE/HAAw+gW7duOHjwID744AMAwM6dO1XjJBzF4ICIiLyrHmYrNHbJyckIDw/HoUOHsHTpUmWNhFtuuQU333yz0+0xOCAiImrgysvLMX78eBiN6oGeHTp0qFN7HHNARETeVQ+3bG7sJkyYgGeeeUZ5PHfuXISEhKBXr1746aefnG6PwQEREXmVt1dIbAq2b9+u3JXx6NGjeOWVV7B8+XLccMMNmDlzptPtsVuBiIi8i2MO3C4/Px+RkZEAgC1btmDIkCEYN24cBgwYgJiYGKfbY+aAiIiogQsNDcWJEycAAFu3blWmMmo0GkiS8zM7mDkgIiLvYubA7UaMGIGJEyeiX79++Oabb/DWW28BAPbt24c//elPTrfH4ICIiLzKHWMGOOZAbdGiRQgICMChQ4ewfv16dO7cGQDwpz/9Cf/4xz+cbo/BARERUQOn1+uxYMGCKuW9evWqU3sMDoiIyLu4QqLPY3BARETexTEHPo+zFYiIiEiFmQMiIvIqDkj0fQwOiIjIu9it4PPYrUBERNTAXbhwAcuXL8ddd92FDh06wGg0okWLFoiOjsa0adPw3XffOdUeMwdERORd7rg3AjMHAIDCwkIsWLAAy5cvx3XXXYfBgwfjnnvuQYsWLVBSUoLc3Fzs2rULd999Nzp37ozXXnsNt912W63tMjggIiLvYreC27z11lsoKirCvn370K1bt2rrlZWVYePGjZg2bRoOHTpUa7sMDoiIyLsYHLjNrFmzHKqn1+sxZswYjB492qH6HHNARETURDh6EyYGB0RE5FXWqYyubqRWWlqKV199Fb1790ZAQAACAgIQHR2NV199FWVlZU61xW4FIiKiBq68vBy33347srKycPvtt+PWW28FABw+fBgvvfQSPv30U3z++efw8/NzqD0GB0RERA3c0qVLcejQIezatQu9e/dW7fvpp59wyy23YOnSpXjmmWccao/dCkRE5F3CTRsp3nvvPSQnJ1cJDADg+uuvx7x587B+/XqH22NwQEREXsUxB+7366+/4sYbb6x2/8CBA3H48GGH22NwQERE1MDJsowWLVooj/Pz83Hvvfcqj1u3bu3weAOAwQEREdUHdim4VWRkpCozUFxcjIyMDOVxdnY2OnXq5HB7HJBIRETe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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mags = cutoffPercentile(magnitudes, 99.999)\n", "\n", "fig,ax = plt.subplots()\n", "plt.title(\"1A Current Circular Coil and Magnetic Field (G)\")\n", "\n", "ax.xaxis.set_major_locator(ticker.NullLocator())\n", "ax.yaxis.set_major_locator(ticker.NullLocator())\n", "\n", "im = ax.imshow(mags[:,:,0]*10000) # Convert to Gauss units\n", "cbar = ax.figure.colorbar(im, ax=ax)\n", "cbar.ax.set_ylabel(\"Gauss (G)\", rotation=-90, va=\"bottom\")\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 22, "id": "c5bcdf02-6c78-4e37-b443-6730ceede184", "metadata": { "scrolled": true }, "outputs": [], "source": [ "bField = cellCanvas2" ] }, { "cell_type": "code", "execution_count": 23, "id": "ffb1c76f-1fb1-4882-8488-aac4b00e0015", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(400, 400, 400, 3)\n", "(200, 200, 200, 3)\n" ] } ], "source": [ "doubleShape = tuple( x*2 for x in bField.shape[: - 1]) + (bField.shape[-1],)\n", "cellsCanvas = np.zeros(doubleShape)\n", "print (cellsCanvas.shape)\n", "print (bField.shape)" ] }, { "cell_type": "code", "execution_count": null, "id": "53bad010-9c40-48bd-8f05-fa6128535fb5", "metadata": {}, "outputs": [], "source": [ "cellsCanvas[meshsize:2*meshsize, meshsize:2*meshsize, meshsize:2*meshsize] = bField\n", "cellsCanvas[meshsize-1::-1, meshsize:2*meshsize,meshsize:2*meshsize] = bField\n", "cellsCanvas[meshsize-1::-1, meshsize-1::-1, meshsize:2*meshsize] = bField\n", "cellsCanvas[meshsize:2*meshsize, meshsize-1::-1, meshsize:2*meshsize] = bField" ] }, { "cell_type": "code", "execution_count": null, "id": "0ccca3a9-7d4e-453c-8174-6f89c2166fd5", "metadata": {}, "outputs": [], "source": [ "%time magnitudes = np.linalg.norm( cellsCanvas * mu0/(4*np.pi), axis=-1)" ] }, { "cell_type": "code", "execution_count": 40, "id": "a248f9e4-cd0e-4dc6-b05a-51d97867c682", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mags = cutoffPercentile(magnitudes, 99.9)\n", "\n", "fig,ax = plt.subplots()\n", "plt.title(\"1A Current Circular Coil and Magnetic Field (G)\")\n", "\n", "ax.xaxis.set_major_locator(ticker.NullLocator())\n", "ax.yaxis.set_major_locator(ticker.NullLocator())\n", "\n", "im = ax.imshow(mags*10000) # Convert to Gauss units\n", "cbar = ax.figure.colorbar(im, ax=ax)\n", "cbar.ax.set_ylabel(\"Gauss (G)\", rotation=-90, va=\"bottom\")\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "id": "89cc1415-5f49-4105-8d44-9bab8e5259d9", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.8.10" } }, "nbformat": 4, "nbformat_minor": 5 }