simpeg.electromagnetics.static.self_potential.Simulation3DCellCentered.getADeriv#
- Simulation3DCellCentered.getADeriv(u, v, adjoint=False)[source]#
Get resistivity derivative operation for the system matrix times a vector.
The system matrix is given by:
\[\mathbf{A} = \mathbf{M_c D M_{f\rho} (G - B) M_c}\]where
\(\mathbf{D}\) is the divergence operator (faces to cell centers)
\(\mathbf{B}\) is a matrix that implements boundary conditions
\(\mathbf{M_c}\) is the cell inner-product matrix
\(\mathbf{M_{f\rho}}\) is the inner-product matrix for resistivities projected to faces
See the Notes section of the doc strings for
Simulation3DCellCenteredfor 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_cells,)
numpy.ndarray The solution for the electric potentials.
- v
numpy.ndarray The vector. (n_param,) for the standard operation. (n_cells,) for the adjoint operation.
- adjointbool
Whether to perform the adjoint operation.
- u(n_cells,)
- Returns:
numpy.ndarrayDerivative of system matrix times a vector. (n_cells,) for the standard operation. (n_param,) for the adjoint operation.