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  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 >
struct  message_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

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: