def test_sum(self): M2 = Mesh.TensorMesh([np.ones(10), np.ones(20)], "CC") block = ( Maps.ParametricEllipsoid(M2) * Maps.Projection(7, np.r_[1, 2, 3, 4, 5, 6]) ) background = ( Maps.ExpMap(M2) * Maps.SurjectFull(M2) * Maps.Projection(7, np.r_[0]) ) summap0 = Maps.SumMap([block, background]) summap1 = block + background m0 = np.hstack([ np.random.rand(3), np.r_[M2.x0[0], 2*M2.hx.min()], np.r_[M2.x0[1], 4*M2.hy.min()] ]) self.assertTrue( np.all(summap0 * m0 == summap1 * m0) ) self.assertTrue(summap0.test(m0)) self.assertTrue(summap1.test(m0))
def test_Projection(self): nP = 10 m = np.arange(nP) self.assertTrue(np.all(Maps.Projection(nP, slice(5)) * m == m[:5])) self.assertTrue( np.all(Maps.Projection(nP, slice(5, None)) * m == m[5:])) self.assertTrue( np.all( Maps.Projection(nP, np.r_[1, 5, 3, 2, 9, 9]) * m == np.r_[1, 5, 3, 2, 9, 9])) self.assertTrue( np.all( Maps.Projection(nP, [1, 5, 3, 2, 9, 9]) * m == np.r_[1, 5, 3, 2, 9, 9])) with self.assertRaises(AssertionError): Maps.Projection(nP, np.r_[10]) * m mapping = Maps.Projection(nP, np.r_[1, 2, 6, 1, 3, 5, 4, 9, 9, 8, 0]) mapping.test()
def projectionMapPrimary(self): return Maps.Projection(nP=9, index=np.r_[0, 1, 3, 4])
csx, ncx, npadx = 25., 16, 10 csz, ncz, npadz = 25., 8, 10 pf = 1.5 # primary mesh hx = [(csx, ncx), (csx, npadx, pf)] hz = [(csz, npadz, -pf), (csz, ncz), (csz, npadz, pf)] meshp = Mesh.CylMesh([hx, 1., hz], x0='0CC') # secondary mesh h = [(csz, npadz - 4, -pf), (csz, ncz), (csz, npadz - 4, pf)] meshs = Mesh.TensorMesh(3 * [h], x0='CCC') # mappings primaryMapping = (Maps.ExpMap(meshp) * Maps.SurjectFull(meshp) * Maps.Projection(nP=8, index=[0])) mapping = ( Maps.ExpMap(meshs) * Maps.ParametricBlockInLayer(meshs) * Maps.Projection(nP=8, index=np.hstack([np.r_[0], np.arange(0, 8)]))) primaryMap2Meshs = (Maps.ExpMap(meshs) * Maps.SurjectFull(meshs) * Maps.Projection(nP=8, index=[0])) class PrimSecFDEMTest(object): # --------------------- Run some tests! --------------------- # def DataTest(self): print('\nTesting Data') dpred_primsec = self.secondarySurvey.dpred(model,