simpeg.electromagnetics.frequency_domain.simulation.BaseFDEMSimulation#

class simpeg.electromagnetics.frequency_domain.simulation.BaseFDEMSimulation(mesh, survey=None, forward_only=False, permittivity=None, storeJ=False, **kwargs)[source]#

Bases: BaseEMSimulation

Base finite volume FDEM simulation class.

This class is used to define properties and methods necessary for solving 3D frequency-domain EM problems. For a \(+i\omega t\) Fourier convention, Maxwell’s equations are expressed as:

\[\begin{split}\begin{aligned} \nabla \times \vec{E} + i\omega \vec{B} &= - i \omega \vec{S}_m \\ \nabla \times \vec{H} - \vec{J} &= \vec{S}_e \end{aligned}\end{split}\]

where the constitutive relations between fields and fluxes are given by:

  • \(\vec{J} = \sigma \vec{E}\)

  • \(\vec{B} = \mu \vec{H}\)

and:

  • \(\vec{S}_m\) represents a magnetic source term

  • \(\vec{S}_e\) represents a current source term

Child classes of BaseFDEMSimulation solve the above expression numerically for various cases using mimetic finite volume.

Parameters:
meshdiscretize.base.BaseMesh

The mesh.

surveyfrequency_domain.survey.Survey

The frequency-domain EM survey.

forward_onlybool, optional

If True, the factorization for the inverse of the system matrix at each frequency is discarded after the fields are computed at that frequency. If False, the factorizations of the system matrices for all frequencies are stored.

permittivity(n_cells,) numpy.ndarray, optional

Dielectric permittivity (F/m) defined on the entire mesh. If None, electric displacement is ignored. Please note that permittivity is not an invertible property, and that future development will result in the deprecation of this propery.

storeJbool, optional

Whether to compute and store the sensitivity matrix.

Attributes

Mcc

Get cell inner product matrix.

MccI

Get inverse of cell inner product matrix.

MccMu

Get cell center property inner product matrix.

MccMuI

Get cell center property inner product inverse matrix.

MccMui

Get cell center property inner product matrix.

MccMuiI

Get cell center property inner product inverse matrix.

MccRho

Get cell center property inner product matrix.

MccRhoI

Get cell center property inner product inverse matrix.

MccSigma

Get cell center property inner product matrix.

MccSigmaI

Get cell center property inner product inverse matrix.

Me

Get edge inner product matrix.

MeI

Get inverse of edge inner product matrix.

MeMu

Get edge property inner product matrix.

MeMuI

Get edge property inner product inverse matrix.

MeMui

Get edge property inner product matrix.

MeMuiI

Get edge property inner product inverse matrix.

MeRho

Get edge property inner product matrix.

MeRhoI

Get edge property inner product inverse matrix.

MeSigma

Get edge property inner product matrix.

MeSigmaI

Get edge property inner product inverse matrix.

Mf

Get face inner product matrix.

MfI

Get inverse of face inner product matrix.

MfMu

Get face property inner product matrix.

MfMuI

Get face property inner product inverse matrix.

MfMui

Get face property inner product matrix.

MfMuiI

Get face property inner product inverse matrix.

MfRho

Get face property inner product matrix.

MfRhoI

Get face property inner product inverse matrix.

MfSigma

Get face property inner product matrix.

MfSigmaI

Get face property inner product inverse matrix.

Mn

Get node inner product matrix.

MnI

Get inverse of node inner product matrix.

MnMu

Get node property inner product matrix.

MnMuI

Get node property inner product inverse matrix.

MnMui

Get node property inner product matrix.

MnMuiI

Get node property inner product inverse matrix.

MnRho

Get node property inner product matrix.

MnRhoI

Get node property inner product inverse matrix.

MnSigma

Get node property inner product matrix.

MnSigmaI

Get node property inner product inverse matrix.

Vol

Get volumes.

clean_on_model_update

A list of solver objects to clean when the model is updated

counter

SimPEG Counter object to store iterations and run-times.

deleteTheseOnModelUpdate

HasModel.deleteTheseOnModelUpdate has been deprecated.

forward_only

Whether to store the factorizations of the inverses of the system matrices.

mesh

Mesh for the simulation.

model

The inversion model.

mu

Magnetic permeability (h/m) physical property model.

muDeriv

Derivative of Magnetic Permeability (H/m) wrt the model.

muMap

Mapping of the inversion model to Magnetic Permeability (H/m).

mui

Inverse magnetic permeability (m/h) physical property model.

muiDeriv

Derivative of Inverse Magnetic Permeability (m/H) wrt the model.

muiMap

Mapping of the inversion model to Inverse Magnetic Permeability (m/H).

needs_model

True if a model is necessary

permittivity

Dielectric permittivity (F/m)

rho

Electrical resistivity (ohm m) physical property model.

rhoDeriv

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

rhoMap

Mapping of the inversion model to Electrical resistivity (Ohm m).

sensitivity_path

Path to directory where sensitivity file is stored.

sigma

Electrical conductivity (s/m) physical property model.

sigmaDeriv

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

sigmaMap

Mapping of the inversion model to Electrical conductivity (S/m).

solver

Numerical solver used in the forward simulation.

solver_opts

Set solver-specific parameters.

storeInnerProduct

Whether to store inner product matrices

storeJ

Whether to compute and store the sensitivity matrix.

survey

The FDEM survey object.

verbose

Verbose progress printout.

Methods

Jtvec(m, v[, f])

Compute the adjoint sensitivity matrix times a vector.

Jtvec_approx(m, v[, f])

Approximation of the Jacobian transpose times a vector for the model provided.

Jvec(m, v[, f])

Compute the sensitivity matrix times a vector.

Jvec_approx(m, v[, f])

Approximation of the Jacobian times a vector for the model provided.

MccMuDeriv(u[, v, adjoint])

Get derivative of MccProperty with respect to the model.

MccMuIDeriv(u[, v, adjoint])

Get derivative of MccPropertyI with respect to the model.

MccMuiDeriv(u[, v, adjoint])

Get derivative of MccProperty with respect to the model.

MccMuiIDeriv(u[, v, adjoint])

Get derivative of MccPropertyI with respect to the model.

MccRhoDeriv(u[, v, adjoint])

Get derivative of MccProperty with respect to the model.

MccRhoIDeriv(u[, v, adjoint])

Get derivative of MccPropertyI with respect to the model.

MccSigmaDeriv(u[, v, adjoint])

Get derivative of MccProperty with respect to the model.

MccSigmaIDeriv(u[, v, adjoint])

Get derivative of MccPropertyI with respect to the model.

MeMuDeriv(u[, v, adjoint])

Get derivative of MeProperty with respect to the model.

MeMuIDeriv(u[, v, adjoint])

Get derivative of MePropertyI with respect to the model.

MeMuiDeriv(u[, v, adjoint])

Get derivative of MeProperty with respect to the model.

MeMuiIDeriv(u[, v, adjoint])

Get derivative of MePropertyI with respect to the model.

MeRhoDeriv(u[, v, adjoint])

Get derivative of MeProperty with respect to the model.

MeRhoIDeriv(u[, v, adjoint])

Get derivative of MePropertyI with respect to the model.

MeSigmaDeriv(u[, v, adjoint])

Get derivative of MeProperty with respect to the model.

MeSigmaIDeriv(u[, v, adjoint])

Get derivative of MePropertyI with respect to the model.

MfMuDeriv(u[, v, adjoint])

Get derivative of MfProperty with respect to the model.

MfMuIDeriv(u[, v, adjoint])

Get derivative of MfPropertyI with respect to the model.

MfMuiDeriv(u[, v, adjoint])

Get derivative of MfProperty with respect to the model.

MfMuiIDeriv(u[, v, adjoint])

Get derivative of MfPropertyI with respect to the model.

MfRhoDeriv(u[, v, adjoint])

Get derivative of MfProperty with respect to the model.

MfRhoIDeriv(u[, v, adjoint])

Get derivative of MfPropertyI with respect to the model.

MfSigmaDeriv(u[, v, adjoint])

Get derivative of MfProperty with respect to the model.

MfSigmaIDeriv(u[, v, adjoint])

Get derivative of MfPropertyI with respect to the model.

MnMuDeriv(u[, v, adjoint])

Get derivative of MnProperty with respect to the model.

MnMuIDeriv(u[, v, adjoint])

Get derivative of MnPropertyI with respect to the model.

MnMuiDeriv(u[, v, adjoint])

Get derivative of MnProperty with respect to the model.

MnMuiIDeriv(u[, v, adjoint])

Get derivative of MnPropertyI with respect to the model.

MnRhoDeriv(u[, v, adjoint])

Get derivative of MnProperty with respect to the model.

MnRhoIDeriv(u[, v, adjoint])

Get derivative of MnPropertyI with respect to the model.

MnSigmaDeriv(u[, v, adjoint])

Get derivative of MnProperty with respect to the model.

MnSigmaIDeriv(u[, v, adjoint])

Get derivative of MnPropertyI with respect to the model.

dpred([m, f])

Predicted data for the model provided.

fields([m])

Compute and return the fields for the model provided.

fieldsPair

getJ(m[, f])

Generate the full sensitivity matrix.

getJtJdiag(m[, W, f])

Return the diagonal of \(\mathbf{J^T J}\).

getSourceTerm(freq)

Return the discrete source terms for the frequency provided.

make_synthetic_data(m[, relative_error, ...])

Make synthetic data for the model and Gaussian noise provided.

residual(m, dobs[, f])

The data residual.

Galleries and Tutorials using simpeg.electromagnetics.frequency_domain.simulation.BaseFDEMSimulation#

2D inversion of Loop-Loop EM Data

2D inversion of Loop-Loop EM Data

MT: 3D: Forward

MT: 3D: Forward

Heagy et al., 2017 1D RESOLVE and SkyTEM Bookpurnong Inversions

Heagy et al., 2017 1D RESOLVE and SkyTEM Bookpurnong Inversions

Heagy et al., 2017 1D RESOLVE Bookpurnong Inversion

Heagy et al., 2017 1D RESOLVE Bookpurnong Inversion

Heagy et al., 2017 Casing Example

Heagy et al., 2017 Casing Example

Heagy et al., 2017 1D FDEM and TDEM inversions

Heagy et al., 2017 1D FDEM and TDEM inversions

EM: Schenkel and Morrison Casing Model

EM: Schenkel and Morrison Casing Model

3D Forward Simulation on a Cylindrical Mesh

3D Forward Simulation on a Cylindrical Mesh

3D Forward Simulation on a Tree Mesh

3D Forward Simulation on a Tree Mesh