def test_map2Dto3D_y(self): M2 = discretize.TensorMesh([3, 4]) M3 = discretize.TensorMesh([3, 2, 4]) m = np.random.rand(M2.nC) for m2to3 in [ maps.Surject2Dto3D(M3, normal="Y"), ]: # m2to3 = maps.Surject2Dto3D(M3, normal='Y') m = np.arange(m2to3.nP) self.assertTrue(m2to3.test()) self.assertTrue(m2to3.testVec()) self.assertTrue( np.all(utils.mkvc((m2to3 * m).reshape(M3.vnC, order="F")[:, 0, :]) == m) )
############################################################################### # Mappings # --------- # # Mappings are used to take the inversion model and represent it as electrical # conductivity on the inversion mesh. We will invert for log-conductivity below # the surface, fixing the conductivity of the air cells to 1e-8 S/m # create a 2D mesh that includes air cells mesh2D = discretize.TensorMesh([mesh.hx, mesh.hz], x0=mesh.x0[[0, 2]]) active_inds = mesh2D.gridCC[:, 1] < 0 # active indices are below the surface mapping = ( maps.Surject2Dto3D(mesh) * maps.InjectActiveCells( # populates 3D space from a 2D model mesh2D, active_inds, sigma_air ) * maps.ExpMap( # adds air cells nP=inversion_mesh.nC ) # takes the exponential (log(sigma) --> sigma) ) ############################################################################### # True Model # ---------- # # Create our true model which we will use to generate synthetic data for m_true = np.log(sigma_deep) * np.ones(inversion_mesh.nC)