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, A > | base
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_type > | scatter_map_type
Public Types inherited from hack_array_seq_rep< T, A >
typedef disarray_rep< typename T::raw_type, sequential, A > | base
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_type & | reference
typedef const value_type & | const_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 distributor & | ownership () const
const communicator & | comm () const
size_type | dis_size () const
size_type | size () const
const generic_value_type & | operator[] (size_type ie) const
generic_value_type & | operator[] (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_type & | get_dis_map_entries () const
idiststream & | get_values (idiststream &ips)
odiststream & | put_values (odiststream &ops) const
template<class GetFunction >
idiststream & | get_values (idiststream &ips, GetFunction get_element)
template<class PutFunction >
odiststream & | put_values (odiststream &ops, PutFunction put_element) const
template<class PutFunction , class Permutation >
odiststream & | permuted_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 distributor & | ownership () const
const communicator & | comm () const
size_type | size () const
size_type | dis_size () const
const generic_value_type & | operator[] (size_type ie) const
generic_value_type & | operator[] (size_type ie)
iterator | begin ()
const_iterator | begin () const
iterator | end ()
const_iterator | end () const
idiststream & | get_values (idiststream &ips)
odiststream & | put_values (odiststream &ops) const
template<class GetFunction >
idiststream & | get_values (idiststream &ips, GetFunction get_element)
template<class PutFunction >
odiststream & | put_values (odiststream &ops, PutFunction put_element) const

## Protected Types

typedef std::map< size_type, raw_type > | stash_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

mutable protected

Definition at line 294 of file hack_array.h.

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

- /build/rheolef-dTNbRN/rheolef-7.2/main/lib/hack_array.h
- /build/rheolef-dTNbRN/rheolef-7.2/main/lib/hack_array_mpi.icc