{ "cells": [ { "cell_type": "markdown", "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": { "col": 0, "height": 6, "hidden": true, "row": 0, "width": 12 }, "report_default": {} } } }, "nbpresent": { "id": "e3a4dd9c-3f24-48d6-ad9b-4edbe3248df9" } }, "source": [ "This is the Jupyter Notebook, an interactive coding and computation environment. For this lab, you do not have to write any code, you will only be running it. \n", "\n", "To use the notebook:\n", "- \"Shift + Enter\" runs the code within the cell (so does the forward arrow button near the top of the document)\n", "- You can alter variables and re-run cells\n", "- If you want to start with a clean slate, restart the Kernel either by going to the top, clicking on Kernel: Restart, or by \"esc + 00\" (if you do this, you will need to re-run the following block of code before running any other cells in the notebook) " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": { "hidden": true }, "report_default": {} } } }, "nbpresent": { "id": "c59bfd9b-4293-433e-83db-820c33f4c378" } }, "outputs": [], "source": [ "%matplotlib inline\n", "from IPython.display import display\n", "from em_examples.PlanewaveWidgetFD import PlanewaveWidget, PolarEllipse, InteractivePlaneProfile\n", "from em_examples.DipoleWidgetFD import InteractiveDipoleProfile\n", "from em_examples.VolumeWidgetPlane import InteractivePlanes, plotObj3D" ] }, { "cell_type": "markdown", "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": { "col": 0, "height": 4, "hidden": true, "row": 6, "width": 4 }, "report_default": {} } } }, "nbpresent": { "id": "95f1e819-0749-42ff-ad94-6d428298a5a7" } }, "source": [ "# Planewave propagation in a Whole-space (frequency-domain)" ] }, { "cell_type": "markdown", "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": { "col": 4, "height": 4, "hidden": true, "row": 6, "width": 4 }, "report_default": {} } } }, "nbpresent": { "id": "3bd63ed4-b758-48e5-a662-b68e4b2ce034" } }, "source": [ "# Purpose\n", "\n", "We visualizae downward propagating planewave in the homogeneous earth medium. With the three apps: a) Plane wave app, b) Profile app, and c) Polarization ellipse app, we understand fundamental concepts of planewave propagation. \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Set up\n", "\n", "Planewave EM equation can be written as \n", "\n", "$$\\frac{\\partial^2 \\mathbf{E}}{\\partial z^2} + k^2 \\mathbf{E} = 0,$$\n", "\n", "For homogeneous earth, solution can be simply derived:\n", "\n", "\n", "$$\\mathbf{E} = \\mathbf{E}_0 e^{ikz}$$\n", "\n", "$$\\mathbf{H} = - i \\omega \\mu \\nabla \\times (\\mathbf{E}_0 e^{ikz}).$$\n", "\n", "where complex wavenumber $k$ is \n", "\n", "$$ k = \\sqrt{\\mu \\epsilon \\omega^2 - i \\mu \\sigma \\omega}.$$\n", "\n", "In time domain, the wave travelling in the negative z-direction has the form:\n", "\n", "$$ \\mathbf{e} = \\mathbf{e}_0^- e^{i(k z + \\omega t)}.$$" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": { "col": 8, "height": 21, "hidden": false, "row": 0, "width": 4 }, "report_default": {} } } }, "nbpresent": { "id": "baf63d98-9356-4c2d-81d7-8f8cd1a6da2d" } }, "outputs": [], "source": [ "ax = plotObj3D()" ] }, { "cell_type": "markdown", "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": { "col": 8, "height": 14, "hidden": true, "row": 14, "width": null }, "report_default": {} } } }, "nbpresent": { "id": "4cca45b8-6d74-43f2-b3aa-2f1f3ece54f3" } }, "source": [ "# Planewave app\n", "\n", "## Parameters:\n", "\n", "- Field: Type of EM fields (\"Ex\": electric field, \"Hy\": magnetic field)\n", "- AmpDir: Type of the vectoral EM fields \n", "\n", " None: $F_x$ or $F_y$ or $F_z$\n", " \n", " Amp: $\\mathbf{F} \\cdot \\mathbf{F}^* = |\\mathbf{F}|^2$\n", " \n", " Dir: Real part of a vectoral EM fields, $\\Re[\\mathbf{F}]$\n", " \n", "- ComplexNumber: Type of complex data (\"Re\", \"Im\", \"Amp\", \"Phase\") \n", "- Frequency: Transmitting frequency (Hz)\n", "- Sigma: Conductivity of homogeneous earth (S/m)\n", "- Scale: Choose \"log\" or \"linear\" scale \n", "- Time: " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": { "col": 0, "height": 21, "hidden": false, "row": 0, "width": 8 }, "report_default": {} } } }, "nbpresent": { "id": "d4efa881-fa5c-4ecc-87b0-47f53e865a5f" } }, "outputs": [], "source": [ "dwidget = PlanewaveWidget()\n", "Q = dwidget.InteractivePlaneWave()\n", "display(Q)" ] }, { "cell_type": "markdown", "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": { "col": 4, "height": 4, "hidden": true, "row": 13, "width": 4 }, "report_default": {} } } } }, "source": [ "# Profile app\n", "\n", "We visualize EM fields at vertical profile (marked as red dots in the above app). \n", "\n", "## Parameters:\n", "\n", "- **Field**: Ex, Hy, and Impedance \n", "- ** $\\sigma$ **: Conductivity (S/m)\n", "- **Scale**: Log10 or Linear scale\n", "- **Fixed**: Fix the scale or not\n", "- **$f$**: Frequency\n", "- **$t$**: Time\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": { "col": 0, "height": 17, "hidden": false, "row": 21, "width": 8 }, "report_default": {} } } }, "scrolled": false }, "outputs": [], "source": [ "display(InteractivePlaneProfile())" ] }, { "cell_type": "markdown", "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": { "col": 8, "height": 4, "hidden": true, "row": 14, "width": 4 }, "report_default": {} } } } }, "source": [ "# Polarization Ellipse app" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": { "col": 0, "height": 13, "hidden": false, "row": 38, "width": 8 }, "report_default": {} } } }, "scrolled": false }, "outputs": [], "source": [ "Polarwidget = PolarEllipse(); \n", "Polarwidget.Interactive()" ] } ], "metadata": { "anaconda-cloud": {}, "extensions": { "jupyter_dashboards": { "activeView": "grid_default", "version": 1, "views": { "grid_default": { "cellMargin": 10, "defaultCellHeight": 20, "maxColumns": 12, "name": "grid", "type": "grid" }, "report_default": { "name": "report", "type": "report" } } } }, "kernelspec": { "display_name": "Python [default]", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" }, "nbpresent": { "slides": { "18cc87f9-a29c-43fe-a307-094e80f187ec": { "id": "18cc87f9-a29c-43fe-a307-094e80f187ec", "prev": "47ebf514-9d62-497c-ae0e-da3d22b7a793", "regions": { "81dc0ef7-16af-48ca-9707-b6626f7b5ef3": { "attrs": { "height": 0.8, "width": 0.8, "x": 0.1, "y": 0.1 }, "content": { "cell": "c59bfd9b-4293-433e-83db-820c33f4c378", "part": "whole" }, "id": "81dc0ef7-16af-48ca-9707-b6626f7b5ef3" } } }, "245f2cbf-072e-429f-b8c2-3a155572cae5": { "id": "245f2cbf-072e-429f-b8c2-3a155572cae5", "prev": "d4aec013-fcfb-4601-928a-08cb129f1ab6", "regions": { "f58b4744-dda4-46e7-a2b6-132966aebb6c": { "attrs": { "height": 0.8, "width": 0.8, "x": 0.1, "y": 0.1 }, "content": { "cell": "9cbd4d35-95ab-4b4c-bc7b-ef4c7a5bd601", "part": "whole" }, "id": "f58b4744-dda4-46e7-a2b6-132966aebb6c" } } }, "47ebf514-9d62-497c-ae0e-da3d22b7a793": { "id": "47ebf514-9d62-497c-ae0e-da3d22b7a793", "prev": null, "regions": { "201b2767-c7c4-42a9-8972-0fb07ea027df": { "attrs": { "height": 0.7999999999999999, "width": 0.8, "x": -0.02479871175523355, "y": 0.1261227410985866 }, "content": { "cell": "e3a4dd9c-3f24-48d6-ad9b-4edbe3248df9", "part": "whole" }, "id": "201b2767-c7c4-42a9-8972-0fb07ea027df" } } }, "4cff681d-a824-462c-82c4-6c9dab0650f1": { "id": "4cff681d-a824-462c-82c4-6c9dab0650f1", "prev": "a0099cd8-0e6d-497b-8eee-1c9a9352e2a3", "regions": { "402b6864-2649-41f1-9713-ae5f6bf3b115": { "attrs": { "height": 0.8, "width": 0.8, "x": 0.1, "y": 0.1 }, "content": { "cell": "3bd63ed4-b758-48e5-a662-b68e4b2ce034", "part": "whole" }, "id": "402b6864-2649-41f1-9713-ae5f6bf3b115" } } }, "51a59c43-c682-499d-b8a9-bf6c793cbe75": { "id": "51a59c43-c682-499d-b8a9-bf6c793cbe75", "prev": "b2754f55-e10b-4a02-b5e1-618bc5d423f0", "regions": { "15926dd2-ff48-4df3-a8be-e4b86ea2cd4f": { "attrs": { "height": 0.8, "width": 0.8, "x": 0.1, "y": 0.1 }, "content": { "cell": "baf63d98-9356-4c2d-81d7-8f8cd1a6da2d", "part": "whole" }, "id": "15926dd2-ff48-4df3-a8be-e4b86ea2cd4f" } } }, "5dd85aee-5025-4fe2-a90c-d80de7f8d456": { "id": "5dd85aee-5025-4fe2-a90c-d80de7f8d456", "prev": "bf7c1942-c97d-4023-8cc8-62a6369c6229", "regions": { "a022dc82-caf9-430a-8e77-7a155085aee5": { "attrs": { "height": 0.8, "width": 0.8, "x": 0.1, "y": 0.1 }, "content": { "cell": "d4efa881-fa5c-4ecc-87b0-47f53e865a5f", "part": "whole" }, "id": "a022dc82-caf9-430a-8e77-7a155085aee5" } } }, "7dad038d-3585-4d4a-acb4-d2388b117b7e": { "id": "7dad038d-3585-4d4a-acb4-d2388b117b7e", "prev": "5dd85aee-5025-4fe2-a90c-d80de7f8d456", "regions": { "e526da6b-003d-4015-8900-386d21051974": { "attrs": { "height": 0.8, "width": 0.8, "x": 0.1, "y": 0.1 }, "content": { "cell": "c3075a3b-0158-49f6-9d38-ed7372a4761c", "part": "whole" }, "id": "e526da6b-003d-4015-8900-386d21051974" } } }, "81c72ec7-c7a8-45e6-9649-080db72a3bf9": { "id": "81c72ec7-c7a8-45e6-9649-080db72a3bf9", "prev": "4cff681d-a824-462c-82c4-6c9dab0650f1", "regions": { "98e755fa-d098-4ebf-9481-63e3fed6a783": { "attrs": { "height": 0.8, "width": 0.8, "x": 0.1, "y": 0.1 }, "content": { "cell": "09257b6f-48e9-426c-a0f3-d1a60beb3ad0", "part": "whole" }, "id": "98e755fa-d098-4ebf-9481-63e3fed6a783" } } }, "8a528caa-079f-4215-b8b8-28302cc93a3e": { "id": "8a528caa-079f-4215-b8b8-28302cc93a3e", "prev": "7dad038d-3585-4d4a-acb4-d2388b117b7e", "regions": { "8304fb51-067b-42fd-b53a-e3a1d9e04272": { "attrs": { "height": 0.8, "width": 0.8, "x": 0.1, "y": 0.1 }, "content": { "cell": "0053bec8-5b59-4ae4-b760-37bdf85ed0d8", "part": "whole" }, "id": "8304fb51-067b-42fd-b53a-e3a1d9e04272" } } }, "a0099cd8-0e6d-497b-8eee-1c9a9352e2a3": { "id": "a0099cd8-0e6d-497b-8eee-1c9a9352e2a3", "prev": "245f2cbf-072e-429f-b8c2-3a155572cae5", "regions": { "11eb3f79-3a55-4a7b-a77f-7a29de426686": { "attrs": { "height": 0.8, "width": 0.8, "x": 0.1, "y": 0.1 }, "content": { "cell": "c0138e15-c392-4695-9627-578e85ae9c0a", "part": "whole" }, "id": "11eb3f79-3a55-4a7b-a77f-7a29de426686" } } }, "a3506cf3-dd45-4e72-86bb-af1f5dc15b15": { "id": "a3506cf3-dd45-4e72-86bb-af1f5dc15b15", "prev": "8a528caa-079f-4215-b8b8-28302cc93a3e", "regions": { "c31fa94d-0be2-484b-8fc7-21f845ecd9e7": { "attrs": { "height": 0.8, "width": 0.8, "x": 0.1, "y": 0.1 }, "content": { "cell": "3eafb99a-a449-44ad-92ca-c5759984f87c", "part": "whole" }, "id": "c31fa94d-0be2-484b-8fc7-21f845ecd9e7" } } }, "b2754f55-e10b-4a02-b5e1-618bc5d423f0": { "id": "b2754f55-e10b-4a02-b5e1-618bc5d423f0", "prev": "c1556db0-f27c-4a07-a6ee-218b6da5228f", "regions": { "6ce0b2c5-9f8e-414c-b578-d1fb9537a350": { "attrs": { "height": 0.8, "width": 0.8, "x": 0.1, "y": 0.1 }, "content": { "cell": "53198a70-4798-4da9-8ce3-43a14b3086f2", "part": "whole" }, "id": "6ce0b2c5-9f8e-414c-b578-d1fb9537a350" } } }, "bf7c1942-c97d-4023-8cc8-62a6369c6229": { "id": "bf7c1942-c97d-4023-8cc8-62a6369c6229", "prev": "f2016771-0d1f-4b36-a992-3ed37d96db8d", "regions": { "d2c780fd-f02d-4b23-855d-7268418a9a6b": { "attrs": { "height": 0.8, "width": 0.8, "x": 0.1, "y": 0.1 }, "content": { "cell": "4cca45b8-6d74-43f2-b3aa-2f1f3ece54f3", "part": "whole" }, "id": "d2c780fd-f02d-4b23-855d-7268418a9a6b" } } }, "c1556db0-f27c-4a07-a6ee-218b6da5228f": { "id": "c1556db0-f27c-4a07-a6ee-218b6da5228f", "prev": "81c72ec7-c7a8-45e6-9649-080db72a3bf9", "regions": { "e8e03a1b-fce6-4369-b5e0-6f4c0d98fd48": { "attrs": { "height": 0.8, "width": 0.8, "x": 0.1, "y": 0.1 }, "content": { "cell": "b9b7af2b-084a-4f24-9c1f-6c681e30fd35", "part": "whole" }, "id": "e8e03a1b-fce6-4369-b5e0-6f4c0d98fd48" } } }, "d4aec013-fcfb-4601-928a-08cb129f1ab6": { "id": "d4aec013-fcfb-4601-928a-08cb129f1ab6", "prev": "18cc87f9-a29c-43fe-a307-094e80f187ec", "regions": { "959cec78-5304-4c08-be1c-372309852edb": { "attrs": { "height": 0.8, "width": 0.8, "x": 0.1, "y": 0.1 }, "content": { "cell": "95f1e819-0749-42ff-ad94-6d428298a5a7", "part": "whole" }, "id": "959cec78-5304-4c08-be1c-372309852edb" } } }, "f2016771-0d1f-4b36-a992-3ed37d96db8d": { "id": "f2016771-0d1f-4b36-a992-3ed37d96db8d", "prev": "51a59c43-c682-499d-b8a9-bf6c793cbe75", "regions": { "f238a22f-46b8-43ff-b102-98cb6289f575": { "attrs": { "height": 0.8, "width": 0.8, "x": 0.1, "y": 0.1 }, "content": { "cell": "100a2463-b8e6-4c4c-9cfc-5ea61334779e", "part": "whole" }, "id": "f238a22f-46b8-43ff-b102-98cb6289f575" } } } }, "themes": {} }, "widgets": { "state": { "6711a1c5fb74421a8cb9f258aafb0c70": { "views": [ { "cell_index": 7 } ] }, "97e35c898161466e89cc45034dcbd498": { "views": [ { "cell_index": 9 } ] }, "e1d82c42c7af4010b72f3dc56080cc6c": { "views": [ { "cell_index": 11 } ] } }, "version": "1.2.0" } }, "nbformat": 4, "nbformat_minor": 1 }