def distribute(self, mesh, normalizer): """ Distribute a Mesh """ self._setupLogging() logEvent = "%sdistribute" % self._loggingPrefix self._eventLogger.eventBegin(logEvent) from pylith.topology.Mesh import Mesh newMesh = Mesh(mesh.dimension()) if self.partitioner == "metis": partitionerName = "parmetis" else: partitionerName = self.partitioner ModuleDistributor.distribute(newMesh, mesh, partitionerName) #from pylith.utils.petsc import MemoryLogger #memoryLogger = MemoryLogger.singleton() #memoryLogger.stagePush(mesh.memLoggingStage) mesh.cleanup() #memoryLogger.stagePop() if self.writePartition: self.dataWriter.initialize(normalizer) ModuleDistributor.write(self.dataWriter, newMesh) self._eventLogger.eventEnd(logEvent) return newMesh
def __init__(self, name="mesh_distributor"): """ Constructor. """ PetscComponent.__init__(self, name, facility="mesh_distributor") ModuleDistributor.__init__(self) return