def _MPIOperator_get_local_spaces(self, source, pickle_local_spaces): self = mpi.get_object(self) local_space = self.source if source else self.range if not pickle_local_spaces: local_space = _register_local_space(local_space) local_spaces = mpi.comm.gather(local_space, root=0) if mpi.rank0: return tuple(local_spaces)
def _MPIDiscretization_get_local_spaces(self, pickle_local_spaces): self = mpi.get_object(self) local_space = self.solution_space if not pickle_local_spaces: local_space = _register_local_space(local_space) local_spaces = mpi.comm.gather(local_space, root=0) if mpi.rank0: return tuple(local_spaces)
def _mpi_wrap_operator_VectorArrayOperator_manage_array(obj_id, pickle_local_spaces): op = mpi.get_object(obj_id) array_obj_id = mpi.manage_object(op._array) local_space = op._array.space if not pickle_local_spaces: local_space = _register_local_space(local_space) local_spaces = mpi.comm.gather(local_space, root=0) mpi.remove_object(obj_id) if mpi.rank0: return array_obj_id, tuple(local_spaces)
def _mpi_wrap_operator_VectorArrayOperator_manage_array(obj_id, pickle_local_spaces): op = mpi.get_object(obj_id) array_obj_id = mpi.manage_object(op.array) local_space = op.array.space if not pickle_local_spaces: local_space = _register_local_space(local_space) local_spaces = mpi.comm.gather(local_space, root=0) mpi.remove_object(obj_id) if mpi.rank0: return array_obj_id, tuple(local_spaces)