simpeg.potential_fields.magnetics.Simulation3DDifferential#

class simpeg.potential_fields.magnetics.Simulation3DDifferential(mesh, survey=None, mu=None, muMap=None, rem=None, remMap=None, storeJ=False, solver_dtype=<class 'numpy.float64'>, **kwargs)[source]#

Bases: BaseMagneticPDESimulation

A secondary field simulation for magnetic data.

Parameters:
meshdiscretize.base.BaseMesh
surveymagnetics.survey.Survey
mufloat, array_like

Magnetic Permeability Model (H/ m). Set this for forward modeling or to fix while inverting for remanence. This is used if muMap is None.

muMapsimpeg.maps.IdentityMap, optional

The mapping used to go from the simulation model to mu. Set this to invert for mu.

remfloat, array_like

Magnetic Polarization \(\mu_0 \mathbf{M}\) (nT). Set this for forward modeling or to fix remanent magnetization while inverting for permeability. This is used if remMap is None.

remMapsimpeg.maps.IdentityMap, optional

The mapping used to go from the simulation model to \(\mu_0 \mathbf{M}\). Set this to invert for \(\mu_0 \mathbf{M}\).

storeJ: bool

Whether to store the sensitivity matrix. If set to True

solver_dtype: dtype, optional

Data type to use for the matrix that gets passed to the solver. Default to numpy.float64.

Attributes

Mcc

Cell center inner product matrix.

MccMu

Cell center property inner product matrix.

MccMuI

Cell center property inner product inverse matrix.

MccMui

Cell center property inner product matrix.

MccMuiI

Cell center property inner product inverse matrix.

Me

Edge inner product matrix.

MeI

Edge inner product inverse matrix.

MeMu

Edge property inner product matrix.

MeMuI

Edge property inner product inverse matrix.

MeMui

Edge property inner product matrix.

MeMuiI

Edge property inner product inverse matrix.

Mf

Face inner product matrix.

MfI

Face inner product inverse matrix.

MfMu

Face property inner product matrix.

MfMuI

Face property inner product inverse matrix.

MfMui

Face property inner product matrix.

MfMuiI

Face property inner product inverse matrix.

Mn

Node inner product matrix.

MnI

Node inner product inverse matrix.

MnMu

Node property inner product matrix.

MnMuI

Node property inner product inverse matrix.

MnMui

Node property inner product matrix.

MnMuiI

Node property inner product inverse matrix.

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.

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

rem

Magnetic polarization (nt) physical property model.

remDeriv

Derivative of Magnetic Polarization (nT) wrt the model.

remMap

Mapping of the inversion model to Magnetic Polarization (nT).

sensitivity_path

Path to directory where sensitivity file is stored.

solver

Numerical solver used in the forward simulation.

solver_dtype

Data type used by the solver.

solver_opts

Solver-specific parameters.

storeJ

Whether to store the sensitivity matrix

survey

The magnetic survey object.

verbose

Verbose progress printout.

MccI

Vol

Methods

Jtvec(m, v[, f])

Compute the Jacobian transpose times a vector for the model provided.

Jtvec_approx(m, v[, f])

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

Jvec(m, v[, f])

Compute the Jacobian times a vector for the model provided.

Jvec_approx(m, v[, f])

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

MccMuDeriv(u[, v, adjoint])

Derivative of MccProperty with respect to the model.

MccMuIDeriv(u[, v, adjoint])

Derivative of MccPropertyI with respect to the model.

MccMuiDeriv(u[, v, adjoint])

Derivative of MccProperty with respect to the model.

MccMuiIDeriv(u[, v, adjoint])

Derivative of MccPropertyI with respect to the model.

MeMuDeriv(u[, v, adjoint])

Derivative of MeProperty with respect to the model.

MeMuIDeriv(u[, v, adjoint])

Derivative of MePropertyI with respect to the model.

MeMuiDeriv(u[, v, adjoint])

Derivative of MeProperty with respect to the model.

MeMuiIDeriv(u[, v, adjoint])

Derivative of MePropertyI with respect to the model.

MfMuDeriv(u[, v, adjoint])

Derivative of MfProperty with respect to the model.

MfMuIDeriv(u[, v, adjoint])

I Derivative of MfPropertyI with respect to the model.

MfMuiDeriv(u[, v, adjoint])

Derivative of MfProperty with respect to the model.

MfMuiIDeriv(u[, v, adjoint])

I Derivative of MfPropertyI with respect to the model.

MnMuDeriv(u[, v, adjoint])

Derivative of MnProperty with respect to the model.

MnMuIDeriv(u[, v, adjoint])

Derivative of MnPropertyI with respect to the model.

MnMuiDeriv(u[, v, adjoint])

Derivative of MnProperty with respect to the model.

MnMuiIDeriv(u[, v, adjoint])

Derivative of MnPropertyI with respect to the model.

dpred([m, f])

Predicted data for the model provided.

fields(m)

Return the computed geophysical fields for the model provided.

magnetic_polarization([m])

Computes the total magnetic polarization \(\mu_0\mathbf{M}\).

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

Make synthetic data for the model and Gaussian noise provided.

residual(m, dobs[, f])

The data residual.

getJ

Notes

This simulation solves for the magnetostatic PDE:

\[\nabla \cdot \Vec{B} = 0\]

where the constitutive relation is specified as:

\[\Vec{B} = \mu\Vec{H} + \mu_0\Vec{M_r}\]

where \(\Vec{M_r}\) is a fixed magnetization unaffected by the inducing field and \(\mu\Vec{H}\) is the induced magnetization.