From 658d481dd6d49a4e013d7e5a3da7f8d922ccdcc0 Mon Sep 17 00:00:00 2001 From: Rowan Cockett Date: Mon, 1 Jun 2015 15:41:25 -0700 Subject: [PATCH] PropMap Bug fix with unmapped derivs. --- SimPEG/PropMaps.py | 5 ++++- SimPEG/Tests/test_PropMaps.py | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/SimPEG/PropMaps.py b/SimPEG/PropMaps.py index 3bc11d3c..65b735b8 100644 --- a/SimPEG/PropMaps.py +++ b/SimPEG/PropMaps.py @@ -68,7 +68,10 @@ class Property(object): if mapping is None and prop.propertyLink is not None: linkName, linkMapClass = prop.propertyLink - linkMap = linkMapClass(None) * getattr(self, '%sMap'%linkName) + linkedMap = getattr(self, '%sMap'%linkName) + if linkedMap is None: + return None + linkMap = linkMapClass(None) * linkedMap m = getattr(self, '%s'%linkName) return linkMap.deriv( m ) diff --git a/SimPEG/Tests/test_PropMaps.py b/SimPEG/Tests/test_PropMaps.py index bb5788bc..75c747cf 100644 --- a/SimPEG/Tests/test_PropMaps.py +++ b/SimPEG/Tests/test_PropMaps.py @@ -10,7 +10,8 @@ class MyPropMap(Maps.PropMap): class MyReciprocalPropMap(Maps.PropMap): sigma = Maps.Property("Electrical Conductivity", defaultInvProp=True, propertyLink=('rho', Maps.ReciprocalMap)) rho = Maps.Property("Electrical Resistivity", propertyLink=('sigma', Maps.ReciprocalMap)) - mu = Maps.Property("Mu", defaultVal=mu_0) + mu = Maps.Property("Mu", defaultVal=mu_0, propertyLink=('mui', Maps.ReciprocalMap)) + mui = Maps.Property("Mu", defaultVal=1./mu_0, propertyLink=('mu', Maps.ReciprocalMap)) class TestPropMaps(unittest.TestCase): @@ -102,6 +103,11 @@ class TestPropMaps(unittest.TestCase): assert pm.sigmaDeriv is not None assert pm.rhoDeriv is not None + assert pm.muMap is None + assert pm.muDeriv is None + assert pm.muiMap is None + assert pm.muiDeriv is None + PM = MyReciprocalPropMap([('rho', iMap)]) pm = PM(np.r_[1,2.,3]) # print pm.sigma