simpeg.electromagnetics.frequency_domain.Simulation3DMagneticField.getADeriv#
- Simulation3DMagneticField.getADeriv(freq, u, v, adjoint=False)[source]#
Derivative operation for the system matrix times a vector.
The system matrix at each frequency is given by:
\[\mathbf{A} = \mathbf{C^T M_{f\rho} C} + i\omega \mathbf{M_{e\mu}}\]where
\(\mathbf{M_{f\rho}}\) is the inner-product matrix for resistivities projected to faces
\(\mathbf{M_{e\mu}}\) is the inner-product matrix for permeabilities projected to 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 defining the electromagnetic properties, \(\mathbf{v}\) is a vector and \(\mathbf{h}\) is the discrete electric field solution, this method assumes the discrete solution is fixed and returns
\[\frac{\partial (\mathbf{A \, h})}{\partial \mathbf{m}} \, \mathbf{v}\]Or the adjoint operation
\[\frac{\partial (\mathbf{A \, h})}{\partial \mathbf{m}}^T \, \mathbf{v}\]- Parameters:
- freq
float
The frequency in Hz.
- u(n_edges,)
numpy.ndarray
The solution for the fields for the current model at the specified frequency.
- v
numpy.ndarray
The vector. (n_param,) for the standard operation. (n_edges,) for the adjoint operation.
- adjointbool
Whether to perform the adjoint operation.
- freq
- Returns:
numpy.ndarray
Derivative of system matrix times a vector. (n_edges,) for the standard operation. (n_param,) for the adjoint operation.