- std::vector< int > _target_proc_id_st;
-
- /**! Vector of remote proc IDs from which this proc received cell IDs of the source mesh.
- * Indexing shared with _nb_of_rcv_src_ids_proc_st2 */
- std::vector< int > _rcv_src_ids_proc_st2;
- /**! Number of received source mesh IDs at mesh data exchange. See _src_ids_proc_st2 above.
- Counting the number of IDs suffices, as we just need this to prepare the receive when doing the final vector matrix multiplication */
- std::vector< int > _nb_of_rcv_src_ids_proc_st2;
-
- /**! Specifies for each (target) remote proc ID (given in _src_ids_zip_proc_st2 below) the corresponding
- * source cell IDs to use. Same indexing as _src_ids_zip_proc_st2. Sorted.
- * On a given proc, and after updateZipSourceIdsForMultiply(), this member contains exactly the same set of source cell IDs as what is given
- * in the locally held interpolation matrices.
- * IMPORTANT: as a consequence cell IDs in _src_ids_zip_st2 are *remote* identifiers. */
- std::vector< std::vector<int> > _src_ids_zip_st2;
- //! Vector of remote proc ID to which the local source mapping above corresponds. See _src_ids_zip_st2 above.
- std::vector< int > _src_ids_zip_proc_st2;
+ vector< int > _target_proc_id_st;
+
+ /**! Number of received source mesh IDs at mesh data exchange.
+ Counting the number of IDs suffices, as we just need this to prepare the receive side, when doing the final vector matrix multiplication.
+ First dimension is the remote proc ID from which we received. */
+ map <int, int > _nb_of_rcv_src_ids;
+
+ /**! Specifies for each (target) remote proc ID (first dim of the map) the corresponding
+ * source cell IDs to use.
+ * This information is stored from the *locally* COMPuted matrices, and corresponds hence to field value that will need to
+ * sent later on, if this matrix bit itself is sent aways. */
+ map<int, vector<int> > _src_ids_zip_comp;
+
+ /**! Same idea as _src_ids_zip_comp above, but for RECEIVED matrix. */
+ map<int, vector<int> > _src_ids_zip_recv;