Dune Core Modules (2.4.1)
torus.hh
Go to the documentation of this file.
89 DUNE_THROW(Dune::Exception, "Communicator size and result of the given load balancer do not match!");
241 double partition (int rank, iTupel origin_in, iTupel size_in, iTupel& origin_out, iTupel& size_out) const
394 std::cout << "[" << rank() << "]: ERROR: local sends/receives do not match in exchange!" << std::endl;
401 std::cout << "[" << rank() << "]: ERROR: size in local sends/receive does not match in exchange!" << std::endl;
449 // std::cout << "[" << rank() << "]" << " send to " << _sendrequests[i].rank << " OK" << std::endl;
465 // std::cout << "[" << rank() << "]" << " recv fm " << _recvrequests[i].rank << " OK" << std::endl;
488 s << "[" << rank() << "]: Torus " << procs() << " processor(s) arranged as " << dims() << std::endl;
Fallback implementation of the std::array class (a static array)
Various helper classes derived from from std::binary_function for stl-style functional programming.
Collective communication interface and sequential default implementation.
Definition: collectivecommunication.hh:73
int rank() const
Return rank, is between 0 and size()-1.
Definition: collectivecommunication.hh:82
int size() const
Number of processes in set, is greater than 0.
Definition: collectivecommunication.hh:88
Definition: torus.hh:278
ProcListIterator(typename std::deque< CommPartner >::const_iterator iter)
make an iterator
Definition: torus.hh:281
int distance() const
return 1-norm of distance vector
Definition: torus.hh:305
int index() const
return index in proclist
Definition: torus.hh:299
bool operator!=(const ProcListIterator &iter)
Return true when two iterators do not point to same member.
Definition: torus.hh:322
int rank() const
return rank of neighboring process
Definition: torus.hh:287
bool operator==(const ProcListIterator &iter)
Return true when two iterators point to same member.
Definition: torus.hh:315
iTupel delta() const
return distance vector
Definition: torus.hh:293
ProcListIterator & operator++()
Increment iterator to next cell.
Definition: torus.hh:328
Definition: torus.hh:42
int neighbors() const
return the number of neighbors, which is
Definition: torus.hh:205
iTupel rank_to_coord(int rank) const
map rank to coordinate in torus using lexicographic ordering
Definition: torus.hh:146
ProcListIterator sendbegin() const
first process in send list
Definition: torus.hh:339
int color(const iTupel &coord) const
assign color to given coordinate
Definition: torus.hh:176
ProcListIterator recvbegin() const
first process in receive list
Definition: torus.hh:351
int rank_relative(int rank, int dir, int cnt) const
return rank of process where its coordinate in direction dir has offset cnt (handles periodic case)
Definition: torus.hh:168
void recv(int rank, void *buffer, int size) const
store a receive request; buffers are received in order; handles also local requests with memcpy
Definition: torus.hh:376
int coord_to_rank(iTupel coord) const
map coordinate in torus to rank using lexicographic ordering
Definition: torus.hh:159
int dims(int i) const
return dimensions of torus in direction i
Definition: torus.hh:120
Torus(CollectiveCommunication comm, int tag, iTupel size, const YLoadBalance< d > *lb)
make partitioner from communicator and coarse mesh size
Definition: torus.hh:73
ProcListIterator recvend() const
last process in receive list
Definition: torus.hh:357
Dune::array< int, d > iTupel
type used to pass tupels in and out
Definition: torus.hh:45
bool is_neighbor(iTupel delta, std::bitset< d > periodic) const
return true if neighbor with given delta is a neighbor under the given periodicity
Definition: torus.hh:214
void send(int rank, void *buffer, int size) const
store a send request; buffers are sent in order; handles also local requests with memcpy
Definition: torus.hh:363
void print(std::ostream &s) const
print contents of torus object
Definition: torus.hh:486
double partition(int rank, iTupel origin_in, iTupel size_in, iTupel &origin_out, iTupel &size_out) const
partition the given grid onto the torus and return the piece of the process with given rank; returns ...
Definition: torus.hh:241
bool inside(iTupel c) const
return true if coordinate is inside torus
Definition: torus.hh:138
void exchange() const
exchange messages stored in request buffers; clear request buffers afterwards
Definition: torus.hh:389
a base class for the yaspgrid partitioning strategy The name might be irritating. It will probably ch...
Definition: partitioning.hh:24
std::ostream & operator<<(std::ostream &s, const array< T, N > &e)
Output operator for array.
Definition: array.hh:26
This file provides tools to partition YaspGrids. If you want to write your own partitioner,...
|
Legal Statements / Impressum |
Hosted by TU Dresden |
generated with Hugo v0.111.3
(Dec 22, 23:30, 2024)