{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Line object" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import discretisedfield as df\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "mesh = df.Mesh(p1=(-10e-9, -10e-9, -10e-9), p2=(15e-9, 10e-9, 5e-9), cell=(1e-9, 1e-9, 1e-9))\n", "\n", "def value_fun(point):\n", " x, y, z = point\n", " c = 1e9\n", " if x < -5e-9: \n", " return (0, y*c, z*c)\n", " else:\n", " return (x*c, 2*y*c, 3*z*c)\n", "\n", "field = df.Field(mesh, dim=3, value=value_fun, norm=1e6)\n", "\n", "line = field.line(p1=(-10e-9, 0, 0), p2=(10e-9, 0, 0), n=30)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ " r px py pz vx vy \\\n", "0 0.000000e+00 -1.000000e-08 0.0 0.0 0.000000 707106.781187 \n", "1 6.896552e-10 -9.310345e-09 0.0 0.0 0.000000 707106.781187 \n", "2 1.379310e-09 -8.620690e-09 0.0 0.0 0.000000 707106.781187 \n", "3 2.068966e-09 -7.931034e-09 0.0 0.0 0.000000 707106.781187 \n", "4 2.758621e-09 -7.241379e-09 0.0 0.0 0.000000 707106.781187 \n", "5 3.448276e-09 -6.551724e-09 0.0 0.0 0.000000 707106.781187 \n", "6 4.137931e-09 -5.862069e-09 0.0 0.0 0.000000 707106.781187 \n", "7 4.827586e-09 -5.172414e-09 0.0 0.0 0.000000 707106.781187 \n", "8 5.517241e-09 -4.482759e-09 0.0 0.0 -928279.121633 206284.249252 \n", "9 6.206897e-09 -3.793103e-09 0.0 0.0 -889000.889001 254000.254000 \n", "10 6.896552e-09 -3.103448e-09 0.0 0.0 -889000.889001 254000.254000 \n", "11 7.586207e-09 -2.413793e-09 0.0 0.0 -811107.105654 324442.842262 \n", "12 8.275862e-09 -1.724138e-09 0.0 0.0 -639602.149067 426401.432711 \n", "13 8.965517e-09 -1.034483e-09 0.0 0.0 -639602.149067 426401.432711 \n", "14 9.655172e-09 -3.448276e-10 0.0 0.0 -267261.241912 534522.483825 \n", "15 1.034483e-08 3.448276e-10 0.0 0.0 267261.241912 534522.483825 \n", "16 1.103448e-08 1.034483e-09 0.0 0.0 639602.149067 426401.432711 \n", "17 1.172414e-08 1.724138e-09 0.0 0.0 639602.149067 426401.432711 \n", "18 1.241379e-08 2.413793e-09 0.0 0.0 811107.105654 324442.842262 \n", "19 1.310345e-08 3.103448e-09 0.0 0.0 889000.889001 254000.254000 \n", "20 1.379310e-08 3.793103e-09 0.0 0.0 889000.889001 254000.254000 \n", "21 1.448276e-08 4.482759e-09 0.0 0.0 928279.121633 206284.249252 \n", "22 1.517241e-08 5.172414e-09 0.0 0.0 950255.268139 172773.685116 \n", "23 1.586207e-08 5.862069e-09 0.0 0.0 950255.268139 172773.685116 \n", "24 1.655172e-08 6.551724e-09 0.0 0.0 963624.111659 148249.863332 \n", "25 1.724138e-08 7.241379e-09 0.0 0.0 972305.585328 129640.744710 \n", "26 1.793103e-08 7.931034e-09 0.0 0.0 972305.585328 129640.744710 \n", "27 1.862069e-08 8.620690e-09 0.0 0.0 978240.074002 115087.067530 \n", "28 1.931034e-08 9.310345e-09 0.0 0.0 982466.610991 103417.537999 \n", "29 2.000000e-08 1.000000e-08 0.0 0.0 985578.834374 93864.650893 \n", "\n", " vz \n", "0 707106.781187 \n", "1 707106.781187 \n", "2 707106.781187 \n", "3 707106.781187 \n", "4 707106.781187 \n", "5 707106.781187 \n", "6 707106.781187 \n", "7 707106.781187 \n", "8 309426.373878 \n", "9 381000.381001 \n", "10 381000.381001 \n", "11 486664.263392 \n", "12 639602.149067 \n", "13 639602.149067 \n", "14 801783.725737 \n", "15 801783.725737 \n", "16 639602.149067 \n", "17 639602.149067 \n", "18 486664.263392 \n", "19 381000.381001 \n", "20 381000.381001 \n", "21 309426.373878 \n", "22 259160.527674 \n", "23 259160.527674 \n", "24 222374.794998 \n", "25 194461.117066 \n", "26 194461.117066 \n", "27 172630.601295 \n", "28 155126.306999 \n", "29 140796.976339 " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "line" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "line.dim" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2e-08" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "line.length" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "line.mpl(marker='o')" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "196524434df04eb8bf1fae1083378e52", "version_major": 2, "version_minor": 0 }, "text/plain": [ "SelectionRangeSlider(description='r (nm):', index=(0, 29), options=((0.0, 0.0), (0.69, 6.896551724137937e-10),…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "line.slider()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2e-08" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "line.length" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "7f7862158c324e28880c0c210b51aa8a", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(SelectionRangeSlider(description='r (nm):', index=(0, 29), options=((0.0, 0.0), (0.69, 6…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "@df.interact(xlim=line.slider(),\n", " yaxis=line.selector())\n", "def myplot(xlim, yaxis):\n", " return line.mpl(figsize=(10, 6), yaxis=yaxis, marker='o', xlim=xlim)" ] } ], "metadata": { "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.8.3" } }, "nbformat": 4, "nbformat_minor": 4 }