Пример #1
0
    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))
Пример #2
0
    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()
Пример #3
0
 def projectionMapPrimary(self):
     return Maps.Projection(nP=9, index=np.r_[0, 1, 3, 4])
Пример #4
0
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,