diff --git a/SimPEG/Utils/__init__.py b/SimPEG/Utils/__init__.py index 269cfdc5..1331cc8c 100644 --- a/SimPEG/Utils/__init__.py +++ b/SimPEG/Utils/__init__.py @@ -1,5 +1,5 @@ from matutils import getSubArray, mkvc, ndgrid, ind2sub, sub2ind -from sputils import spzeros, kron3, speye, sdiag, ddx, av, avExtrap +from sputils import spzeros, kron3, speye, sdiag, sdInv, ddx, av, avExtrap from meshutils import exampleLomGird, meshTensors from lomutils import volTetra, faceInfo, inv2X2BlockDiagonal, inv3X3BlockDiagonal, indexCube from interputils import interpmat diff --git a/SimPEG/Utils/sputils.py b/SimPEG/Utils/sputils.py index 06eef80d..f671be43 100644 --- a/SimPEG/Utils/sputils.py +++ b/SimPEG/Utils/sputils.py @@ -7,6 +7,9 @@ def sdiag(h): """Sparse diagonal matrix""" return sp.spdiags(mkvc(h), 0, h.size, h.size, format="csr") +def sdInv(M): + "Inverse of a sparse diagonal matrix" + return sdiag(1/M.diagonal()) def speye(n): """Sparse identity"""