def _MPIOperator_get_range_subtypes(self, pickle_subtypes): self = mpi.get_object(self) subtype = self.range.subtype if not pickle_subtypes: subtype = _register_subtype(subtype) subtypes = mpi.comm.gather(subtype, root=0) if mpi.rank0: return tuple(subtypes)
def _MPIDiscretization_get_subtypes(self, pickle_subtypes): self = mpi.get_object(self) subtype = self.solution_space.subtype if not pickle_subtypes: subtype = _register_subtype(subtype) subtypes = mpi.comm.gather(subtype, root=0) if mpi.rank0: return tuple(subtypes)
def _mpi_wrap_operator_VectorArrayOperator_manage_array(obj_id, pickle_subtypes): op = mpi.get_object(obj_id) array_obj_id = mpi.manage_object(op._array) subtype = op._array.subtype if not pickle_subtypes: subtype = _register_subtype(subtype) subtypes = mpi.comm.gather(subtype, root=0) mpi.remove_object(obj_id) if mpi.rank0: return array_obj_id, tuple(subtypes)
def _mpi_wrap_operator_VectorArrayOperator_manage_array( obj_id, pickle_subtypes): op = mpi.get_object(obj_id) array_obj_id = mpi.manage_object(op._array) subtype = op._array.subtype if not pickle_subtypes: subtype = _register_subtype(subtype) subtypes = mpi.comm.gather(subtype, root=0) mpi.remove_object(obj_id) if mpi.rank0: return array_obj_id, tuple(subtypes)