from geoscilabs.em.PlanewaveWidgetFD import PlanewaveWidget, PolarEllipse, InteractivePlaneProfile
from geoscilabs.em.DipoleWidgetFD import InteractiveDipoleProfile
from geoscilabs.em.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()
dwidget.InteractivePlaneWave()
InteractivePlaneProfile()
Polarwidget = PolarEllipse();
Polarwidget.Interactive()