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.
To use the notebook:
%matplotlib inline
from IPython.display import display
from em_examples.PlanewaveWidgetFD import PlanewaveWidget, PolarEllipse, InteractivePlaneProfile
from em_examples.DipoleWidgetFD import InteractiveDipoleProfile
from em_examples.VolumeWidgetPlane import InteractivePlanes, plotObj3D
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.
Planewave EM equation can be written as
$$\frac{\partial^2 \mathbf{E}}{\partial z^2} + k^2 \mathbf{E} = 0,$$For homogeneous earth, solution can be simply derived:
$$\mathbf{E} = \mathbf{E}_0 e^{ikz}$$$$\mathbf{H} = - i \omega \mu \nabla \times (\mathbf{E}_0 e^{ikz}).$$where complex wavenumber $k$ is
$$ k = \sqrt{\mu \epsilon \omega^2 - i \mu \sigma \omega}.$$In time domain, the wave travelling in the negative z-direction has the form:
$$ \mathbf{e} = \mathbf{e}_0^- e^{i(k z + \omega t)}.$$ax = plotObj3D()
Field: Type of EM fields ("Ex": electric field, "Hy": magnetic field)
AmpDir: Type of the vectoral EM fields
None: $F_x$ or $F_y$ or $F_z$
Amp: $\mathbf{F} \cdot \mathbf{F}^* = |\mathbf{F}|^2$
Dir: Real part of a vectoral EM fields, $\Re[\mathbf{F}]$
ComplexNumber: Type of complex data ("Re", "Im", "Amp", "Phase")
Frequency: Transmitting frequency (Hz)
Sigma: Conductivity of homogeneous earth (S/m)
Scale: Choose "log" or "linear" scale
Time:
dwidget = PlanewaveWidget()
Q = dwidget.InteractivePlaneWave()
display(Q)
display(InteractivePlaneProfile())
Polarwidget = PolarEllipse();
Polarwidget.Interactive()