Rheolef  7.1
an efficient C++ finite element environment
disarray_rep< T, distributed, A >
+ Inheritance diagram for disarray_rep< T, distributed, A >:

Classes

struct  dis_reference
 
struct  message_type
 
struct  remove_const_in_pair
 
struct  remove_const_in_pair< std::pair< T1, T2 > >
 
struct  stash_traits
 
struct  stash_traits< U, std::false_type >
 
struct  stash_traits< U, std::true_type >
 

Public Types

typedef disarray_rep< T, sequential, A > base
 
typedef base::value_type value_type
 
typedef base::size_type size_type
 
typedef base::difference_type difference_type
 
typedef base::reference reference
 
typedef base::const_reference const_reference
 
typedef base::iterator iterator
 
typedef base::const_iterator const_iterator
 
typedef distributor::communicator_type communicator_type
 
typedef distributed memory_type
 
typedef std::map< size_type, Tscatter_map_type
 
- Public Types inherited from disarray_rep< T, sequential, A >
typedef T value_type
 
typedef A allocator_type
 
typedef A::difference_type difference_type
 
typedef std::vector< Tbase
 
typedef base::size_type size_type
 
typedef base::iterator iterator
 
typedef base::const_iterator const_iterator
 
typedef base::const_reference const_reference
 
typedef base::reference reference
 
typedef reference dis_reference
 
typedef distributor::communicator_type communicator_type
 
typedef sequential memory_type
 

Public Member Functions

 disarray_rep (const distributor &ownership, const T &init_val=T(), const A &alloc=A())
 
void resize (const distributor &ownership, const T &init_val=T())
 
 disarray_rep (const disarray_rep< T, distributed, A > &x)
 
get_allocator () const
 
size_type size () const
 
const_iterator begin () const
 
const_iterator end () const
 
iterator begin ()
 
iterator end ()
 
const distributorownership () const
 
const mpi::communicator & comm () const
 
size_type first_index () const
 
size_type last_index () const
 
size_type dis_size () const
 
dis_reference dis_entry (size_type dis_i)
 
template<class SetOp = typename default_set_op<T>::type>
void dis_entry_assembly_begin (SetOp my_set_op=SetOp())
 
template<class SetOp = typename default_set_op<T>::type>
void dis_entry_assembly_end (SetOp my_set_op=SetOp())
 
template<class SetOp = typename default_set_op<T>::type>
void dis_entry_assembly (SetOp my_set_op=SetOp())
 
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 More...
 
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) const
 
void get_dis_indexes (std::set< size_type > &ext_idx_set) const
 
void reset_dis_indexes () const
 
const_reference dis_at (size_type dis_i) const
 
const scatter_map_typeget_dis_map_entries () const
 
template<class A2 >
void repartition (const disarray_rep< size_type, distributed, A2 > &partition, disarray_rep< T, distributed, A > &new_disarray, disarray_rep< size_type, distributed, A2 > &old_numbering, disarray_rep< size_type, distributed, A2 > &new_numbering) const
 
template<class A2 >
void permutation_apply (const disarray_rep< size_type, distributed, A2 > &new_numbering, disarray_rep< T, distributed, A > &new_disarray) const
 
template<class A2 >
void reverse_permutation (disarray_rep< size_type, distributed, A2 > &inew2dis_iold) const
 
idiststream & get_values (idiststream &s)
 
odiststreamput_values (odiststream &s) const
 
odiststreamput_matlab (odiststream &s) const
 
template<class GetFunction >
idiststream & get_values (idiststream &ips, GetFunction get_element)
 
template<class PutFunction >
odiststreamput_values (odiststream &ops, PutFunction put_element) const
 
template<class PutFunction , class A2 >
odiststreampermuted_put_values (odiststream &ops, const disarray_rep< size_type, distributed, A2 > &perm, PutFunction put_element) const
 
void dump (std::string name) const
 
- Public Member Functions inherited from disarray_rep< T, sequential, A >
 disarray_rep (const A &alloc=A())
 
 disarray_rep (const distributor &ownership, const T &init_val=T(), const A &alloc=A())
 
void resize (const distributor &ownership, const T &init_val=T())
 
 disarray_rep (size_type loc_size=0, const T &init_val=T(), const A &alloc=A())
 
void resize (size_type loc_size=0, const T &init_val=T())
 
 disarray_rep (const disarray_rep< T, sequential, A > &x)
 
get_allocator () const
 
size_type size () const
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
const distributorownership () const
 
reference operator[] (size_type i)
 
const_reference operator[] (size_type i) const
 
const_reference dis_at (size_type dis_i) const
 
size_type dis_size () const
 
size_type first_index () const
 
size_type last_index () const
 
reference dis_entry (size_type dis_i)
 
void get_dis_indexes (std::set< size_type > &ext_idx_set) const
 
void reset_dis_indexes () const
 
template<class SetOp = typename default_set_op<T>::type>
void dis_entry_assembly_begin (SetOp=SetOp())
 
template<class SetOp = typename default_set_op<T>::type>
void dis_entry_assembly_end (SetOp=SetOp())
 
void repartition (const disarray_rep< size_type, sequential, A > &partition, disarray_rep< T, sequential, A > &new_disarray, disarray_rep< size_type, sequential, A > &old_numbering, disarray_rep< size_type, sequential, A > &new_numbering) const
 
template<class A2 >
void reverse_permutation (disarray_rep< size_type, sequential, A2 > &inew2dis_iold) const
 
idiststream & get_values (idiststream &s)
 
odiststreamput_values (odiststream &s) const
 
odiststreamput_matlab (odiststream &s) const
 
template<class GetFunction >
idiststream & get_values (idiststream &ips, GetFunction get_element)
 
template<class PutFunction >
odiststreamput_values (odiststream &ops, PutFunction put_element) const
 
void dump (std::string name) const
 

Protected Types

typedef is_container_of_mpi_datatype< T >::type is_container
 
typedef stash_traits< T, is_container >::mapped_type stash_value
 
typedef stash_traits< T, is_container >::map_type stash_map_type
 

Protected Member Functions

void set_dis_entry (size_type dis_i, const T &val)
 
template<class U >
void set_add_dis_entry (size_type dis_i, const U &val)
 
template<class Set , class Map >
void append_dis_entry (const Set &ext_idx_set, Map &ext_idx_map, std::true_type) const
 get values from ext_idx_set, that are managed by another proc; here T=container type More...
 
template<class Set , class Map >
void append_dis_entry (const Set &ext_idx_set, Map &ext_idx_map, std::false_type) const
 get values from ext_idx_set, that are managed by another proc; here T=simple type More...
 

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 disarray_rep< T, sequential, A >
distributor _ownership
 

Detailed Description

template<class T, class A>
class rheolef::disarray_rep< T, distributed, A >

Definition at line 289 of file disarray.h.

Member Typedef Documentation

◆ base

Definition at line 294 of file disarray.h.

◆ value_type

typedef base::value_type value_type

Definition at line 295 of file disarray.h.

◆ size_type

Definition at line 296 of file disarray.h.

◆ difference_type

typedef base::difference_type difference_type

Definition at line 297 of file disarray.h.

◆ reference

typedef base::reference reference

Definition at line 298 of file disarray.h.

◆ const_reference

typedef base::const_reference const_reference

Definition at line 299 of file disarray.h.

◆ iterator

typedef base::iterator iterator

Definition at line 300 of file disarray.h.

◆ const_iterator

typedef base::const_iterator const_iterator

Definition at line 301 of file disarray.h.

◆ communicator_type

Definition at line 302 of file disarray.h.

◆ memory_type

Definition at line 303 of file disarray.h.

◆ scatter_map_type

typedef std::map<size_type, T> scatter_map_type

Definition at line 304 of file disarray.h.

◆ is_container

Definition at line 428 of file disarray.h.

◆ stash_value

typedef stash_traits<T,is_container>::mapped_type stash_value
protected

Definition at line 429 of file disarray.h.

◆ stash_map_type

typedef stash_traits<T,is_container>::map_type stash_map_type
protected

Definition at line 430 of file disarray.h.

Constructor & Destructor Documentation

◆ disarray_rep() [1/2]

disarray_rep ( const distributor ownership,
const T init_val = T(),
const A &  alloc = A() 
)

Definition at line 55 of file disarray_mpi.icc.

◆ disarray_rep() [2/2]

disarray_rep ( const disarray_rep< T, distributed, A > &  x)

Definition at line 41 of file disarray_mpi.icc.

Member Function Documentation

◆ resize()

void resize ( const distributor ownership,
const T init_val = T() 
)

Definition at line 69 of file disarray_mpi.icc.

◆ get_allocator()

A get_allocator ( ) const

Definition at line 331 of file disarray.h.

◆ size()

size_type size ( ) const

Definition at line 332 of file disarray.h.

◆ begin() [1/2]

const_iterator begin ( ) const

Definition at line 333 of file disarray.h.

◆ end() [1/2]

const_iterator end ( ) const

Definition at line 334 of file disarray.h.

◆ begin() [2/2]

iterator begin ( )

Definition at line 335 of file disarray.h.

◆ end() [2/2]

iterator end ( )

Definition at line 336 of file disarray.h.

◆ ownership()

const distributor& ownership ( ) const

Definition at line 338 of file disarray.h.

◆ comm()

const mpi::communicator& comm ( ) const

Definition at line 339 of file disarray.h.

◆ first_index()

size_type first_index ( ) const

Definition at line 340 of file disarray.h.

◆ last_index()

size_type last_index ( ) const

Definition at line 341 of file disarray.h.

◆ dis_size()

size_type dis_size ( ) const

Definition at line 342 of file disarray.h.

◆ dis_entry()

dis_reference dis_entry ( size_type  dis_i)

Definition at line 344 of file disarray.h.

◆ dis_entry_assembly_begin()

void dis_entry_assembly_begin ( SetOp  my_set_op = SetOp())

Definition at line 221 of file disarray_mpi.icc.

◆ dis_entry_assembly_end()

void dis_entry_assembly_end ( SetOp  my_set_op = SetOp())

Definition at line 236 of file disarray_mpi.icc.

◆ dis_entry_assembly()

void dis_entry_assembly ( SetOp  my_set_op = SetOp())

Definition at line 351 of file disarray.h.

◆ append_dis_entry() [1/3]

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

Definition at line 510 of file disarray_mpi.icc.

◆ get_dis_entry()

void get_dis_entry ( const Set &  ext_idx_set,
Map &  ext_idx_map 
) const

Definition at line 358 of file disarray.h.

◆ append_dis_indexes()

void append_dis_indexes ( const Set &  ext_idx_set) const

Definition at line 364 of file disarray.h.

◆ set_dis_indexes()

void set_dis_indexes ( const Set &  ext_idx_set) const

Definition at line 367 of file disarray.h.

◆ get_dis_indexes()

void get_dis_indexes ( std::set< size_type > &  ext_idx_set) const

Definition at line 528 of file disarray_mpi.icc.

◆ reset_dis_indexes()

void reset_dis_indexes ( ) const

Definition at line 403 of file disarray_mpi.icc.

◆ dis_at()

disarray_rep< T, distributed, A >::const_reference dis_at ( size_type  dis_i) const

Definition at line 516 of file disarray_mpi.icc.

◆ get_dis_map_entries()

const scatter_map_type& get_dis_map_entries ( ) const

Definition at line 374 of file disarray.h.

◆ repartition()

void repartition ( const disarray_rep< size_type, distributed, A2 > &  partition,
disarray_rep< T, distributed, A > &  new_disarray,
disarray_rep< size_type, distributed, A2 > &  old_numbering,
disarray_rep< size_type, distributed, A2 > &  new_numbering 
) const

Definition at line 260 of file disarray_mpi.icc.

◆ permutation_apply()

void permutation_apply ( const disarray_rep< size_type, distributed, A2 > &  new_numbering,
disarray_rep< T, distributed, A > &  new_disarray 
) const

Definition at line 327 of file disarray_mpi.icc.

◆ reverse_permutation()

void reverse_permutation ( disarray_rep< size_type, distributed, A2 > &  inew2dis_iold) const

Definition at line 311 of file disarray_mpi.icc.

◆ get_values() [1/2]

idiststream & get_values ( idiststream &  s)

Definition at line 656 of file disarray_mpi.icc.

◆ put_values() [1/2]

odiststream & put_values ( odiststream s) const

Definition at line 581 of file disarray_mpi.icc.

◆ put_matlab()

odiststream & put_matlab ( odiststream s) const

Definition at line 587 of file disarray_mpi.icc.

◆ get_values() [2/2]

idiststream & get_values ( idiststream &  ips,
GetFunction  get_element 
)

Definition at line 616 of file disarray_mpi.icc.

◆ put_values() [2/2]

odiststream & put_values ( odiststream ops,
PutFunction  put_element 
) const

Definition at line 541 of file disarray_mpi.icc.

◆ permuted_put_values()

odiststream & permuted_put_values ( odiststream ops,
const disarray_rep< size_type, distributed, A2 > &  perm,
PutFunction  put_element 
) const

Definition at line 596 of file disarray_mpi.icc.

◆ dump()

void dump ( std::string  name) const

Definition at line 662 of file disarray_mpi.icc.

◆ set_dis_entry()

void set_dis_entry ( size_type  dis_i,
const T val 
)
protected

Definition at line 191 of file disarray_mpi.icc.

◆ set_add_dis_entry()

void set_add_dis_entry ( size_type  dis_i,
const U &  val 
)
protected

Definition at line 206 of file disarray_mpi.icc.

◆ append_dis_entry() [2/3]

void append_dis_entry ( const Set &  ext_idx_set,
Map &  ext_idx_map,
std::true_type   
) const
protected

get values from ext_idx_set, that are managed by another proc; here T=container type

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

Definition at line 415 of file disarray_mpi.icc.

◆ append_dis_entry() [3/3]

void append_dis_entry ( const Set &  ext_idx_set,
Map &  ext_idx_map,
std::false_type   
) const
protected

get values from ext_idx_set, that are managed by another proc; here T=simple type

Definition at line 346 of file disarray_mpi.icc.

Member Data Documentation

◆ _stash

stash_map_type _stash
protected

Definition at line 447 of file disarray.h.

◆ _send

message_type _send
protected

Definition at line 448 of file disarray.h.

◆ _receive

message_type _receive
protected

Definition at line 449 of file disarray.h.

◆ _receive_max_size

size_type _receive_max_size
protected

Definition at line 450 of file disarray.h.

◆ _ext_x

scatter_map_type _ext_x
mutableprotected

Definition at line 451 of file disarray.h.


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