def test_subgrid_translation(self): grid = GridGen.create_grid((4,4,4), (1,1,1), offset=0.5, irregular=True, irregular_offset=True, concave=True, translation=(10,10,0)) # Create grid with MAPAXES mapaxes = EclKW("MAPAXES", 6, EclDataType.ECL_FLOAT) for i, val in enumerate([1200, 1400, 2500, 2500, 3700, 4000]): mapaxes[i] = val grid = EclGrid.create( grid.getDims(), grid.export_zcorn(), grid.export_coord(), None, mapaxes=mapaxes ) for translation in [ (0,0,0), (10, 10, 100), (-1, -1, -1) ]: subgrid = GridGen.extract_subgrid( grid, ((0,3), (0,3), (0,3)), translation=translation ) self.assertEqual(grid.getDims(), subgrid.getDims()) translation = numpy.array(translation) for gindex in range(grid.getGlobalSize()): grid_corners = [ grid.getCellCorner(i, global_index=gindex) for i in range(8) ] subgrid_corners = [ subgrid.getCellCorner(i, global_index=gindex) for i in range(8) ] subgrid_corners = [ list(numpy.array(corner) - translation) for corner in subgrid_corners ] for gc, sc in zip(grid_corners, subgrid_corners): self.assertAlmostEqualList( gc, sc, msg="Failed to translate corners correctly." + "Expected %s, was %s." % (gc, sc), tolerance=10e-10 )
def test_subgrid_extration(self): for _, _, grid in self.test_base[:-1:]: grid_dims = grid.getDims()[:-1:] ijk_bounds = generate_ijk_bounds(grid_dims) for ijk_bound in ijk_bounds: if not decomposition_preserving(ijk_bound): continue sub_dims = tuple([u - l + 1 for l, u in ijk_bound]) subgrid = GridGen.extract_subgrid(grid, ijk_bound) self.assertEqual(sub_dims, subgrid.getDims()[:-1:]) self.assertSubgrid(grid, subgrid, ijk_bound)
def test_subgrid_extration(self): for _, _, grid in self.test_base[:-1:]: grid_dims = grid.getDims()[:-1:] ijk_bounds = generate_ijk_bounds(grid_dims) for ijk_bound in ijk_bounds: if not decomposition_preserving(ijk_bound): continue sub_dims = tuple([u-l+1 for l, u in ijk_bound]) subgrid = GridGen.extract_subgrid(grid, ijk_bound) self.assertEqual(sub_dims, subgrid.getDims()[:-1:]) self.assertSubgrid(grid, subgrid, ijk_bound)