From 7107cd9d94c392d37b007ddea36a05d5fae3bca3 Mon Sep 17 00:00:00 2001 From: Lindsey Heagy Date: Tue, 19 Jan 2016 23:57:41 -0800 Subject: [PATCH] plot a harmonic mag dipole --- .../EM_Analytic_MagDipoleWholespace.py | 47 +++++++++++++++++++ SimPEG/Examples/__init__.py | 3 +- .../EM_Analytic_MagDipoleWholespace.rst | 26 ++++++++++ 3 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 SimPEG/Examples/EM_Analytic_MagDipoleWholespace.py create mode 100644 docs/examples/EM_Analytic_MagDipoleWholespace.rst diff --git a/SimPEG/Examples/EM_Analytic_MagDipoleWholespace.py b/SimPEG/Examples/EM_Analytic_MagDipoleWholespace.py new file mode 100644 index 00000000..31408bcc --- /dev/null +++ b/SimPEG/Examples/EM_Analytic_MagDipoleWholespace.py @@ -0,0 +1,47 @@ +from SimPEG import * +import SimPEG.EM as EM + +import matplotlib.pyplot as plt +from matplotlib.colors import LogNorm + +x = np.arange(-100.5,100.5,step = 1.) #(avoid putting measurement points where source is located) +y = np.r_[0] +z = x + +sig = 1. +freq = 1. + +XYZ = Utils.ndgrid(x,y,z) + + +def run(XYZ=XYZ,sig=sig,freq=freq,orientation='Z', plotIt=True): + """ + EM: Magnetic Dipole in a Whole-Space + ==================================== + + Here we plot the magnetic flux density from a harmonic dipole in a wholespace. + + """ + + Bx, By, Bz = EM.Analytics.FDEM.MagneticDipoleWholeSpace(XYZ, np.r_[0.,0.,0.], sig, freq,orientation=orientation) + absB = np.sqrt(Bx*Bx.conj()+By*By.conj()+Bz*Bz.conj()).real + + + if plotIt: + fig, ax = plt.subplots(1,1,figsize=(6,5)) + bxplt = Bx.reshape(x.size,z.size) + bzplt = Bz.reshape(x.size,z.size) + pc = ax.pcolor(x,z,absB.reshape(x.size,z.size),norm=LogNorm()) + ax.streamplot(x,z,bxplt.real,bzplt.real,color='k',density=1) + ax.set_xlim([x.min(),x.max()]) + ax.set_ylim([z.min(),z.max()]) + ax.set_xlabel('x') + ax.set_ylabel('z') + cb = plt.colorbar(pc,ax = ax) + cb.set_label('|B| (T)') + plt.show() + + return fig, ax + +if __name__ == '__main__': + run() \ No newline at end of file diff --git a/SimPEG/Examples/__init__.py b/SimPEG/Examples/__init__.py index 78b7c5a6..055feeac 100644 --- a/SimPEG/Examples/__init__.py +++ b/SimPEG/Examples/__init__.py @@ -1,6 +1,7 @@ # Run this file to add imports. ##### AUTOIMPORTS ##### +import EM_Analytic_MagDipoleWholespace import EM_TDEM_1D_Inversion import FLOW_Richards_1D_Celia1990 import Forward_BasicDirectCurrent @@ -13,7 +14,7 @@ import Mesh_QuadTree_FaceDiv import Mesh_QuadTree_HangingNodes import Mesh_Tensor_Creation -__examples__ = ["EM_TDEM_1D_Inversion", "FLOW_Richards_1D_Celia1990", "Forward_BasicDirectCurrent", "Inversion_Linear", "Mesh_Basic_PlotImage", "Mesh_Basic_Types", "Mesh_Operators_CahnHilliard", "Mesh_QuadTree_Creation", "Mesh_QuadTree_FaceDiv", "Mesh_QuadTree_HangingNodes", "Mesh_Tensor_Creation"] +__examples__ = ["EM_Analytic_MagDipoleWholespace", "EM_TDEM_1D_Inversion", "FLOW_Richards_1D_Celia1990", "Forward_BasicDirectCurrent", "Inversion_Linear", "Mesh_Basic_PlotImage", "Mesh_Basic_Types", "Mesh_Operators_CahnHilliard", "Mesh_QuadTree_Creation", "Mesh_QuadTree_FaceDiv", "Mesh_QuadTree_HangingNodes", "Mesh_Tensor_Creation"] ##### AUTOIMPORTS ##### diff --git a/docs/examples/EM_Analytic_MagDipoleWholespace.rst b/docs/examples/EM_Analytic_MagDipoleWholespace.rst new file mode 100644 index 00000000..bfe8d33b --- /dev/null +++ b/docs/examples/EM_Analytic_MagDipoleWholespace.rst @@ -0,0 +1,26 @@ +.. _examples_EM_Analytic_MagDipoleWholespace: + +.. --------------------------------- .. +.. .. +.. THIS FILE IS AUTO GENEREATED .. +.. .. +.. SimPEG/Examples/__init__.py .. +.. .. +.. --------------------------------- .. + + +EM: Magnetic Dipole in a Whole-Space +==================================== + +Here we plot the magnetic flux density from a harmonic dipole in a wholespace. + + + +.. plot:: + + from SimPEG import Examples + Examples.EM_Analytic_MagDipoleWholespace.run() + +.. literalinclude:: ../../SimPEG/Examples/EM_Analytic_MagDipoleWholespace.py + :language: python + :linenos: