def __init__(self, tag=dTag, comm=mpi.COMM_WORLD(), create=True): self.obj = c_void_p() self.tag = tag CheckTag(tag) if create: args = [pointer(self.obj), comm] if tag == iTag: lib.ElDistSparseMatrixCreate_i(*args) elif tag == sTag: lib.ElDistSparseMatrixCreate_s(*args) elif tag == dTag: lib.ElDistSparseMatrixCreate_d(*args) elif tag == cTag: lib.ElDistSparseMatrixCreate_c(*args) elif tag == zTag: lib.ElDistSparseMatrixCreate_z(*args) else: DataExcept()
def DistGraph(self,locked=False): graph = DG.DistGraph(mpi.COMM_WORLD(),False) args = [self.obj,pointer(graph.obj)] if locked: if self.tag == iTag: lib.ElDistSparseMatrixLockedDistGraph_i(*args) elif self.tag == sTag: lib.ElDistSparseMatrixLockedDistGraph_s(*args) elif self.tag == dTag: lib.ElDistSparseMatrixLockedDistGraph_d(*args) elif self.tag == cTag: lib.ElDistSparseMatrixLockedDistGraph_c(*args) elif self.tag == zTag: lib.ElDistSparseMatrixLockedDistGraph_z(*args) else: DataExcept() else: if self.tag == iTag: lib.ElDistSparseMatrixDistGraph_i(*args) elif self.tag == sTag: lib.ElDistSparseMatrixDistGraph_s(*args) elif self.tag == dTag: lib.ElDistSparseMatrixDistGraph_d(*args) elif self.tag == cTag: lib.ElDistSparseMatrixDistGraph_c(*args) elif self.tag == zTag: lib.ElDistSparseMatrixDistGraph_z(*args) else: DataExcept() return graph
def FromComm(cls,comm=mpi.COMM_WORLD(),order=COL_MAJOR): g = cls(False) lib.ElGridCreate(comm,order,pointer(g.obj)) return g
def __init__(self, comm=mpi.COMM_WORLD(), create=True): self.obj = c_void_p() if create: lib.ElDistGraphCreate(pointer(self.obj), comm)
def FromComm(cls, comm=mpi.COMM_WORLD(), order=COL_MAJOR): grid = cls(False) grid.obj = c_void_p() lib.ElGridCreate(comm, order, pointer(grid.obj)) return grid