23 #include "rheolef/vec_concat.h"
25 namespace rheolef {
namespace details {
27 template <
class T,
class M>
34 size_type iproc0 = constraint_process_rank (comm);
41 for(
typename std::list<value_type>::const_iterator iter = _l.begin(); iter != _l.end(); ++iter) {
47 case value_type::scalars:
51 comm = x.
v.ownership().comm();
52 v_sz += x.
v.ownership().size();
53 v_dis_sz += x.
v.ownership().dis_size();
58 if (my_proc == iproc0) { v_sz += s_sz; }
65 for(
typename std::list<value_type>::const_iterator iter = _l.begin(); iter != _l.end(); ++iter) {
69 if (my_proc == iproc0) {
73 case value_type::scalars:
74 if (my_proc == iproc0) {
75 for (
typename std::vector<T>::const_iterator
77 last = x.
ss.end(); iter != last; ++iter, ++pu) {
85 last = x.
v.end(); iter != last; ++iter, ++pu) {
96 #define _RHEOLEF_instanciation(T,M) \
97 template class vec_concat<T,M>;
100 #ifdef _RHEOLEF_HAVE_MPI
102 #endif // _RHEOLEF_HAVE_MPI