{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "from SimPEG import Mesh, Maps, EM, Utils\n", "import numpy as np\n", "from IPython.display import display\n", "from em_examples.TransientVMDCylWidget import TransientVMDCylWidget\n", "%pylab inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Title: Horizontal current loop in Layered Earth (Time domain)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Purpose\n", "\n", "By injecting half-duty cycle current (having on- and off-time) to a loop, we inductively excite the earth medium. Often only \"off-time\" data are considered as measured data. For computation of this transient EM field, a step-off current having infinite duration of on-time is assumed. Here by using step-off current, we excite conductive layered-earth medium, explore propagation of EM fields in the earth (e.g. smoke ring), and investigate how different types of measured EM responses at a receiver location changes upon varying layered conductivity structures. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Set up\n", "\n", "We consider a time domain airborne EM or small-loop EM survey, of which a horizontal current loop is deployed in the air having zero conductivity (i.e. no conduction currents). After the current is off, secondary currents will be induced in conductive earth medium, and propagate as like \"smoke-ring\" in time. Here, we assume structure of the earth is layered, and we limit our attention to four layeres. Below Figure shows our setup, and each layer can have different electrical conductivity. Susceptibility of whole domain is fixed to zero (i.e. $\\mu=\\mu_0$). There are two apps provided: a) Fields app and b) Data app. \n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Questions\n", "\n", "- Q1: Run below Field app, and change \"Update\" to \"False\" to explore computed EM fields. Then move the slider bar for \"Time\" to see propagation of induced electric field in time (smoke ring). Describe the propagation of electric field in time. \n", "\n", "\n", "- Q2: Now we want to recognize how this EM propagation in half-space earth was different from that in homogeneous earth, so set $\\sigma_0$ to 0.01 S/m (making $\\sigma_0=\\sigma_1=\\sigma_2=\\sigma_3$ = 0.01 S/m). Note that you should make \"Update\" to \"True\" to update computed EM fields upon your changes, then make it \"False\" to explore. Observe propagation of $E_y$ field in time, what is the main difference? and why that is happening?\n", "\n", "\n", "- Q3: Back to the default half-space model, then similarly set \"Update\" to \"False\". Rotating electrical field is generated by time-varying magnetic flux, so let's see how dB/dt field propagate in time. Set \"Field\" to \"dBdt\", and \"AmpDir\" to \"Direction\". Move \"Time index\" slide bar, and observe how dB/dt propagate in time; while moving \"Time index\" go back and force to $E_y$ field. Note that you should change \"AmpDir\" to \"None\" to see $E_y$ field. Can you understand how dB/dt generates rotating electric field? (Faraday's Law)\n", "\n", "\n", "- Q4: With the same setup, just change \"Field\" to \"J\" to see $J_y$, what is the difference between $E_y$ and $J_y$? Why this difference is occured?\n", "\n", "\n", "- Q5: With the current density, magnetic flux density can be computed using Biot-Savart law. Go back and forth between $E_y$ and $\\mathbf{B}$ while you are moving \"Time index\". Do you understand how magnetic flux can be generated from currents? (Ampere's Law)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fields app\n", "\n", "Here we explore EM fields due to a horizontal current loop source. We let an arbitrary EM fields as $\\mathbf{F}$, then this will be a function of various parameters given below. By using this Field app, you can change a parameter such as time, then can observe changes of EM fields immediately. Hence, this tool will allow you to explore how EM fields changes upon your changes in parameters. \n", "\n", "## Parameters:\n", "\n", "- Update: Activate or deactivate full time simulation\n", " \n", " True: in this mode, you are running full time simulation for any change in the parameters \n", " False: in this mode, you are not running simulation, but can see stored EM fields for previous computation\n", " \n", " \n", "- Field: Type of EM fields (\"E\": electric field, \"B\": magnetic flux density, \"dBdt\": time derivative of magnetic flux density, \"J\": current density)\n", "- AmpDir: Type of the vectoral EM fields \n", "\n", " None: $F_x$ or $F_y$ or $F_z$\n", " \n", " Dir: Vectoral EM fields (either Real or Imaginary)\n", " \n", "- Comp.: Direction of $\\mathbf{F}$ at Rx locations \n", "- Time index: index of time (actual time in ms is shown in the app)\n", "- $\\sigma_0$: Conductivity of 0th layer\n", "- $\\sigma_1$: Conductivity of 1st layer\n", "- $\\sigma_2$: Conductivity of 2nd layer\n", "- $\\sigma_3$: Conductivity of 3rd layer\n", "- $z$: Height of the Tx from the surface (0 m)\n", "- $h_1$: Thickness of the first layer\n", "- $h_2$: Thickness of the second layer\n", "- Scale: Scale of values (\"log\" or \"linear\")\n", "- $x$ (m): Tx-Rx offset\n", "- Tx radius (m): Radius of a horizontal current loop" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "scrolled": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Widget Javascript not detected. It may not be installed or enabled properly.\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "55598e0e74624d0c873967ec0549c843" } }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vmd = TransientVMDCylWidget()\n", "Q1 = vmd.InteractivePlane()\n", "display(Q1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Data app\n", "\n", "In this app, will show the meausred data upon the parameters that you have used in the previous app. Note that if you want to see changes in the data due to updates of the parameters (such as $\\sigma$), then \"you should run the previous Field app first\". \n", "\n", "## Parameters:\n", "\n", "## Parameters:\n", "\n", "- Field: Type of EM fields (\"E\": electric field, \"B\": total magnetic flux density, \"dBdt\": time derivative of magnetic field)\n", "- Comp.: Direction of EM field at Rx locations \n", "- Scale: Scale of values (\"log\" or \"linear\")" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "8cef98c04fa0482ea379b7e1c073b44f" } }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Q2 = vmd.InteractiveData()\n", "display(Q2)" ] } ], "metadata": { "anaconda-cloud": {}, "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" }, "widgets": { "state": { "232378444f9f48d99230ca9e003bc8ca": { "views": [ { "cell_index": 6 } ] }, "7b265748271e418b96e2bd712a45d57c": { "views": [ { "cell_index": 8 } ] } }, "version": "1.2.0" } }, "nbformat": 4, "nbformat_minor": 1 }