simpeg.regularization.LinearCorrespondence#

class simpeg.regularization.LinearCorrespondence(mesh, wire_map, coefficients=None, **kwargs)[source]#

Bases: BaseSimilarityMeasure

Linear correspondence regularization for joint inversion with two physical properties.

LinearCorrespondence is used to recover a model where the differences between the model parameter values for two physical property types are minimal. LinearCorrespondence can also be used to minimize the squared L2-norm of a linear combination of model parameters for two physical property types. See the Notes section for a comprehensive description.

Parameters:
meshsimpeg.regularization.RegularizationMesh, discretize.base.BaseMesh

Mesh on which the regularization is discretized. This is not necessarily the same as the mesh on which the simulation is defined.

active_cellsNone, (n_cells, ) numpy.ndarray of bool

Boolean array defining the set of RegularizationMesh cells that are active in the inversion. If None, all cells are active.

wire_mapsimpeg.maps.Wires

Wire map connecting physical properties defined on active cells of the RegularizationMesh` to the entire model.

coefficientsNone, (3) numpy.ndarray of float

Coefficients \(\{ \lambda_1, \lambda_2, \lambda_3 \}\) for the linear relationship between model parameters. If None, the coefficients are set to \(\{ 1, -1, 0 \}\).

Attributes

W

Weighting matrix.

active_cells

Active cells defined on the regularization mesh.

cell_weights

Deprecated property for 'volume' and user defined weights.

coefficients

Coefficients for the linear relationship between model parameters.

indActive

active_cells.indActive has been deprecated.

mapping

Mapping from the inversion model parameters to the regularization mesh.

model

The model parameters.

mref

reference_model.mref has been deprecated.

nP

Number of model parameters.

parent

The parent objective function

reference_model

Reference model.

regmesh

regularization_mesh.regmesh has been deprecated.

regularization_mesh

Regularization mesh.

units

Units for the model parameters.

weights_keys

Return the keys for the existing cell weights

wire_map

Mapping from model to physical properties defined on the regularization mesh.

Methods

__call__(model)

Evaluate the regularization function for the model provided.

deriv(model)

Gradient of the regularization function evaluated for the model provided.

deriv2(model[, v])

Hessian of the regularization function evaluated for the model provided.

f_m(m)

Not implemented for BaseRegularization class.

f_m_deriv(m)

Not implemented for BaseRegularization class.

get_weights(key)

Cell weights for a given key.

map_class

alias of IdentityMap

relation(model)

Computes the relation vector for the model provided.

remove_weights(key)

Removes the weights for the key provided.

set_weights(**weights)

Adds (or updates) the specified weights to the regularization.

test([x, num, random_seed])

Run a convergence test on both the first and second derivatives.

Notes

Let \(\mathbf{m}\) be a discrete model consisting of two physical property types such that:

\[\begin{split}\mathbf{m} = \begin{bmatrix} \mathbf{m_1} \\ \mathbf{m_2} \end{bmatrix}\end{split}\]

Where \(\{ \lambda_1 , \lambda_2 , \lambda_3 \}\) define scalar coefficients for a linear combination of vectors \(\mathbf{m_1}\) and \(\mathbf{m_2}\), the regularization function (objective function) is given by:

\[\phi (\mathbf{m}) = \big \| \lambda_1 \mathbf{m_1} + \lambda_2 \mathbf{m_2} + \lambda_3 \big \|^2\]

Scalar coefficients \(\{ \lambda_1 , \lambda_2 , \lambda_3 \}\) are set using the coefficients property. For a true linear correspondence constraint, we set \(\{ \lambda_1 , \lambda_2 , \lambda_3 \}\) to \(\{ 1, -1, 0 \}\).