\[\renewcommand{\div}{\nabla\cdot\,} \newcommand{\grad}{\vec \nabla} \newcommand{\curl}{{\vec \nabla}\times\,} \newcommand {\J}{{\vec J}} \renewcommand{\H}{{\vec H}} \newcommand {\E}{{\vec E}} \newcommand{\dcurl}{{\mathbf C}} \newcommand{\dgrad}{{\mathbf G}} \newcommand{\Acf}{{\mathbf A_c^f}} \newcommand{\Ace}{{\mathbf A_c^e}} \renewcommand{\S}{{\mathbf \Sigma}} \newcommand{\St}{{\mathbf \Sigma_\tau}} \newcommand{\T}{{\mathbf T}} \newcommand{\Tt}{{\mathbf T_\tau}} \newcommand{\diag}[1]{\,{\sf diag}\left( #1 \right)} \newcommand{\M}{{\mathbf M}} \newcommand{\MfMui}{{\M^f_{\mu^{-1}}}} \newcommand{\MeSig}{{\M^e_\sigma}} \newcommand{\MeSigInf}{{\M^e_{\sigma_\infty}}} \newcommand{\MeSigO}{{\M^e_{\sigma_0}}} \newcommand{\Me}{{\M^e}} \newcommand{\Mes}[1]{{\M^e_{#1}}} \newcommand{\Mee}{{\M^e_e}} \newcommand{\Mej}{{\M^e_j}} \newcommand{\BigO}[1]{\mathcal{O}\bigl(#1\bigr)} \newcommand{\bE}{\mathbf{E}} \newcommand{\bH}{\mathbf{H}} \newcommand{\B}{\vec{B}} \newcommand{\D}{\vec{D}} \renewcommand{\H}{\vec{H}} \newcommand{\s}{\vec{s}} \newcommand{\bfJ}{\bf{J}} \newcommand{\vecm}{\vec m} \renewcommand{\Re}{\mathsf{Re}} \renewcommand{\Im}{\mathsf{Im}} \renewcommand {\j} { {\vec j} } \newcommand {\h} { {\vec h} } \renewcommand {\b} { {\vec b} } \newcommand {\e} { {\vec e} } \newcommand {\c} { {\vec c} } \renewcommand {\d} { {\vec d} } \renewcommand {\u} { {\vec u} } \newcommand{\I}{\vec{I}}\]

Time Domain Electromagnetics

The quasi-static time domain Maxwell’s equations are given by

\[\begin{split}\curl \vec{e} + \frac{\partial \vec{b}}{\partial t} = \vec{s}_m \\ \curl \vec{h} - \vec{j} = \vec{s}_e\end{split}\]

where:

  • \(\vec{e}\) is the electric field

  • \(\vec{b}\) is the magnetic flux

  • \(\vec{h}\) is the magnetic field

  • \(\vec{j}\) is the current density

  • \(\vec{s}_m\) is the magnetic source term

  • \(\vec{s}_e\) is the electric source term

Note

These docs are under construction. More to come soon!

TDEM Problem

class SimPEG.EM.TDEM.ProblemTDEM.BaseTDEMProblem(mesh, **kwargs)[source]

Bases: SimPEG.Problem.BaseTimeProblem, SimPEG.EM.Base.BaseEMProblem

We start with the first order form of Maxwell’s equations, eliminate and solve the second order form. For the time discretization, we use backward Euler.

Optional Properties:

  • model (Model): Inversion model., a numpy array of <class ‘float’>, <class ‘int’> with shape (*) or (*, *)

  • mu (PhysicalProperty): Magnetic Permeability (H/m), a physical property, Default: 1.2566370614359173e-06

  • mui (PhysicalProperty): Inverse Magnetic Permeability (m/H), a physical property

  • rho (PhysicalProperty): Electrical resistivity (Ohm m), a physical property

  • rhoMap (Mapping): Mapping of Electrical resistivity (Ohm m) to the inversion model., a SimPEG Map

  • sigma (PhysicalProperty): Electrical conductivity (S/m), a physical property

  • sigmaMap (Mapping): Mapping of Electrical conductivity (S/m) to the inversion model., a SimPEG Map

Other Properties:

  • rhoDeriv (Derivative): Derivative of Electrical resistivity (Ohm m) wrt the model.

  • sigmaDeriv (Derivative): Derivative of Electrical conductivity (S/m) wrt the model.

surveyPair

alias of SimPEG.EM.TDEM.SurveyTDEM.Survey

fieldsPair

alias of SimPEG.EM.TDEM.FieldsTDEM.FieldsTDEM

clean_on_model_update = ['_Adcinv']

clear DC matrix factors on any model updates

dt_threshold = 1e-08
fields(m)[source]

Solve the forward problem for the fields.

Parameters

m (numpy.ndarray) – inversion model (nP,)

Return type

SimPEG.EM.TDEM.FieldsTDEM

Return f

fields object

Jvec(m, v, f=None)[source]

Jvec computes the sensitivity times a vector

\[\mathbf{J} \mathbf{v} = \frac{d\mathbf{P}}{d\mathbf{F}} \left( \frac{d\mathbf{F}}{d\mathbf{u}} \frac{d\mathbf{u}}{d\mathbf{m}} + \frac{\partial\mathbf{F}}{\partial\mathbf{m}} \right) \mathbf{v}\]

where

\[\mathbf{A} \frac{d\mathbf{u}}{d\mathbf{m}} + \frac{\partial \mathbf{A}(\mathbf{u}, \mathbf{m})} {\partial\mathbf{m}} = \frac{d \mathbf{RHS}}{d \mathbf{m}}\]
Jtvec(m, v, f=None)[source]

Jvec computes the adjoint of the sensitivity times a vector

\[\mathbf{J}^\top \mathbf{v} = \left( \frac{d\mathbf{u}}{d\mathbf{m}} ^ \top \frac{d\mathbf{F}}{d\mathbf{u}} ^ \top + \frac{\partial\mathbf{F}}{\partial\mathbf{m}} ^ \top \right) \frac{d\mathbf{P}}{d\mathbf{F}} ^ \top \mathbf{v}\]

where

\[\frac{d\mathbf{u}}{d\mathbf{m}} ^\top \mathbf{A}^\top + \frac{d\mathbf{A}(\mathbf{u})}{d\mathbf{m}} ^ \top = \frac{d \mathbf{RHS}}{d \mathbf{m}} ^ \top\]
getSourceTerm(tInd)[source]

Assemble the source term. This ensures that the RHS is a vector / array of the correct size

getInitialFields()[source]

Ask the sources for initial fields

getInitialFieldsDeriv(src, v, adjoint=False, f=None)[source]
property Adcinv
class SimPEG.EM.TDEM.ProblemTDEM.Problem3D_b(mesh, **kwargs)[source]

Bases: SimPEG.EM.TDEM.ProblemTDEM.BaseTDEMProblem

Starting from the quasi-static E-B formulation of Maxwell’s equations (semi-discretized)

\[\begin{split}\mathbf{C} \mathbf{e} + \frac{\partial \mathbf{b}}{\partial t} = \mathbf{s_m} \\ \mathbf{C}^{\top} \mathbf{M_{\mu^{-1}}^f} \mathbf{b} - \mathbf{M_{\sigma}^e} \mathbf{e} = \mathbf{s_e}\end{split}\]

where \(\mathbf{s_e}\) is an integrated quantity, we eliminate \(\mathbf{e}\) using

\[\mathbf{e} = \mathbf{M_{\sigma}^e}^{-1} \mathbf{C}^{\top} \mathbf{M_{\mu^{-1}}^f} \mathbf{b} - \mathbf{M_{\sigma}^e}^{-1} \mathbf{s_e}\]

to obtain a second order semi-discretized system in \(\mathbf{b}\)

\[\mathbf{C} \mathbf{M_{\sigma}^e}^{-1} \mathbf{C}^{\top} \mathbf{M_{\mu^{-1}}^f} \mathbf{b} + \frac{\partial \mathbf{b}}{\partial t} = \mathbf{C} \mathbf{M_{\sigma}^e}^{-1} \mathbf{s_e} + \mathbf{s_m}\]

and moving everything except the time derivative to the rhs gives

\[\frac{\partial \mathbf{b}}{\partial t} = -\mathbf{C} \mathbf{M_{\sigma}^e}^{-1} \mathbf{C}^{\top} \mathbf{M_{\mu^{-1}}^f} \mathbf{b} + \mathbf{C} \mathbf{M_{\sigma}^e}^{-1} \mathbf{s_e} + \mathbf{s_m}\]

For the time discretization, we use backward euler. To solve for the \(n+1\) th time step, we have

\[\frac{\mathbf{b}^{n+1} - \mathbf{b}^{n}}{\mathbf{dt}} = -\mathbf{C} \mathbf{M_{\sigma}^e}^{-1} \mathbf{C}^{\top} \mathbf{M_{\mu^{-1}}^f} \mathbf{b}^{n+1} + \mathbf{C} \mathbf{M_{\sigma}^e}^{-1} \mathbf{s_e}^{n+1} + \mathbf{s_m}^{n+1}\]

re-arranging to put \(\mathbf{b}^{n+1}\) on the left hand side gives

\[(\mathbf{I} + \mathbf{dt} \mathbf{C} \mathbf{M_{\sigma}^e}^{-1} \mathbf{C}^{\top} \mathbf{M_{\mu^{-1}}^f}) \mathbf{b}^{n+1} = \mathbf{b}^{n} + \mathbf{dt}(\mathbf{C} \mathbf{M_{\sigma}^e}^{-1} \mathbf{s_e}^{n+1} + \mathbf{s_m}^{n+1})\]

Optional Properties:

  • model (Model): Inversion model., a numpy array of <class ‘float’>, <class ‘int’> with shape (*) or (*, *)

  • mu (PhysicalProperty): Magnetic Permeability (H/m), a physical property, Default: 1.2566370614359173e-06

  • mui (PhysicalProperty): Inverse Magnetic Permeability (m/H), a physical property

  • rho (PhysicalProperty): Electrical resistivity (Ohm m), a physical property

  • rhoMap (Mapping): Mapping of Electrical resistivity (Ohm m) to the inversion model., a SimPEG Map

  • sigma (PhysicalProperty): Electrical conductivity (S/m), a physical property

  • sigmaMap (Mapping): Mapping of Electrical conductivity (S/m) to the inversion model., a SimPEG Map

Other Properties:

  • rhoDeriv (Derivative): Derivative of Electrical resistivity (Ohm m) wrt the model.

  • sigmaDeriv (Derivative): Derivative of Electrical conductivity (S/m) wrt the model.

fieldsPair

alias of SimPEG.EM.TDEM.FieldsTDEM.Fields3D_b

surveyPair

alias of SimPEG.EM.TDEM.SurveyTDEM.Survey

Fields_Derivs

alias of SimPEG.EM.TDEM.FieldsTDEM.Fields_Derivs_eb

getAdiag(tInd)[source]

System matrix at a given time index

\[(\mathbf{I} + \mathbf{dt} \mathbf{C} \mathbf{M_{\sigma}^e}^{-1} \mathbf{C}^{\top} \mathbf{M_{\mu^{-1}}^f})\]
getAdiagDeriv(tInd, u, v, adjoint=False)[source]

Derivative of ADiag

getAsubdiag(tInd)[source]

Matrix below the diagonal

getAsubdiagDeriv(tInd, u, v, adjoint=False)[source]
getRHS(tInd)[source]

Assemble the RHS

getRHSDeriv(tInd, src, v, adjoint=False)[source]

Derivative of the RHS

class SimPEG.EM.TDEM.ProblemTDEM.Problem3D_e(mesh, **kwargs)[source]

Bases: SimPEG.EM.TDEM.ProblemTDEM.BaseTDEMProblem

Solve the EB-formulation of Maxwell’s equations for the electric field, e.

Starting with

\[\nabla \times \mathbf{e} + \frac{\partial \mathbf{b}}{\partial t} = \mathbf{s_m} \ \nabla \times \mu^{-1} \mathbf{b} - \sigma \mathbf{e} = \mathbf{s_e}\]

we eliminate \(\frac{\partial b}{\partial t}\) using

\[\frac{\partial \mathbf{b}}{\partial t} = - \nabla \times \mathbf{e} + \mathbf{s_m}\]

taking the time-derivative of Ampere’s law, we see

\[\frac{\partial}{\partial t}\left( \nabla \times \mu^{-1} \mathbf{b} - \sigma \mathbf{e} \right) = \frac{\partial \mathbf{s_e}}{\partial t} \ \nabla \times \mu^{-1} \frac{\partial \mathbf{b}}{\partial t} - \sigma \frac{\partial\mathbf{e}}{\partial t} = \frac{\partial \mathbf{s_e}}{\partial t}\]

which gives us

\[\nabla \times \mu^{-1} \nabla \times \mathbf{e} + \sigma \frac{\partial\mathbf{e}}{\partial t} = \nabla \times \mu^{-1} \mathbf{s_m} + \frac{\partial \mathbf{s_e}}{\partial t}\]

Optional Properties:

  • model (Model): Inversion model., a numpy array of <class ‘float’>, <class ‘int’> with shape (*) or (*, *)

  • mu (PhysicalProperty): Magnetic Permeability (H/m), a physical property, Default: 1.2566370614359173e-06

  • mui (PhysicalProperty): Inverse Magnetic Permeability (m/H), a physical property

  • rho (PhysicalProperty): Electrical resistivity (Ohm m), a physical property

  • rhoMap (Mapping): Mapping of Electrical resistivity (Ohm m) to the inversion model., a SimPEG Map

  • sigma (PhysicalProperty): Electrical conductivity (S/m), a physical property

  • sigmaMap (Mapping): Mapping of Electrical conductivity (S/m) to the inversion model., a SimPEG Map

Other Properties:

  • rhoDeriv (Derivative): Derivative of Electrical resistivity (Ohm m) wrt the model.

  • sigmaDeriv (Derivative): Derivative of Electrical conductivity (S/m) wrt the model.

fieldsPair

alias of SimPEG.EM.TDEM.FieldsTDEM.Fields3D_e

surveyPair

alias of SimPEG.EM.TDEM.SurveyTDEM.Survey

Fields_Derivs

alias of SimPEG.EM.TDEM.FieldsTDEM.Fields_Derivs_eb

Jtvec(m, v, f=None)[source]

Jvec computes the adjoint of the sensitivity times a vector

getAdiag(tInd)[source]

Diagonal of the system matrix at a given time index

getAdiagDeriv(tInd, u, v, adjoint=False)[source]

Deriv of ADiag with respect to electrical conductivity

getAsubdiag(tInd)[source]

Matrix below the diagonal

getAsubdiagDeriv(tInd, u, v, adjoint=False)[source]

Derivative of the matrix below the diagonal with respect to electrical conductivity

getRHS(tInd)[source]

right hand side

getRHSDeriv(tInd, src, v, adjoint=False)[source]
getAdc()[source]
getAdcDeriv(u, v, adjoint=False)[source]
class SimPEG.EM.TDEM.ProblemTDEM.Problem3D_h(mesh, **kwargs)[source]

Bases: SimPEG.EM.TDEM.ProblemTDEM.BaseTDEMProblem

Solve the H-J formulation of Maxwell’s equations for the magnetic field h.

We start with Maxwell’s equations in terms of the magnetic field and current density

\[\nabla \times \rho \mathbf{j} + \mu \frac{\partial h}{\partial t} = \mathbf{s_m} \ \nabla \times \mathbf{h} - \mathbf{j} = \mathbf{s_e}\]

and eliminate \(\mathbf{j}\) using

\[\mathbf{j} = \nabla \times \mathbf{h} - \mathbf{s_e}\]

giving

\[\nabla \times \rho \nabla \times \mathbf{h} + \mu \frac{\partial h}{\partial t} = \nabla \times \rho \mathbf{s_e} + \mathbf{s_m}\]

Optional Properties:

  • model (Model): Inversion model., a numpy array of <class ‘float’>, <class ‘int’> with shape (*) or (*, *)

  • mu (PhysicalProperty): Magnetic Permeability (H/m), a physical property, Default: 1.2566370614359173e-06

  • mui (PhysicalProperty): Inverse Magnetic Permeability (m/H), a physical property

  • rho (PhysicalProperty): Electrical resistivity (Ohm m), a physical property

  • rhoMap (Mapping): Mapping of Electrical resistivity (Ohm m) to the inversion model., a SimPEG Map

  • sigma (PhysicalProperty): Electrical conductivity (S/m), a physical property

  • sigmaMap (Mapping): Mapping of Electrical conductivity (S/m) to the inversion model., a SimPEG Map

Other Properties:

  • rhoDeriv (Derivative): Derivative of Electrical resistivity (Ohm m) wrt the model.

  • sigmaDeriv (Derivative): Derivative of Electrical conductivity (S/m) wrt the model.

fieldsPair

alias of SimPEG.EM.TDEM.FieldsTDEM.Fields3D_h

surveyPair

alias of SimPEG.EM.TDEM.SurveyTDEM.Survey

Fields_Derivs

alias of SimPEG.EM.TDEM.FieldsTDEM.Fields_Derivs_hj

getAdiag(tInd)[source]

System matrix at a given time index

getAdiagDeriv(tInd, u, v, adjoint=False)[source]
getAsubdiag(tInd)[source]
getAsubdiagDeriv(tInd, u, v, adjoint=False)[source]
getRHS(tInd)[source]
getRHSDeriv(tInd, src, v, adjoint=False)[source]
getAdc()[source]
getAdcDeriv(u, v, adjoint=False)[source]
class SimPEG.EM.TDEM.ProblemTDEM.Problem3D_j(mesh, **kwargs)[source]

Bases: SimPEG.EM.TDEM.ProblemTDEM.BaseTDEMProblem

Solve the H-J formulation for current density

In this case, we eliminate \(\partial \mathbf{h} / \partial t\) and solve for \(\mathbf{j}\)

Optional Properties:

  • model (Model): Inversion model., a numpy array of <class ‘float’>, <class ‘int’> with shape (*) or (*, *)

  • mu (PhysicalProperty): Magnetic Permeability (H/m), a physical property, Default: 1.2566370614359173e-06

  • mui (PhysicalProperty): Inverse Magnetic Permeability (m/H), a physical property

  • rho (PhysicalProperty): Electrical resistivity (Ohm m), a physical property

  • rhoMap (Mapping): Mapping of Electrical resistivity (Ohm m) to the inversion model., a SimPEG Map

  • sigma (PhysicalProperty): Electrical conductivity (S/m), a physical property

  • sigmaMap (Mapping): Mapping of Electrical conductivity (S/m) to the inversion model., a SimPEG Map

Other Properties:

  • rhoDeriv (Derivative): Derivative of Electrical resistivity (Ohm m) wrt the model.

  • sigmaDeriv (Derivative): Derivative of Electrical conductivity (S/m) wrt the model.

fieldsPair

alias of SimPEG.EM.TDEM.FieldsTDEM.Fields3D_j

surveyPair

alias of SimPEG.EM.TDEM.SurveyTDEM.Survey

Fields_Derivs

alias of SimPEG.EM.TDEM.FieldsTDEM.Fields_Derivs_hj

getAdiag(tInd)[source]

System matrix at a given time index

getAdiagDeriv(tInd, u, v, adjoint=False)[source]
getAsubdiag(tInd)[source]
getAsubdiagDeriv(tInd, u, v, adjoint=False)[source]
getRHS(tInd)[source]
getRHSDeriv(tInd, src, v, adjoint=False)[source]
getAdc()[source]
getAdcDeriv(u, v, adjoint=False)[source]

Fields

class SimPEG.EM.TDEM.FieldsTDEM.FieldsTDEM(mesh, survey, **kwargs)[source]

Bases: SimPEG.Fields.TimeFields

Fancy Field Storage for a TDEM survey. Only one field type is stored for each problem, the rest are computed. The fields obejct acts like an array and is indexed by

f = problem.fields(m)
e = f[srcList,'e']
b = f[srcList,'b']

If accessing all sources for a given field, use the :

f = problem.fields(m)
e = f[:,'e']
b = f[:,'b']

The array returned will be size (nE or nF, nSrcs \(\times\) nFrequencies)

knownFields = {}
dtype

alias of builtins.float

aliasFields = None
property approxSize

The approximate cost to storing all of the known fields.

startup()
class SimPEG.EM.TDEM.FieldsTDEM.Fields_Derivs_eb(mesh, survey, **kwargs)[source]

Bases: SimPEG.EM.TDEM.FieldsTDEM.FieldsTDEM

A fields object for satshing derivs in the EB formulatio

knownFields = {'bDeriv': 'F', 'dbdtDeriv': 'F', 'dhdtDeriv': 'F', 'eDeriv': 'E', 'hDeriv': 'F', 'jDeriv': 'E'}
aliasFields = None
property approxSize

The approximate cost to storing all of the known fields.

dtype

alias of builtins.float

startup()
class SimPEG.EM.TDEM.FieldsTDEM.Fields_Derivs_hj(mesh, survey, **kwargs)[source]

Bases: SimPEG.EM.TDEM.FieldsTDEM.FieldsTDEM

A fields object for satshing derivs in the HJ formulation

knownFields = {'bDeriv': 'E', 'dbdtDeriv': 'E', 'dhdtDeriv': 'E', 'eDeriv': 'F', 'hDeriv': 'E', 'jDeriv': 'F'}
aliasFields = None
property approxSize

The approximate cost to storing all of the known fields.

dtype

alias of builtins.float

startup()
class SimPEG.EM.TDEM.FieldsTDEM.Fields3D_b(mesh, survey, **kwargs)[source]

Bases: SimPEG.EM.TDEM.FieldsTDEM.FieldsTDEM

Field Storage for a TDEM survey.

knownFields = {'bSolution': 'F'}
aliasFields = {'b': ['bSolution', 'F', '_b'], 'dbdt': ['bSolution', 'F', '_dbdt'], 'dhdt': ['bSolution', 'F', '_dhdt'], 'e': ['bSolution', 'E', '_e'], 'h': ['bSolution', 'F', '_h'], 'j': ['bSolution', 'E', '_j']}
startup()[source]
property approxSize

The approximate cost to storing all of the known fields.

dtype

alias of builtins.float

class SimPEG.EM.TDEM.FieldsTDEM.Fields3D_e(mesh, survey, **kwargs)[source]

Bases: SimPEG.EM.TDEM.FieldsTDEM.FieldsTDEM

Fancy Field Storage for a TDEM survey.

knownFields = {'eSolution': 'E'}
aliasFields = {'b': ['eSolution', 'F', '_b'], 'dbdt': ['eSolution', 'F', '_dbdt'], 'dhdt': ['eSolution', 'F', '_dhdt'], 'e': ['eSolution', 'E', '_e'], 'j': ['eSolution', 'E', '_j']}
startup()[source]
property approxSize

The approximate cost to storing all of the known fields.

dtype

alias of builtins.float

class SimPEG.EM.TDEM.FieldsTDEM.Fields3D_h(mesh, survey, **kwargs)[source]

Bases: SimPEG.EM.TDEM.FieldsTDEM.FieldsTDEM

Fancy Field Storage for a TDEM survey.

knownFields = {'hSolution': 'E'}
aliasFields = {'b': ['hSolution', 'E', '_b'], 'charge': ['hSolution', 'CC', '_charge'], 'dbdt': ['hSolution', 'E', '_dbdt'], 'dhdt': ['hSolution', 'E', '_dhdt'], 'e': ['hSolution', 'F', '_e'], 'h': ['hSolution', 'E', '_h'], 'j': ['hSolution', 'F', '_j']}
startup()[source]
property approxSize

The approximate cost to storing all of the known fields.

dtype

alias of builtins.float

class SimPEG.EM.TDEM.FieldsTDEM.Fields3D_j(mesh, survey, **kwargs)[source]

Bases: SimPEG.EM.TDEM.FieldsTDEM.FieldsTDEM

Fancy Field Storage for a TDEM survey.

knownFields = {'jSolution': 'F'}
aliasFields = {'charge': ['jSolution', 'CC', '_charge'], 'charge_density': ['jSolution', 'CC', '_charge_density'], 'dbdt': ['jSolution', 'E', '_dbdt'], 'dhdt': ['jSolution', 'E', '_dhdt'], 'e': ['jSolution', 'F', '_e'], 'j': ['jSolution', 'F', '_j']}
startup()[source]
property approxSize

The approximate cost to storing all of the known fields.

dtype

alias of builtins.float

Sources

class SimPEG.EM.TDEM.SrcTDEM.BaseWaveform(**kwargs)[source]

Bases: properties.base.base.HasProperties

Required Properties:

  • eps (Float): window of time within which the waveform is considered on, a float, Default: 1e-09

  • hasInitialFields (Boolean): Does the waveform have initial fields?, a boolean, Default: False

  • offTime (Float): off-time of the source, a float, Default: 0.0

property hasInitialFields

hasInitialFields (Boolean): Does the waveform have initial fields?, a boolean, Default: False

property offTime

offTime (Float): off-time of the source, a float, Default: 0.0

property eps

eps (Float): window of time within which the waveform is considered on, a float, Default: 1e-09

eval(time)[source]
evalDeriv(time)[source]
classmethod deserialize(value, trusted=False, strict=False, assert_valid=False, **kwargs)

Creates HasProperties instance from serialized dictionary

This uses the Property deserializers to deserialize all JSON-compatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.

Parameters:

  • value - Dictionary to deserialize new instance from.

  • trusted - If True (and if the input dictionary has '__class__' keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.

  • strict - Requires '__class__', if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.

  • assert_valid - Require deserialized instance to be valid. Default is False.

  • Any other keyword arguments will be passed through to the Property deserializers.

equal(other)

Determine if two HasProperties instances are equivalent

Equivalence is determined by checking if all Property values on two instances are equal, using Property.equal.

serialize(include_class=True, save_dynamic=False, **kwargs)

Serializes a HasProperties instance to dictionary

This uses the Property serializers to serialize all Property values to a JSON-compatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a properties.SelfReferenceError will be raised.

Parameters:

  • include_class - If True (the default), the name of the class will also be saved to the serialized dictionary under key '__class__'

  • save_dynamic - If True, dynamic properties are written to the serialized dict (default: False).

  • Any other keyword arguments will be passed through to the Property serializers.

validate()

Call all registered class validator methods

These are all methods decorated with @properties.validator. Validator methods are expected to raise a ValidationError if they fail.

class SimPEG.EM.TDEM.SrcTDEM.StepOffWaveform(offTime=0.0)[source]

Bases: SimPEG.EM.TDEM.SrcTDEM.BaseWaveform

Required Properties:

  • eps (Float): window of time within which the waveform is considered on, a float, Default: 1e-09

  • hasInitialFields (Boolean): Does the waveform have initial fields?, a boolean, Default: False

  • offTime (Float): off-time of the source, a float, Default: 0.0

eval(time)[source]
classmethod deserialize(value, trusted=False, strict=False, assert_valid=False, **kwargs)

Creates HasProperties instance from serialized dictionary

This uses the Property deserializers to deserialize all JSON-compatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.

Parameters:

  • value - Dictionary to deserialize new instance from.

  • trusted - If True (and if the input dictionary has '__class__' keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.

  • strict - Requires '__class__', if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.

  • assert_valid - Require deserialized instance to be valid. Default is False.

  • Any other keyword arguments will be passed through to the Property deserializers.

property eps

eps (Float): window of time within which the waveform is considered on, a float, Default: 1e-09

equal(other)

Determine if two HasProperties instances are equivalent

Equivalence is determined by checking if all Property values on two instances are equal, using Property.equal.

evalDeriv(time)
property hasInitialFields

hasInitialFields (Boolean): Does the waveform have initial fields?, a boolean, Default: False

property offTime

offTime (Float): off-time of the source, a float, Default: 0.0

serialize(include_class=True, save_dynamic=False, **kwargs)

Serializes a HasProperties instance to dictionary

This uses the Property serializers to serialize all Property values to a JSON-compatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a properties.SelfReferenceError will be raised.

Parameters:

  • include_class - If True (the default), the name of the class will also be saved to the serialized dictionary under key '__class__'

  • save_dynamic - If True, dynamic properties are written to the serialized dict (default: False).

  • Any other keyword arguments will be passed through to the Property serializers.

validate()

Call all registered class validator methods

These are all methods decorated with @properties.validator. Validator methods are expected to raise a ValidationError if they fail.

class SimPEG.EM.TDEM.SrcTDEM.RampOffWaveform(offTime=0.0)[source]

Bases: SimPEG.EM.TDEM.SrcTDEM.BaseWaveform

Required Properties:

  • eps (Float): window of time within which the waveform is considered on, a float, Default: 1e-09

  • hasInitialFields (Boolean): Does the waveform have initial fields?, a boolean, Default: False

  • offTime (Float): off-time of the source, a float, Default: 0.0

eval(time)[source]
classmethod deserialize(value, trusted=False, strict=False, assert_valid=False, **kwargs)

Creates HasProperties instance from serialized dictionary

This uses the Property deserializers to deserialize all JSON-compatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.

Parameters:

  • value - Dictionary to deserialize new instance from.

  • trusted - If True (and if the input dictionary has '__class__' keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.

  • strict - Requires '__class__', if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.

  • assert_valid - Require deserialized instance to be valid. Default is False.

  • Any other keyword arguments will be passed through to the Property deserializers.

property eps

eps (Float): window of time within which the waveform is considered on, a float, Default: 1e-09

equal(other)

Determine if two HasProperties instances are equivalent

Equivalence is determined by checking if all Property values on two instances are equal, using Property.equal.

evalDeriv(time)
property hasInitialFields

hasInitialFields (Boolean): Does the waveform have initial fields?, a boolean, Default: False

property offTime

offTime (Float): off-time of the source, a float, Default: 0.0

serialize(include_class=True, save_dynamic=False, **kwargs)

Serializes a HasProperties instance to dictionary

This uses the Property serializers to serialize all Property values to a JSON-compatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a properties.SelfReferenceError will be raised.

Parameters:

  • include_class - If True (the default), the name of the class will also be saved to the serialized dictionary under key '__class__'

  • save_dynamic - If True, dynamic properties are written to the serialized dict (default: False).

  • Any other keyword arguments will be passed through to the Property serializers.

validate()

Call all registered class validator methods

These are all methods decorated with @properties.validator. Validator methods are expected to raise a ValidationError if they fail.

class SimPEG.EM.TDEM.SrcTDEM.RawWaveform(offTime=0.0, waveFct=None, **kwargs)[source]

Bases: SimPEG.EM.TDEM.SrcTDEM.BaseWaveform

Required Properties:

  • eps (Float): window of time within which the waveform is considered on, a float, Default: 1e-09

  • hasInitialFields (Boolean): Does the waveform have initial fields?, a boolean, Default: False

  • offTime (Float): off-time of the source, a float, Default: 0.0

eval(time)[source]
classmethod deserialize(value, trusted=False, strict=False, assert_valid=False, **kwargs)

Creates HasProperties instance from serialized dictionary

This uses the Property deserializers to deserialize all JSON-compatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.

Parameters:

  • value - Dictionary to deserialize new instance from.

  • trusted - If True (and if the input dictionary has '__class__' keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.

  • strict - Requires '__class__', if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.

  • assert_valid - Require deserialized instance to be valid. Default is False.

  • Any other keyword arguments will be passed through to the Property deserializers.

property eps

eps (Float): window of time within which the waveform is considered on, a float, Default: 1e-09

equal(other)

Determine if two HasProperties instances are equivalent

Equivalence is determined by checking if all Property values on two instances are equal, using Property.equal.

evalDeriv(time)
property hasInitialFields

hasInitialFields (Boolean): Does the waveform have initial fields?, a boolean, Default: False

property offTime

offTime (Float): off-time of the source, a float, Default: 0.0

serialize(include_class=True, save_dynamic=False, **kwargs)

Serializes a HasProperties instance to dictionary

This uses the Property serializers to serialize all Property values to a JSON-compatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a properties.SelfReferenceError will be raised.

Parameters:

  • include_class - If True (the default), the name of the class will also be saved to the serialized dictionary under key '__class__'

  • save_dynamic - If True, dynamic properties are written to the serialized dict (default: False).

  • Any other keyword arguments will be passed through to the Property serializers.

validate()

Call all registered class validator methods

These are all methods decorated with @properties.validator. Validator methods are expected to raise a ValidationError if they fail.

class SimPEG.EM.TDEM.SrcTDEM.TriangularWaveform(offTime=0.0)[source]

Bases: SimPEG.EM.TDEM.SrcTDEM.BaseWaveform

Required Properties:

  • eps (Float): window of time within which the waveform is considered on, a float, Default: 1e-09

  • hasInitialFields (Boolean): Does the waveform have initial fields?, a boolean, Default: False

  • offTime (Float): off-time of the source, a float, Default: 0.0

eval(time)[source]
classmethod deserialize(value, trusted=False, strict=False, assert_valid=False, **kwargs)

Creates HasProperties instance from serialized dictionary

This uses the Property deserializers to deserialize all JSON-compatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.

Parameters:

  • value - Dictionary to deserialize new instance from.

  • trusted - If True (and if the input dictionary has '__class__' keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.

  • strict - Requires '__class__', if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.

  • assert_valid - Require deserialized instance to be valid. Default is False.

  • Any other keyword arguments will be passed through to the Property deserializers.

property eps

eps (Float): window of time within which the waveform is considered on, a float, Default: 1e-09

equal(other)

Determine if two HasProperties instances are equivalent

Equivalence is determined by checking if all Property values on two instances are equal, using Property.equal.

evalDeriv(time)
property hasInitialFields

hasInitialFields (Boolean): Does the waveform have initial fields?, a boolean, Default: False

property offTime

offTime (Float): off-time of the source, a float, Default: 0.0

serialize(include_class=True, save_dynamic=False, **kwargs)

Serializes a HasProperties instance to dictionary

This uses the Property serializers to serialize all Property values to a JSON-compatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a properties.SelfReferenceError will be raised.

Parameters:

  • include_class - If True (the default), the name of the class will also be saved to the serialized dictionary under key '__class__'

  • save_dynamic - If True, dynamic properties are written to the serialized dict (default: False).

  • Any other keyword arguments will be passed through to the Property serializers.

validate()

Call all registered class validator methods

These are all methods decorated with @properties.validator. Validator methods are expected to raise a ValidationError if they fail.

class SimPEG.EM.TDEM.SrcTDEM.VTEMWaveform(**kwargs)[source]

Bases: SimPEG.EM.TDEM.SrcTDEM.BaseWaveform

Required Properties:

  • a (Float): parameter controlling how quickly the waveform ramps on, a float, Default: 3.0

  • eps (Float): window of time within which the waveform is considered on, a float, Default: 1e-09

  • hasInitialFields (Boolean): Does the waveform have initial fields?, a boolean, Default: False

  • offTime (Float): off-time of the source, a float, Default: 0.0042

  • peakTime (Float): Time at which the VTEM waveform is at its peak, a float, Default: 0.00273

property offTime

offTime (Float): off-time of the source, a float, Default: 0.0042

property peakTime

peakTime (Float): Time at which the VTEM waveform is at its peak, a float, Default: 0.00273

property a

a (Float): parameter controlling how quickly the waveform ramps on, a float, Default: 3.0

eval(time)[source]
classmethod deserialize(value, trusted=False, strict=False, assert_valid=False, **kwargs)

Creates HasProperties instance from serialized dictionary

This uses the Property deserializers to deserialize all JSON-compatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.

Parameters:

  • value - Dictionary to deserialize new instance from.

  • trusted - If True (and if the input dictionary has '__class__' keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.

  • strict - Requires '__class__', if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.

  • assert_valid - Require deserialized instance to be valid. Default is False.

  • Any other keyword arguments will be passed through to the Property deserializers.

property eps

eps (Float): window of time within which the waveform is considered on, a float, Default: 1e-09

equal(other)

Determine if two HasProperties instances are equivalent

Equivalence is determined by checking if all Property values on two instances are equal, using Property.equal.

evalDeriv(time)
property hasInitialFields

hasInitialFields (Boolean): Does the waveform have initial fields?, a boolean, Default: False

serialize(include_class=True, save_dynamic=False, **kwargs)

Serializes a HasProperties instance to dictionary

This uses the Property serializers to serialize all Property values to a JSON-compatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a properties.SelfReferenceError will be raised.

Parameters:

  • include_class - If True (the default), the name of the class will also be saved to the serialized dictionary under key '__class__'

  • save_dynamic - If True, dynamic properties are written to the serialized dict (default: False).

  • Any other keyword arguments will be passed through to the Property serializers.

validate()

Call all registered class validator methods

These are all methods decorated with @properties.validator. Validator methods are expected to raise a ValidationError if they fail.

class SimPEG.EM.TDEM.SrcTDEM.TrapezoidWaveform(**kwargs)[source]

Bases: SimPEG.EM.TDEM.SrcTDEM.BaseWaveform

A waveform that has a linear ramp-on and a linear ramp-off.

Required Properties:

  • eps (Float): window of time within which the waveform is considered on, a float, Default: 1e-09

  • hasInitialFields (Boolean): Does the waveform have initial fields?, a boolean, Default: False

  • offTime (Float): off-time of the source, a float, Default: 0.0

  • ramp_off (Array): times over which we ramp off the waveform

    [time starting to ramp off, time off] , a list or numpy array of <class ‘float’> with shape (2)

  • ramp_on (Array): times over which the transmitter ramps on

    [time starting to ramp on, time fully on] , a list or numpy array of <class ‘float’> with shape (2)

property ramp_on

ramp_on (Array): times over which the transmitter ramps on [time starting to ramp on, time fully on] , a list or numpy array of <class ‘float’> with shape (2)

property ramp_off

ramp_off (Array): times over which we ramp off the waveform [time starting to ramp off, time off] , a list or numpy array of <class ‘float’> with shape (2)

property hasInitialFields

hasInitialFields (Boolean): Does the waveform have initial fields?, a boolean, Default: False

eval(time)[source]
classmethod deserialize(value, trusted=False, strict=False, assert_valid=False, **kwargs)

Creates HasProperties instance from serialized dictionary

This uses the Property deserializers to deserialize all JSON-compatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.

Parameters:

  • value - Dictionary to deserialize new instance from.

  • trusted - If True (and if the input dictionary has '__class__' keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.

  • strict - Requires '__class__', if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.

  • assert_valid - Require deserialized instance to be valid. Default is False.

  • Any other keyword arguments will be passed through to the Property deserializers.

property eps

eps (Float): window of time within which the waveform is considered on, a float, Default: 1e-09

equal(other)

Determine if two HasProperties instances are equivalent

Equivalence is determined by checking if all Property values on two instances are equal, using Property.equal.

evalDeriv(time)
property offTime

offTime (Float): off-time of the source, a float, Default: 0.0

serialize(include_class=True, save_dynamic=False, **kwargs)

Serializes a HasProperties instance to dictionary

This uses the Property serializers to serialize all Property values to a JSON-compatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a properties.SelfReferenceError will be raised.

Parameters:

  • include_class - If True (the default), the name of the class will also be saved to the serialized dictionary under key '__class__'

  • save_dynamic - If True, dynamic properties are written to the serialized dict (default: False).

  • Any other keyword arguments will be passed through to the Property serializers.

validate()

Call all registered class validator methods

These are all methods decorated with @properties.validator. Validator methods are expected to raise a ValidationError if they fail.

class SimPEG.EM.TDEM.SrcTDEM.QuarterSineRampOnWaveform(**kwargs)[source]

Bases: SimPEG.EM.TDEM.SrcTDEM.BaseWaveform

A waveform that has a quarter-sine ramp-on and a linear ramp-off

Required Properties:

  • eps (Float): window of time within which the waveform is considered on, a float, Default: 1e-09

  • hasInitialFields (Boolean): Does the waveform have initial fields?, a boolean, Default: False

  • offTime (Float): off-time of the source, a float, Default: 0.0

  • ramp_off (Array): times over which we ramp off the waveform, a list or numpy array of <class ‘float’> with shape (2)

  • ramp_on (Array): times over which the transmitter ramps on, a list or numpy array of <class ‘float’> with shape (2)

property ramp_on

ramp_on (Array): times over which the transmitter ramps on, a list or numpy array of <class ‘float’> with shape (2)

property ramp_off

ramp_off (Array): times over which we ramp off the waveform, a list or numpy array of <class ‘float’> with shape (2)

property hasInitialFields

hasInitialFields (Boolean): Does the waveform have initial fields?, a boolean, Default: False

eval(time)[source]
classmethod deserialize(value, trusted=False, strict=False, assert_valid=False, **kwargs)

Creates HasProperties instance from serialized dictionary

This uses the Property deserializers to deserialize all JSON-compatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.

Parameters:

  • value - Dictionary to deserialize new instance from.

  • trusted - If True (and if the input dictionary has '__class__' keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.

  • strict - Requires '__class__', if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.

  • assert_valid - Require deserialized instance to be valid. Default is False.

  • Any other keyword arguments will be passed through to the Property deserializers.

property eps

eps (Float): window of time within which the waveform is considered on, a float, Default: 1e-09

equal(other)

Determine if two HasProperties instances are equivalent

Equivalence is determined by checking if all Property values on two instances are equal, using Property.equal.

evalDeriv(time)
property offTime

offTime (Float): off-time of the source, a float, Default: 0.0

serialize(include_class=True, save_dynamic=False, **kwargs)

Serializes a HasProperties instance to dictionary

This uses the Property serializers to serialize all Property values to a JSON-compatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a properties.SelfReferenceError will be raised.

Parameters:

  • include_class - If True (the default), the name of the class will also be saved to the serialized dictionary under key '__class__'

  • save_dynamic - If True, dynamic properties are written to the serialized dict (default: False).

  • Any other keyword arguments will be passed through to the Property serializers.

validate()

Call all registered class validator methods

These are all methods decorated with @properties.validator. Validator methods are expected to raise a ValidationError if they fail.

class SimPEG.EM.TDEM.SrcTDEM.BaseTDEMSrc(rxList, waveform=<SimPEG.EM.TDEM.SrcTDEM.StepOffWaveform object>, **kwargs)[source]

Bases: SimPEG.EM.Base.BaseEMSrc

Required Properties:

  • integrate (Boolean): integrate the source term?, a boolean, Default: False

  • loc (Array): location of the source, a list or numpy array of <class ‘float’>, <class ‘int’> with shape (*, 3) or (3)

  • srcType (StringChoice): is the source a galvanic of inductive source, either “inductive” or “galvanic”

waveformPair

type of waveform to pair with

alias of BaseWaveform

property srcType

srcType (StringChoice): is the source a galvanic of inductive source, either “inductive” or “galvanic”

property waveform

source waveform

bInitial(prob)[source]
bInitialDeriv(prob, v=None, adjoint=False, f=None)[source]
eInitial(prob)[source]
eInitialDeriv(prob, v=None, adjoint=False, f=None)[source]
hInitial(prob)[source]
hInitialDeriv(prob, v=None, adjoint=False, f=None)[source]
jInitial(prob)[source]
jInitialDeriv(prob, v=None, adjoint=False, f=None)[source]
eval(prob, time)[source]
  • \(s_m\) : magnetic source term

  • \(s_e\) : electric source term

Parameters

prob (BaseFDEMProblem) – FDEM Problem

Return type

tuple

Returns

tuple with magnetic source term and electric source term

evalDeriv(prob, time, v=None, adjoint=False)[source]

Derivatives of the source terms with respect to the inversion model - s_mDeriv : derivative of the magnetic source term - s_eDeriv : derivative of the electric source term

Parameters
Return type

tuple

Returns

tuple with magnetic source term and electric source term derivatives times a vector

s_m(prob, time)[source]

Magnetic source term

Parameters

prob (BaseFDEMProblem) – FDEM Problem

Return type

numpy.ndarray

Returns

magnetic source term on mesh

s_e(prob, time)[source]

Electric source term

Parameters

prob (BaseFDEMProblem) – FDEM Problem

Return type

numpy.ndarray

Returns

electric source term on mesh

s_mDeriv(prob, time, v=None, adjoint=False)[source]

Derivative of magnetic source term with respect to the inversion model

Parameters
Return type

numpy.ndarray

Returns

product of magnetic source term derivative with a vector

s_eDeriv(prob, time, v=None, adjoint=False)[source]

Derivative of electric source term with respect to the inversion model

Parameters
Return type

numpy.ndarray

Returns

product of electric source term derivative with a vector

classmethod deserialize(value, trusted=False, strict=False, assert_valid=False, **kwargs)

Creates HasProperties instance from serialized dictionary

This uses the Property deserializers to deserialize all JSON-compatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.

Parameters:

  • value - Dictionary to deserialize new instance from.

  • trusted - If True (and if the input dictionary has '__class__' keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.

  • strict - Requires '__class__', if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.

  • assert_valid - Require deserialized instance to be valid. Default is False.

  • Any other keyword arguments will be passed through to the Property deserializers.

equal(other)

Determine if two HasProperties instances are equivalent

Equivalence is determined by checking if all Property values on two instances are equal, using Property.equal.

property integrate

integrate (Boolean): integrate the source term?, a boolean, Default: False

property loc

loc (Array): location of the source, a list or numpy array of <class ‘float’>, <class ‘int’> with shape (*, 3) or (3)

property nD

Number of data

rxList = None
rxPair

alias of SimPEG.Survey.BaseRx

serialize(include_class=True, save_dynamic=False, **kwargs)

Serializes a HasProperties instance to dictionary

This uses the Property serializers to serialize all Property values to a JSON-compatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a properties.SelfReferenceError will be raised.

Parameters:

  • include_class - If True (the default), the name of the class will also be saved to the serialized dictionary under key '__class__'

  • save_dynamic - If True, dynamic properties are written to the serialized dict (default: False).

  • Any other keyword arguments will be passed through to the Property serializers.

validate()

Call all registered class validator methods

These are all methods decorated with @properties.validator. Validator methods are expected to raise a ValidationError if they fail.

property vnD

Vector number of data

class SimPEG.EM.TDEM.SrcTDEM.MagDipole(rxList, **kwargs)[source]

Bases: SimPEG.EM.TDEM.SrcTDEM.BaseTDEMSrc

Required Properties:

  • integrate (Boolean): integrate the source term?, a boolean, Default: False

  • loc (LocationVector): location of the source, of <class ‘float’>, <class ‘int’> with shape (3), Default: [0. 0. 0.]

  • moment (Float): dipole moment of the transmitter, a float in range [0.0, inf], Default: 1.0

  • mu (Float): permeability of the background, a float in range [0.0, inf], Default: 1.2566370614359173e-06

  • orientation (Vector3): orientation of the source, a 3D Vector of <class ‘float’> with shape (3), Default: Z

  • srcType (StringChoice): is the source a galvanic of inductive source, either “inductive” or “galvanic”

property moment

moment (Float): dipole moment of the transmitter, a float in range [0.0, inf], Default: 1.0

property mu

mu (Float): permeability of the background, a float in range [0.0, inf], Default: 1.2566370614359173e-06

property orientation

orientation (Vector3): orientation of the source, a 3D Vector of <class ‘float’> with shape (3), Default: Z

property loc

loc (LocationVector): location of the source, of <class ‘float’>, <class ‘int’> with shape (3), Default: [0. 0. 0.]

bInitial(prob)[source]
hInitial(prob)[source]
s_m(prob, time)[source]

Magnetic source term

Parameters

prob (BaseFDEMProblem) – FDEM Problem

Return type

numpy.ndarray

Returns

magnetic source term on mesh

s_e(prob, time)[source]

Electric source term

Parameters

prob (BaseFDEMProblem) – FDEM Problem

Return type

numpy.ndarray

Returns

electric source term on mesh

bInitialDeriv(prob, v=None, adjoint=False, f=None)
classmethod deserialize(value, trusted=False, strict=False, assert_valid=False, **kwargs)

Creates HasProperties instance from serialized dictionary

This uses the Property deserializers to deserialize all JSON-compatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.

Parameters:

  • value - Dictionary to deserialize new instance from.

  • trusted - If True (and if the input dictionary has '__class__' keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.

  • strict - Requires '__class__', if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.

  • assert_valid - Require deserialized instance to be valid. Default is False.

  • Any other keyword arguments will be passed through to the Property deserializers.

eInitial(prob)
eInitialDeriv(prob, v=None, adjoint=False, f=None)
equal(other)

Determine if two HasProperties instances are equivalent

Equivalence is determined by checking if all Property values on two instances are equal, using Property.equal.

eval(prob, time)
  • \(s_m\) : magnetic source term

  • \(s_e\) : electric source term

Parameters

prob (BaseFDEMProblem) – FDEM Problem

Return type

tuple

Returns

tuple with magnetic source term and electric source term

evalDeriv(prob, time, v=None, adjoint=False)

Derivatives of the source terms with respect to the inversion model - s_mDeriv : derivative of the magnetic source term - s_eDeriv : derivative of the electric source term

Parameters
Return type

tuple

Returns

tuple with magnetic source term and electric source term derivatives times a vector

hInitialDeriv(prob, v=None, adjoint=False, f=None)
property integrate

integrate (Boolean): integrate the source term?, a boolean, Default: False

jInitial(prob)
jInitialDeriv(prob, v=None, adjoint=False, f=None)
property nD

Number of data

rxList = None
rxPair

alias of SimPEG.Survey.BaseRx

s_eDeriv(prob, time, v=None, adjoint=False)

Derivative of electric source term with respect to the inversion model

Parameters
Return type

numpy.ndarray

Returns

product of electric source term derivative with a vector

s_mDeriv(prob, time, v=None, adjoint=False)

Derivative of magnetic source term with respect to the inversion model

Parameters
Return type

numpy.ndarray

Returns

product of magnetic source term derivative with a vector

serialize(include_class=True, save_dynamic=False, **kwargs)

Serializes a HasProperties instance to dictionary

This uses the Property serializers to serialize all Property values to a JSON-compatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a properties.SelfReferenceError will be raised.

Parameters:

  • include_class - If True (the default), the name of the class will also be saved to the serialized dictionary under key '__class__'

  • save_dynamic - If True, dynamic properties are written to the serialized dict (default: False).

  • Any other keyword arguments will be passed through to the Property serializers.

property srcType

srcType (StringChoice): is the source a galvanic of inductive source, either “inductive” or “galvanic”

validate()

Call all registered class validator methods

These are all methods decorated with @properties.validator. Validator methods are expected to raise a ValidationError if they fail.

property vnD

Vector number of data

property waveform

A waveform instance is not None

waveformPair

alias of BaseWaveform

class SimPEG.EM.TDEM.SrcTDEM.CircularLoop(rxList, **kwargs)[source]

Bases: SimPEG.EM.TDEM.SrcTDEM.MagDipole

Required Properties:

  • current (Float): current in the loop, a float, Default: 1.0

  • integrate (Boolean): integrate the source term?, a boolean, Default: False

  • loc (LocationVector): location of the source, of <class ‘float’>, <class ‘int’> with shape (3), Default: [0. 0. 0.]

  • mu (Float): permeability of the background, a float in range [0.0, inf], Default: 1.2566370614359173e-06

  • orientation (Vector3): orientation of the source, a 3D Vector of <class ‘float’> with shape (3), Default: Z

  • radius (Float): radius of the loop source, a float in range [0.0, inf], Default: 1.0

  • srcType (StringChoice): is the source a galvanic of inductive source, either “inductive” or “galvanic”

property radius

radius (Float): radius of the loop source, a float in range [0.0, inf], Default: 1.0

property current

current (Float): current in the loop, a float, Default: 1.0

property moment

moment (Float): dipole moment of the transmitter, a float in range [0.0, inf], Default: 1.0

bInitial(prob)
bInitialDeriv(prob, v=None, adjoint=False, f=None)
classmethod deserialize(value, trusted=False, strict=False, assert_valid=False, **kwargs)

Creates HasProperties instance from serialized dictionary

This uses the Property deserializers to deserialize all JSON-compatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.

Parameters:

  • value - Dictionary to deserialize new instance from.

  • trusted - If True (and if the input dictionary has '__class__' keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.

  • strict - Requires '__class__', if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.

  • assert_valid - Require deserialized instance to be valid. Default is False.

  • Any other keyword arguments will be passed through to the Property deserializers.

eInitial(prob)
eInitialDeriv(prob, v=None, adjoint=False, f=None)
equal(other)

Determine if two HasProperties instances are equivalent

Equivalence is determined by checking if all Property values on two instances are equal, using Property.equal.

eval(prob, time)
  • \(s_m\) : magnetic source term

  • \(s_e\) : electric source term

Parameters

prob (BaseFDEMProblem) – FDEM Problem

Return type

tuple

Returns

tuple with magnetic source term and electric source term

evalDeriv(prob, time, v=None, adjoint=False)

Derivatives of the source terms with respect to the inversion model - s_mDeriv : derivative of the magnetic source term - s_eDeriv : derivative of the electric source term

Parameters
Return type

tuple

Returns

tuple with magnetic source term and electric source term derivatives times a vector

hInitial(prob)
hInitialDeriv(prob, v=None, adjoint=False, f=None)
property integrate

integrate (Boolean): integrate the source term?, a boolean, Default: False

jInitial(prob)
jInitialDeriv(prob, v=None, adjoint=False, f=None)
property loc

loc (LocationVector): location of the source, of <class ‘float’>, <class ‘int’> with shape (3), Default: [0. 0. 0.]

property mu

mu (Float): permeability of the background, a float in range [0.0, inf], Default: 1.2566370614359173e-06

property nD

Number of data

property orientation

orientation (Vector3): orientation of the source, a 3D Vector of <class ‘float’> with shape (3), Default: Z

rxList = None
rxPair

alias of SimPEG.Survey.BaseRx

s_e(prob, time)

Electric source term

Parameters

prob (BaseFDEMProblem) – FDEM Problem

Return type

numpy.ndarray

Returns

electric source term on mesh

s_eDeriv(prob, time, v=None, adjoint=False)

Derivative of electric source term with respect to the inversion model

Parameters
Return type

numpy.ndarray

Returns

product of electric source term derivative with a vector

s_m(prob, time)

Magnetic source term

Parameters

prob (BaseFDEMProblem) – FDEM Problem

Return type

numpy.ndarray

Returns

magnetic source term on mesh

s_mDeriv(prob, time, v=None, adjoint=False)

Derivative of magnetic source term with respect to the inversion model

Parameters
Return type

numpy.ndarray

Returns

product of magnetic source term derivative with a vector

serialize(include_class=True, save_dynamic=False, **kwargs)

Serializes a HasProperties instance to dictionary

This uses the Property serializers to serialize all Property values to a JSON-compatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a properties.SelfReferenceError will be raised.

Parameters:

  • include_class - If True (the default), the name of the class will also be saved to the serialized dictionary under key '__class__'

  • save_dynamic - If True, dynamic properties are written to the serialized dict (default: False).

  • Any other keyword arguments will be passed through to the Property serializers.

property srcType

srcType (StringChoice): is the source a galvanic of inductive source, either “inductive” or “galvanic”

validate()

Call all registered class validator methods

These are all methods decorated with @properties.validator. Validator methods are expected to raise a ValidationError if they fail.

property vnD

Vector number of data

property waveform

A waveform instance is not None

waveformPair

alias of BaseWaveform

class SimPEG.EM.TDEM.SrcTDEM.LineCurrent(rxList, **kwargs)[source]

Bases: SimPEG.EM.TDEM.SrcTDEM.BaseTDEMSrc

RawVec electric source. It is defined by the user provided vector s_e

param list rxList

receiver list

param bool integrate

Integrate the source term (multiply by Me) [False]

Required Properties:

  • integrate (Boolean): integrate the source term?, a boolean, Default: False

  • loc (Array): location of the source, a list or numpy array of <class ‘float’>, <class ‘int’> with shape (*, 3)

  • srcType (StringChoice): is the source a galvanic of inductive source, either “inductive” or “galvanic”

property loc

loc (Array): location of the source, a list or numpy array of <class ‘float’>, <class ‘int’> with shape (*, 3)

property integrate

integrate (Boolean): integrate the source term?, a boolean, Default: False

Mejs(prob)[source]
getRHSdc(prob)[source]
bInitial(prob)[source]
eInitial(prob)[source]
jInitial(prob)[source]
hInitial(prob)[source]
eInitialDeriv(prob, v=None, adjoint=False, f=None)[source]
s_m(prob, time)[source]

Magnetic source term

Parameters

prob (BaseFDEMProblem) – FDEM Problem

Return type

numpy.ndarray

Returns

magnetic source term on mesh

s_e(prob, time)[source]

Electric source term

Parameters

prob (BaseFDEMProblem) – FDEM Problem

Return type

numpy.ndarray

Returns

electric source term on mesh

bInitialDeriv(prob, v=None, adjoint=False, f=None)
classmethod deserialize(value, trusted=False, strict=False, assert_valid=False, **kwargs)

Creates HasProperties instance from serialized dictionary

This uses the Property deserializers to deserialize all JSON-compatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.

Parameters:

  • value - Dictionary to deserialize new instance from.

  • trusted - If True (and if the input dictionary has '__class__' keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.

  • strict - Requires '__class__', if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.

  • assert_valid - Require deserialized instance to be valid. Default is False.

  • Any other keyword arguments will be passed through to the Property deserializers.

equal(other)

Determine if two HasProperties instances are equivalent

Equivalence is determined by checking if all Property values on two instances are equal, using Property.equal.

eval(prob, time)
  • \(s_m\) : magnetic source term

  • \(s_e\) : electric source term

Parameters

prob (BaseFDEMProblem) – FDEM Problem

Return type

tuple

Returns

tuple with magnetic source term and electric source term

evalDeriv(prob, time, v=None, adjoint=False)

Derivatives of the source terms with respect to the inversion model - s_mDeriv : derivative of the magnetic source term - s_eDeriv : derivative of the electric source term

Parameters
Return type

tuple

Returns

tuple with magnetic source term and electric source term derivatives times a vector

hInitialDeriv(prob, v=None, adjoint=False, f=None)
jInitialDeriv(prob, v=None, adjoint=False, f=None)
property nD

Number of data

rxList = None
rxPair

alias of SimPEG.Survey.BaseRx

s_eDeriv(prob, time, v=None, adjoint=False)

Derivative of electric source term with respect to the inversion model

Parameters
Return type

numpy.ndarray

Returns

product of electric source term derivative with a vector

s_mDeriv(prob, time, v=None, adjoint=False)

Derivative of magnetic source term with respect to the inversion model

Parameters
Return type

numpy.ndarray

Returns

product of magnetic source term derivative with a vector

serialize(include_class=True, save_dynamic=False, **kwargs)

Serializes a HasProperties instance to dictionary

This uses the Property serializers to serialize all Property values to a JSON-compatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a properties.SelfReferenceError will be raised.

Parameters:

  • include_class - If True (the default), the name of the class will also be saved to the serialized dictionary under key '__class__'

  • save_dynamic - If True, dynamic properties are written to the serialized dict (default: False).

  • Any other keyword arguments will be passed through to the Property serializers.

property srcType

srcType (StringChoice): is the source a galvanic of inductive source, either “inductive” or “galvanic”

validate()

Call all registered class validator methods

These are all methods decorated with @properties.validator. Validator methods are expected to raise a ValidationError if they fail.

property vnD

Vector number of data

property waveform

A waveform instance is not None

waveformPair

alias of BaseWaveform

class SimPEG.EM.TDEM.SrcTDEM.RawVec_Grounded(rxList, s_e, **kwargs)[source]

Bases: SimPEG.EM.TDEM.SrcTDEM.BaseTDEMSrc

Required Properties:

  • integrate (Boolean): integrate the source term?, a boolean, Default: False

  • loc (Array): location of the source, a list or numpy array of <class ‘float’>, <class ‘int’> with shape (*, 3) or (3)

  • srcType (StringChoice): is the source a galvanic of inductive source, either “inductive” or “galvanic”

property integrate

integrate (Boolean): integrate the source term?, a boolean, Default: False

getRHSdc(prob)[source]
phiInitial(prob)[source]
jInitial(prob)[source]
jInitialDeriv(prob, v, adjoint=False)[source]
hInitial(prob)[source]
classmethod deserialize(value, trusted=False, strict=False, assert_valid=False, **kwargs)

Creates HasProperties instance from serialized dictionary

This uses the Property deserializers to deserialize all JSON-compatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.

Parameters:

  • value - Dictionary to deserialize new instance from.

  • trusted - If True (and if the input dictionary has '__class__' keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.

  • strict - Requires '__class__', if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.

  • assert_valid - Require deserialized instance to be valid. Default is False.

  • Any other keyword arguments will be passed through to the Property deserializers.

eInitial(prob)
eInitialDeriv(prob, v=None, adjoint=False, f=None)
equal(other)

Determine if two HasProperties instances are equivalent

Equivalence is determined by checking if all Property values on two instances are equal, using Property.equal.

eval(prob, time)
  • \(s_m\) : magnetic source term

  • \(s_e\) : electric source term

Parameters

prob (BaseFDEMProblem) – FDEM Problem

Return type

tuple

Returns

tuple with magnetic source term and electric source term

evalDeriv(prob, time, v=None, adjoint=False)

Derivatives of the source terms with respect to the inversion model - s_mDeriv : derivative of the magnetic source term - s_eDeriv : derivative of the electric source term

Parameters
Return type

tuple

Returns

tuple with magnetic source term and electric source term derivatives times a vector

hInitialDeriv(prob, v, adjoint=False, f=None)[source]
property loc

loc (Array): location of the source, a list or numpy array of <class ‘float’>, <class ‘int’> with shape (*, 3) or (3)

property nD

Number of data

rxList = None
rxPair

alias of SimPEG.Survey.BaseRx

s_eDeriv(prob, time, v=None, adjoint=False)

Derivative of electric source term with respect to the inversion model

Parameters
Return type

numpy.ndarray

Returns

product of electric source term derivative with a vector

s_m(prob, time)

Magnetic source term

Parameters

prob (BaseFDEMProblem) – FDEM Problem

Return type

numpy.ndarray

Returns

magnetic source term on mesh

s_mDeriv(prob, time, v=None, adjoint=False)

Derivative of magnetic source term with respect to the inversion model

Parameters
Return type

numpy.ndarray

Returns

product of magnetic source term derivative with a vector

serialize(include_class=True, save_dynamic=False, **kwargs)

Serializes a HasProperties instance to dictionary

This uses the Property serializers to serialize all Property values to a JSON-compatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a properties.SelfReferenceError will be raised.

Parameters:

  • include_class - If True (the default), the name of the class will also be saved to the serialized dictionary under key '__class__'

  • save_dynamic - If True, dynamic properties are written to the serialized dict (default: False).

  • Any other keyword arguments will be passed through to the Property serializers.

property srcType

srcType (StringChoice): is the source a galvanic of inductive source, either “inductive” or “galvanic”

validate()

Call all registered class validator methods

These are all methods decorated with @properties.validator. Validator methods are expected to raise a ValidationError if they fail.

property vnD

Vector number of data

property waveform

A waveform instance is not None

waveformPair

alias of BaseWaveform

bInitial(prob)[source]
bInitialDeriv(prob, v, adjoint=False, f=None)[source]
s_e(prob, time)[source]

Electric source term

Parameters

prob (BaseFDEMProblem) – FDEM Problem

Return type

numpy.ndarray

Returns

electric source term on mesh

Survey

class SimPEG.EM.TDEM.SurveyTDEM.Survey(srcList, **kwargs)[source]

Bases: SimPEG.Survey.BaseSurvey

Time domain electromagnetic survey

srcPair

alias of SimPEG.EM.TDEM.SrcTDEM.BaseTDEMSrc

rxPair = <module 'SimPEG.EM.TDEM.RxTDEM' from '/home/travis/miniconda/lib/python3.6/site-packages/SimPEG-0.13.0-py3.6.egg/SimPEG/EM/TDEM/RxTDEM.py'>
property srcList

Source List

eval(f)[source]

This function projects the fields onto the data space.

\[d_\text{pred} = \mathbf{P} f(m)\]
evalDeriv(f)[source]

This function s the derivative of projects the fields onto the data space.

\[\frac{\partial d_\text{pred}}{\partial u} = \mathbf{P}\]
counter = None
dobs = None
dpred(m, f=None)

Create the projected data from a model. The fields, f, (if provided) will be used for the predicted data instead of recalculating the fields (which may be expensive!).

\[d_\text{pred} = P(f(m))\]

Where P is a projection of the fields onto the data space.

Note

To use survey.dpred(), SimPEG requires that a problem be bound to the survey. If a problem has not been bound, an Exception will be raised. To bind a problem to the Data object:

survey.pair(myProblem)
dtrue = None
eps = None
getSourceIndex(sources)
property isSynthetic

Check if the data is synthetic.

property ispaired
makeSyntheticData(m, std=None, f=None, force=False)

Make synthetic data given a model, and a standard deviation.

Parameters
property mesh

Mesh of the paired problem.

mtrue = None
property nD

Number of data

property nSrc

Number of Sources

pair(p)

Bind a problem to this survey instance using pointers

property prob

The geophysical problem that explains this survey, use:

survey.pair(prob)
residual(m, f=None)
Parameters
Return type

numpy.ndarray

Returns

data residual

The data residual:

\[\mu_\text{data} = \mathbf{d}_\text{pred} - \mathbf{d}_\text{obs}\]
std = None
unpair()

Unbind a problem from this survey instance

property vnD

Vector number of data