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

Detailed Description

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

forward decl

Definition at line 290 of file disarray.h.

+ Inheritance diagram for disarray_rep< T, distributed, A >:

Classes

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

using base = disarray_rep< T, sequential, A >
 
using size_type = typename base::size_type
 
using value_type = typename base::value_type
 
using memory_type = distributed
 
using iterator = typename base::iterator
 
using const_iterator = typename base::const_iterator
 
using reference = typename base::reference
 
using const_reference = typename base::const_reference
 
using difference_type = typename base::difference_type
 
using communicator_type = distributor::communicator_type
 
using scatter_map_type = std::map< size_type, T >
 
using dis_reference = disarray_dis_reference< T, A >
 
typedef details::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
 
- 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)
 
A 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 details::default_set_op_traits<T>::type>
void dis_entry_assembly_begin (SetOp my_set_op=SetOp())
 
template<class SetOp = typename details::default_set_op_traits<T>::type>
void dis_entry_assembly_end (SetOp my_set_op=SetOp())
 
template<class SetOp = typename details::default_set_op_traits<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
 
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
 
idiststreamget_values (idiststream &s)
 
odiststreamput_values (odiststream &s) const
 
odiststreamput_matlab (odiststream &s) 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 A2 >
odiststreampermuted_put_values (odiststream &ops, const disarray_rep< size_type, distributed, A2 > &perm, PutFunction put_element) const
 
void dump (std::string name) const
 
template<class U , class SetOp >
void set_dis_entry (size_type dis_i, const U &val, const SetOp &set_op)
 
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
 
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
 
- 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)
 
A 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 details::default_set_op_traits<T>::type>
void dis_entry_assembly_begin (SetOp=SetOp())
 
template<class SetOp = typename details::default_set_op_traits<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
 
idiststreamget_values (idiststream &s)
 
odiststreamput_values (odiststream &s) const
 
odiststreamput_matlab (odiststream &s) const
 
template<class GetFunction >
idiststreamget_values (idiststream &ips, GetFunction get_element)
 
template<class PutFunction >
odiststreamput_values (odiststream &ops, PutFunction put_element) const
 
void dump (std::string name) const
 

Public Attributes

stash_map_type _stash
 
message_type _send
 
message_type _receive
 
size_type _receive_max_size
 
scatter_map_type _ext_x
 

Additional Inherited Members

- Protected Attributes inherited from disarray_rep< T, sequential, A >
distributor _ownership
 

Member Typedef Documentation

◆ base

template<class T , class A >
using base = disarray_rep<T,sequential,A>

Definition at line 295 of file disarray.h.

◆ size_type

template<class T , class A >
using size_type = typename base::size_type

Definition at line 296 of file disarray.h.

◆ value_type

template<class T , class A >
using value_type = typename base::value_type

Definition at line 297 of file disarray.h.

◆ memory_type

template<class T , class A >
using memory_type = distributed

Definition at line 298 of file disarray.h.

◆ iterator

template<class T , class A >
using iterator = typename base::iterator

Definition at line 299 of file disarray.h.

◆ const_iterator

template<class T , class A >
using const_iterator = typename base::const_iterator

Definition at line 300 of file disarray.h.

◆ reference

template<class T , class A >
using reference = typename base::reference

Definition at line 301 of file disarray.h.

◆ const_reference

template<class T , class A >
using const_reference = typename base::const_reference

Definition at line 302 of file disarray.h.

◆ difference_type

template<class T , class A >
using difference_type = typename base::difference_type

Definition at line 303 of file disarray.h.

◆ communicator_type

template<class T , class A >
using communicator_type = distributor::communicator_type

Definition at line 304 of file disarray.h.

◆ scatter_map_type

template<class T , class A >
using scatter_map_type = std::map <size_type, T>

Definition at line 305 of file disarray.h.

◆ dis_reference

template<class T , class A >
using dis_reference = disarray_dis_reference<T,A>

Definition at line 306 of file disarray.h.

◆ is_container

template<class T , class A >
typedef details::is_container_of_mpi_datatype<T>::type is_container

Definition at line 416 of file disarray.h.

◆ stash_value

template<class T , class A >
typedef stash_traits<T,is_container>::mapped_type stash_value

Definition at line 417 of file disarray.h.

◆ stash_map_type

template<class T , class A >
typedef stash_traits<T,is_container>::map_type stash_map_type

Definition at line 418 of file disarray.h.

Constructor & Destructor Documentation

◆ disarray_rep() [1/2]

template<class T , class A >
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]

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

Definition at line 41 of file disarray_mpi.icc.

Member Function Documentation

◆ resize()

template<class T , class A >
void resize ( const distributor ownership,
const T init_val = T() 
)

Definition at line 69 of file disarray_mpi.icc.

◆ get_allocator()

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

Definition at line 314 of file disarray.h.

◆ size()

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

Definition at line 315 of file disarray.h.

◆ begin() [1/2]

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

Definition at line 316 of file disarray.h.

◆ end() [1/2]

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

Definition at line 317 of file disarray.h.

◆ begin() [2/2]

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

Definition at line 318 of file disarray.h.

◆ end() [2/2]

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

Definition at line 319 of file disarray.h.

◆ ownership()

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

Definition at line 321 of file disarray.h.

◆ comm()

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

Definition at line 322 of file disarray.h.

◆ first_index()

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

Definition at line 323 of file disarray.h.

◆ last_index()

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

Definition at line 324 of file disarray.h.

◆ dis_size()

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

Definition at line 325 of file disarray.h.

◆ dis_entry()

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

Definition at line 327 of file disarray.h.

◆ dis_entry_assembly_begin()

template<class T , class A >
template<class SetOp >
void dis_entry_assembly_begin ( SetOp  my_set_op = SetOp())

Definition at line 220 of file disarray_mpi.icc.

◆ dis_entry_assembly_end()

template<class T , class A >
template<class SetOp >
void dis_entry_assembly_end ( SetOp  my_set_op = SetOp())

Definition at line 235 of file disarray_mpi.icc.

◆ dis_entry_assembly()

template<class T , class A >
template<class SetOp = typename details::default_set_op_traits<T>::type>
void dis_entry_assembly ( SetOp  my_set_op = SetOp())

Definition at line 334 of file disarray.h.

◆ append_dis_entry() [1/3]

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

Definition at line 509 of file disarray_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 341 of file disarray.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 347 of file disarray.h.

◆ set_dis_indexes()

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

Definition at line 350 of file disarray.h.

◆ get_dis_indexes()

template<class T , class A >
void get_dis_indexes ( std::set< size_type > &  ext_idx_set) const

Definition at line 527 of file disarray_mpi.icc.

◆ reset_dis_indexes()

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

Definition at line 402 of file disarray_mpi.icc.

◆ dis_at()

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

Definition at line 515 of file disarray_mpi.icc.

◆ get_dis_map_entries()

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

Definition at line 357 of file disarray.h.

◆ repartition()

template<class T , class A >
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

Definition at line 259 of file disarray_mpi.icc.

◆ permutation_apply()

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

Definition at line 326 of file disarray_mpi.icc.

◆ reverse_permutation()

template<class T , class A >
template<class A2 >
void reverse_permutation ( disarray_rep< size_type, distributed, A2 > &  inew2dis_iold) const

Definition at line 310 of file disarray_mpi.icc.

◆ get_values() [1/2]

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

Definition at line 655 of file disarray_mpi.icc.

◆ put_values() [1/2]

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

Definition at line 580 of file disarray_mpi.icc.

◆ put_matlab()

template<class T , class A >
odiststream & put_matlab ( odiststream s) const

Definition at line 586 of file disarray_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 615 of file disarray_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 540 of file disarray_mpi.icc.

◆ permuted_put_values()

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

Definition at line 595 of file disarray_mpi.icc.

◆ dump()

template<class T , class A >
void dump ( std::string  name) const

Definition at line 661 of file disarray_mpi.icc.

◆ set_dis_entry()

template<class T , class A >
template<class U , class SetOp >
void set_dis_entry ( size_type  dis_i,
const U &  val,
const SetOp &  set_op 
)

Definition at line 147 of file disarray_mpi.icc.

◆ append_dis_entry() [2/3]

template<class T , class A >
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

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

Definition at line 414 of file disarray_mpi.icc.

◆ append_dis_entry() [3/3]

template<class T , class A >
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

Definition at line 345 of file disarray_mpi.icc.

Member Data Documentation

◆ _stash

template<class T , class A >
stash_map_type _stash

Definition at line 435 of file disarray.h.

◆ _send

template<class T , class A >
message_type _send

Definition at line 436 of file disarray.h.

◆ _receive

template<class T , class A >
message_type _receive

Definition at line 437 of file disarray.h.

◆ _receive_max_size

template<class T , class A >
size_type _receive_max_size

Definition at line 438 of file disarray.h.

◆ _ext_x

template<class T , class A >
scatter_map_type _ext_x
mutable

Definition at line 439 of file disarray.h.


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