simpeg.electromagnetics.time_domain.Simulation3DMagneticField.getAdiagDeriv#
- Simulation3DMagneticField.getAdiagDeriv(tInd, u, v, adjoint=False)[source]#
Derivative operation for the diagonal system matrix times a vector.
The diagonal system matrix for time-step index k is given by:
\[\mathbf{A}_k = \mathbf{C^T M_{f\rho} C} + \frac{1}{\Delta t_k} \mathbf{M_{e\mu}}\]where
\(\Delta t_k\) is the step length
\(\mathbf{C}\) is the discrete curl operator
\(\mathbf{M_{f \rho}}\) is the resistivity inner-product matrix on faces
\(\mathbf{M_{e\mu}}\) is the permeability inner-product matrix on edges
See the Notes section of the doc strings for
Simulation3DMagneticField
for a full description of the formulation.Where \(\mathbf{m}\) are the set of model parameters, \(\mathbf{v}\) is a vector and \(\mathbf{h_k}\) is the discrete solution for time-step k, this method assumes the discrete solution is fixed and returns
\[\frac{\partial (\mathbf{A_k \, h_k})}{\partial \mathbf{m}} \, \mathbf{v}\]Or the adjoint operation
\[\frac{\partial (\mathbf{A_k \, h_k})}{\partial \mathbf{m}}^T \, \mathbf{v}\]- Parameters:
- tInd
int
The time-step index; between
[0, n_steps-1]
.- u(n_edges,)
numpy.ndarray
The solution for the fields for the current model; i.e. \(\mathbf{h_k}\).
- v
numpy.ndarray
The vector. (n_param,) for the standard operation. (n_edges,) for the adjoint operation.
- adjointbool
Whether to perform the adjoint operation.
- tInd
- Returns:
numpy.ndarray
Derivative of system matrix times a vector. (n_edges,) for the standard operation. (n_param,) for the adjoint operation.