def main(): R = Region([4, 4], {'x': legion.float64}) # Create a partition of R. P = Partition.equal(R, [2, 2]) # Same as above, broken explicitly into two steps. IP2 = Ipartition.equal(R.ispace, [2, 2]) P2 = Partition(R, IP2) assert P.color_space.volume == 4 # Grab a subregion of P. R00 = P[0, 0] print('Parent region has volume %s' % R.ispace.volume) assert R.ispace.volume == 16 assert check_subregion(R00).get() == 4 # Partition the subregion again. P00 = Partition.equal(R00, [2, 2]) total_volume = 0 for x in range(2): for y in range(2): R00xy = P00[x, y] total_volume += check_subregion(R00xy).get() assert total_volume == 4 # An easy way to iterate subregions: for Rij in P: assert Rij.ispace.volume == 4
def create_partition(is_disjoint, region, c_partition, color_space): ipart = Ipartition(c_partition.index_partition, region.ispace, color_space) return Partition(region, ipart)