simpeg.electromagnetics.time_domain.Simulation3DElectricField.getRHSDeriv#

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

Derivative of the right-hand side times a vector for a given source and time index.

The right-hand side for a given source at time index k is constructed according to:

\[\mathbf{q}_k = -\frac{1}{\Delta t_k} \big [ \mathbf{s}_{\mathbf{e}, k} - \mathbf{s}_{\mathbf{e}, k-1} \big ] - \frac{1}{\Delta t_k} \mathbf{C^T M_{f\frac{1}{\mu}} } \big [ \mathbf{s}_{\mathbf{m}, k} - \mathbf{s}_{\mathbf{m}, k-1} \big ]\]

where

  • \(\Delta t_k\) is the step length

  • \(\mathbf{C}\) is the discrete curl operator

  • \(\mathbf{s_m}\) and \(\mathbf{s_e}\) are the integrated magnetic and electric source terms, respectively

  • \(\mathbf{M_{f\frac{1}{\mu}}}\) is the inner-product matrices for inverse permeabilities projected to faces

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

Where \(\mathbf{m}\) are the set of model parameters and \(\mathbf{v}\) is a vector, this method returns

\[\frac{\partial \mathbf{q_k}}{\partial \mathbf{m}} \, \mathbf{v}\]

Or the adjoint operation

\[\frac{\partial \mathbf{q_k}}{\partial \mathbf{m}}^T \, \mathbf{v}\]
Parameters:
tIndint

The time index; between [0, n_steps].

srctime_domain.sources.BaseTDEMSrc

The TDEM source object.

vnumpy.ndarray

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

adjointbool

Whether to perform the adjoint operation.

Returns:
numpy.ndarray

Derivative of the right-hand sides times a vector. (n_edges,) for the standard operation. (n_param,) for the adjoint operation.