- //! list of interpolations couple to be done
- std::vector< std::pair<int,int> > _to_do_list;
- std::vector< std::pair<int,bool> > _procs_to_send;
- std::map<std::pair<int,bool>, MEDCouplingAutoRefCountObjectPtr< MEDCouplingPointSet > > _remote_meshes;
- std::map<std::pair<int,bool>, MEDCouplingAutoRefCountObjectPtr< DataArrayInt > > _remote_elems;
+ //! todo lists per proc
+ std::vector< std::vector< ProcCouple > > _all_todo_lists;
+ //! list of interpolation couples to be done by this proc only. This is a simple extraction of the member above _all_todo_lists
+ std::vector< ProcCouple > _to_do_list;
+ //! list of procs the local proc will have to send mesh data to:
+ std::vector< Proc_SrcOrTgt > _procs_to_send_mesh;
+// /*! list of procs the local proc will have to send field data to for the final matrix-vector computation:
+// * This can be different from _procs_to_send_mesh (restricted to Source) because interpolation matrix bits are computed on a potentially
+// * different proc than the target one. */
+ std::vector< int > _procs_to_send_field;
+ //! Set of distant meshes
+ std::map< Proc_SrcOrTgt, AutoMCPointSet > _remote_meshes;
+ //! Set of cell ID mappings for the above distant meshes (because only part of the meshes are exchanged)
+ std::map< Proc_SrcOrTgt, AutoDAInt > _remote_elems;