From 2a497556252557ef4abfcdf36c8dd67c1ab9acd5 Mon Sep 17 00:00:00 2001 From: rowanc1 Date: Thu, 9 Oct 2014 16:38:12 -0700 Subject: [PATCH] Log Maps --- SimPEG/Maps.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/SimPEG/Maps.py b/SimPEG/Maps.py index 706e83f2..31d45115 100644 --- a/SimPEG/Maps.py +++ b/SimPEG/Maps.py @@ -221,6 +221,27 @@ class ExpMap(IdentityMap): """ return Utils.sdiag(np.exp(Utils.mkvc(m))) + +class LogMap(IdentityMap): + + def __init__(self, mesh, **kwargs): + IdentityMap.__init__(self, mesh, **kwargs) + + def _transform(self, m): + return np.log(Utils.mkvc(m)) + + def deriv(self, m): + mod = Utils.mkvc(m) + deriv = np.zeros(mod.shape) + tol = 1e-16 # zero + ind = np.greater_equal(np.abs(mod),tol) + deriv[ind] = 1.0/mod[ind] + return Utils.sdiag(deriv) + + def inverse(self, m): + return np.exp(Utils.mkvc(m)) + + class Vertical1DMap(IdentityMap): """Vertical1DMap