Rheolef  7.2
an efficient C++ finite element environment
 
Loading...
Searching...
No Matches
hack_array_mpi_rep< T, A >

Detailed Description

template<class T, class A>
class rheolef::hack_array_mpi_rep< T, A >

Definition at line 157 of file hack_array.h.

+ Inheritance diagram for hack_array_mpi_rep< T, A >:

Classes

struct  dis_reference
 
struct  message_type
 

Public Types

typedef hack_array_seq_rep< T, Abase
 
typedef base::base raw_base
 
typedef base::size_type size_type
 
typedef base::value_type value_type
 
typedef base::allocator_type allocator_type
 
typedef base::generic_value_type generic_value_type
 
typedef base::automatic_value_type automatic_value_type
 
typedef base::raw_type raw_type
 
typedef base::parameter_type parameter_type
 
typedef base::reference reference
 
typedef base::const_reference const_reference
 
typedef base::iterator iterator
 
typedef base::const_iterator const_iterator
 
typedef distributed memory_type
 
typedef std::map< size_type, automatic_value_typescatter_map_type
 
- Public Types inherited from hack_array_seq_rep< T, A >
typedef disarray_rep< typename T::raw_type, sequential, Abase
 
typedef T raw_value_type
 
typedef T::generic_type value_type
 
typedef T::generic_type generic_value_type
 
typedef T::automatic_type automatic_value_type
 
typedef A allocator_type
 
typedef T::parameter_type parameter_type
 
typedef generic_value_type::raw_type raw_type
 
typedef base::size_type size_type
 
typedef value_typereference
 
typedef const value_typeconst_reference
 
typedef reference dis_reference
 
typedef sequential memory_type
 
typedef hack_array_iterator< generic_value_type, generic_value_type &, generic_value_type *, raw_type, raw_type * > iterator
 
typedef hack_array_iterator< generic_value_type, const generic_value_type &, const generic_value_type *, raw_type, const raw_type * > const_iterator
 

Public Member Functions

 hack_array_mpi_rep (const A &alloc=A())
 
 hack_array_mpi_rep (const distributor &ownership, const parameter_type &param, const A &alloc=A())
 
void resize (const distributor &ownership, const parameter_type &param)
 
A get_allocator () const
 
const distributorownership () const
 
const communicatorcomm () const
 
size_type dis_size () const
 
size_type size () const
 
const generic_value_typeoperator[] (size_type ie) const
 
generic_value_typeoperator[] (size_type ie)
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
dis_reference dis_entry (size_type dis_i)
 
void dis_entry_assembly_begin ()
 
void dis_entry_assembly_end ()
 
void dis_entry_assembly ()
 
template<class Set , class Map >
void append_dis_entry (const Set &ext_idx_set, Map &ext_idx_map) const
 get values from ext_idx_set, that are managed by another proc new version: instead of sending automatic_data_type, send data_size*raw_value_type to boost::mpi => should work with mpi::boost and use simple MPI_Datatype instead of mallocated complex one
 
template<class Set , class Map >
void get_dis_entry (const Set &ext_idx_set, Map &ext_idx_map) const
 
template<class Set >
void append_dis_indexes (const Set &ext_idx_set) const
 
template<class Set >
void set_dis_indexes (const Set &ext_idx_set)
 
void update_dis_entries () const
 
const_reference dis_at (size_type dis_i) const
 
template<class A2 >
void repartition (const disarray_rep< size_type, distributed, A2 > &partition, hack_array_mpi_rep< T, A > &new_array, disarray_rep< size_type, distributed, A2 > &old_numbering, disarray_rep< size_type, distributed, A2 > &new_numbering) const
 
const scatter_map_typeget_dis_map_entries () const
 
idiststreamget_values (idiststream &ips)
 
odiststreamput_values (odiststream &ops) const
 
template<class GetFunction >
idiststreamget_values (idiststream &ips, GetFunction get_element)
 
template<class PutFunction >
odiststreamput_values (odiststream &ops, PutFunction put_element) const
 
template<class PutFunction , class Permutation >
odiststreampermuted_put_values (odiststream &ops, const Permutation &perm, PutFunction put_element) const
 
- Public Member Functions inherited from hack_array_seq_rep< T, A >
 hack_array_seq_rep (const A &alloc=A())
 
 hack_array_seq_rep (const distributor &ownership, const parameter_type &param, const A &alloc=A())
 
void resize (const distributor &ownership, const parameter_type &param)
 
 hack_array_seq_rep (size_type n, const parameter_type &param, const A &alloc=A())
 
void resize (size_type n, const parameter_type &param)
 
A get_allocator () const
 
const distributorownership () const
 
const communicatorcomm () const
 
size_type size () const
 
size_type dis_size () const
 
const generic_value_typeoperator[] (size_type ie) const
 
generic_value_typeoperator[] (size_type ie)
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
idiststreamget_values (idiststream &ips)
 
odiststreamput_values (odiststream &ops) const
 
template<class GetFunction >
idiststreamget_values (idiststream &ips, GetFunction get_element)
 
template<class PutFunction >
odiststreamput_values (odiststream &ops, PutFunction put_element) const
 

Protected Types

typedef std::map< size_type, raw_typestash_map_type
 

Protected Member Functions

void set_dis_entry (size_type dis_i, const generic_value_type &val)
 
- Protected Member Functions inherited from hack_array_seq_rep< T, A >
void _init (const distributor &ownership, const parameter_type &param)
 

Protected Attributes

stash_map_type _stash
 
message_type _send
 
message_type _receive
 
size_type _receive_max_size
 
scatter_map_type _ext_x
 
- Protected Attributes inherited from hack_array_seq_rep< T, A >
distributor _ownership
 
parameter_type _parameter
 
size_type _value_size
 
size_type _data_size
 

Member Typedef Documentation

◆ base

template<class T , class A >
typedef hack_array_seq_rep<T,A> base

Definition at line 162 of file hack_array.h.

◆ raw_base

template<class T , class A >
typedef base::base raw_base

Definition at line 163 of file hack_array.h.

◆ size_type

template<class T , class A >
typedef base::size_type size_type

Definition at line 164 of file hack_array.h.

◆ value_type

template<class T , class A >
typedef base::value_type value_type

Definition at line 165 of file hack_array.h.

◆ allocator_type

template<class T , class A >
typedef base::allocator_type allocator_type

Definition at line 166 of file hack_array.h.

◆ generic_value_type

template<class T , class A >
typedef base::generic_value_type generic_value_type

Definition at line 167 of file hack_array.h.

◆ automatic_value_type

template<class T , class A >
typedef base::automatic_value_type automatic_value_type

Definition at line 168 of file hack_array.h.

◆ raw_type

template<class T , class A >
typedef base::raw_type raw_type

Definition at line 169 of file hack_array.h.

◆ parameter_type

template<class T , class A >
typedef base::parameter_type parameter_type

Definition at line 170 of file hack_array.h.

◆ reference

template<class T , class A >
typedef base::reference reference

Definition at line 171 of file hack_array.h.

◆ const_reference

template<class T , class A >
typedef base::const_reference const_reference

Definition at line 172 of file hack_array.h.

◆ iterator

template<class T , class A >
typedef base::iterator iterator

Definition at line 173 of file hack_array.h.

◆ const_iterator

template<class T , class A >
typedef base::const_iterator const_iterator

Definition at line 174 of file hack_array.h.

◆ memory_type

template<class T , class A >
typedef distributed memory_type

Definition at line 175 of file hack_array.h.

◆ scatter_map_type

template<class T , class A >
typedef std::map<size_type, automatic_value_type> scatter_map_type

Definition at line 176 of file hack_array.h.

◆ stash_map_type

template<class T , class A >
typedef std::map<size_type, raw_type> stash_map_type
protected

1) stash: store data before assembly() communications:

Definition at line 277 of file hack_array.h.

Constructor & Destructor Documentation

◆ hack_array_mpi_rep() [1/2]

template<class T , class A >
hack_array_mpi_rep ( const A alloc = A())

Definition at line 32 of file hack_array_mpi.icc.

◆ hack_array_mpi_rep() [2/2]

template<class T , class A >
hack_array_mpi_rep ( const distributor ownership,
const parameter_type param,
const A alloc = A() 
)

Definition at line 42 of file hack_array_mpi.icc.

Member Function Documentation

◆ resize()

template<class T , class A >
void resize ( const distributor ownership,
const parameter_type param 
)

Definition at line 53 of file hack_array_mpi.icc.

◆ get_allocator()

template<class T , class A >
A get_allocator ( ) const

Definition at line 201 of file hack_array.h.

◆ ownership()

template<class T , class A >
const distributor & ownership ( ) const

Definition at line 202 of file hack_array.h.

◆ comm()

template<class T , class A >
const communicator & comm ( ) const

Definition at line 203 of file hack_array.h.

◆ dis_size()

template<class T , class A >
size_type dis_size ( ) const

Definition at line 204 of file hack_array.h.

◆ size()

template<class T , class A >
size_type size ( ) const

Definition at line 206 of file hack_array.h.

◆ operator[]() [1/2]

template<class T , class A >
const generic_value_type & operator[] ( size_type  ie) const

Definition at line 207 of file hack_array.h.

◆ operator[]() [2/2]

template<class T , class A >
generic_value_type & operator[] ( size_type  ie)

Definition at line 208 of file hack_array.h.

◆ begin() [1/2]

template<class T , class A >
iterator begin ( )

Definition at line 210 of file hack_array.h.

◆ begin() [2/2]

template<class T , class A >
const_iterator begin ( ) const

Definition at line 211 of file hack_array.h.

◆ end() [1/2]

template<class T , class A >
iterator end ( )

Definition at line 212 of file hack_array.h.

◆ end() [2/2]

template<class T , class A >
const_iterator end ( ) const

Definition at line 213 of file hack_array.h.

◆ dis_entry()

template<class T , class A >
dis_reference dis_entry ( size_type  dis_i)

Definition at line 215 of file hack_array.h.

◆ dis_entry_assembly_begin()

template<class T , class A >
void dis_entry_assembly_begin ( )

Definition at line 86 of file hack_array_mpi.icc.

◆ dis_entry_assembly_end()

template<class T , class A >
void dis_entry_assembly_end ( )

Definition at line 100 of file hack_array_mpi.icc.

◆ dis_entry_assembly()

template<class T , class A >
void dis_entry_assembly ( )

Definition at line 219 of file hack_array.h.

◆ append_dis_entry()

template<class T , class A >
template<class Set , class Map >
void append_dis_entry ( const Set &  ext_idx_set,
Map &  ext_idx_map 
) const

get values from ext_idx_set, that are managed by another proc new version: instead of sending automatic_data_type, send data_size*raw_value_type to boost::mpi => should work with mpi::boost and use simple MPI_Datatype instead of mallocated complex one

Definition at line 128 of file hack_array_mpi.icc.

◆ get_dis_entry()

template<class T , class A >
template<class Set , class Map >
void get_dis_entry ( const Set &  ext_idx_set,
Map &  ext_idx_map 
) const

Definition at line 225 of file hack_array.h.

◆ append_dis_indexes()

template<class T , class A >
template<class Set >
void append_dis_indexes ( const Set &  ext_idx_set) const

Definition at line 231 of file hack_array.h.

◆ set_dis_indexes()

template<class T , class A >
template<class Set >
void set_dis_indexes ( const Set &  ext_idx_set)

Definition at line 234 of file hack_array.h.

◆ update_dis_entries()

template<class T , class A >
void update_dis_entries ( ) const

Definition at line 218 of file hack_array_mpi.icc.

◆ dis_at()

template<class T , class A >
hack_array_mpi_rep< T, A >::const_reference dis_at ( size_type  dis_i) const

Definition at line 206 of file hack_array_mpi.icc.

◆ repartition()

template<class T , class A >
template<class A2 >
void repartition ( const disarray_rep< size_type, distributed, A2 > &  partition,
hack_array_mpi_rep< T, A > &  new_array,
disarray_rep< size_type, distributed, A2 > &  old_numbering,
disarray_rep< size_type, distributed, A2 > &  new_numbering 
) const

Definition at line 374 of file hack_array_mpi.icc.

◆ get_dis_map_entries()

template<class T , class A >
const scatter_map_type & get_dis_map_entries ( ) const

Definition at line 257 of file hack_array.h.

◆ get_values() [1/2]

template<class T , class A >
idiststream & get_values ( idiststream ips)

Definition at line 343 of file hack_array_mpi.icc.

◆ put_values() [1/2]

template<class T , class A >
odiststream & put_values ( odiststream ops) const

Definition at line 283 of file hack_array_mpi.icc.

◆ get_values() [2/2]

template<class T , class A >
template<class GetFunction >
idiststream & get_values ( idiststream ips,
GetFunction  get_element 
)

Definition at line 290 of file hack_array_mpi.icc.

◆ put_values() [2/2]

template<class T , class A >
template<class PutFunction >
odiststream & put_values ( odiststream ops,
PutFunction  put_element 
) const

Definition at line 234 of file hack_array_mpi.icc.

◆ permuted_put_values()

template<class T , class A >
template<class PutFunction , class Permutation >
odiststream & permuted_put_values ( odiststream ops,
const Permutation &  perm,
PutFunction  put_element 
) const

Definition at line 350 of file hack_array_mpi.icc.

◆ set_dis_entry()

template<class T , class A >
void set_dis_entry ( size_type  dis_i,
const generic_value_type val 
)
protected

Definition at line 68 of file hack_array_mpi.icc.

Member Data Documentation

◆ _stash

template<class T , class A >
stash_map_type _stash
protected

3) scatter (get_entry): specialized versions for T=container and T=simple type

Definition at line 290 of file hack_array.h.

◆ _send

template<class T , class A >
message_type _send
protected

Definition at line 291 of file hack_array.h.

◆ _receive

template<class T , class A >
message_type _receive
protected

Definition at line 292 of file hack_array.h.

◆ _receive_max_size

template<class T , class A >
size_type _receive_max_size
protected

Definition at line 293 of file hack_array.h.

◆ _ext_x

template<class T , class A >
scatter_map_type _ext_x
mutableprotected

Definition at line 294 of file hack_array.h.


The documentation for this class was generated from the following files: