simpeg.electromagnetics.static.resistivity.Simulation3DNodal.getADeriv#

Simulation3DNodal.getADeriv(u, v, adjoint=False)[source]#

Get conductivity derivative operation for the system matrix times a vector.

The system matrix is given by:

\[\mathbf{A} = \mathbf{(G^T - B) M_{e\sigma} G}\]

where

  • \(\mathbf{G}\) is the nodal gradient operator

  • \(\mathbf{B}\) is a matrix that implements boundary conditions

  • \(\mathbf{M_{e\sigma}}\) is the inner-product matrix for conductivities projected to edges

See the Notes section of the doc strings for Simulation3DNodal for a full description of the formulation.

Where \(\mathbf{m}\) are the set of model parameters defining the electromagnetic properties \(\mathbf{v}\) is a vector and \(\boldsymbol{\phi}\) is the discrete electric potential solution, this method assumes the discrete solution is fixed and returns

\[\frac{\partial (\mathbf{A} \, \boldsymbol{\phi})}{\partial \mathbf{m}} \, \mathbf{v}\]

Or the adjoint operation

\[\frac{\partial (\mathbf{A} \, \boldsymbol{\phi})}{\partial \mathbf{m}}^T \, \mathbf{v}\]
Parameters:
u(n_nodes,) numpy.ndarray

The solution for the electric potentials.

vnumpy.ndarray

The vector. (n_param,) for the standard operation. (n_nodes,) for the adjoint operation.

adjointbool

Whether to perform the adjoint operation.

Returns:
numpy.ndarray

Derivative of system matrix times a vector. (n_nodes,) for the standard operation. (n_param,) for the adjoint operation.