Implementation of PSRS parallel sorting routine. More...
Public Member Functions | |
ParSortableList (const UList< Type > &) | |
Construct from List, sorting the elements. More... | |
ParSortableList (const label size) | |
Construct given size. Sort later on. More... | |
void | sort () |
(stable) sort the list (if changed after construction time) More... | |
const labelList & | indices () const |
Return the list of sorted point indices. More... | |
const labelList & | procs () const |
Return the list of processor number. More... | |
Public Member Functions inherited from List< Type > | |
constexpr | List () noexcept |
Default construct. More... | |
List (const label len) | |
Construct with given size. More... | |
List (const label len, const Type &val) | |
Construct with given size and value for all elements. More... | |
List (const label len, const Foam::zero) | |
Construct with given size initializing all elements to zero. More... | |
List (const Foam::one, const Type &val) | |
Construct with length=1, copying the value as the only content. More... | |
List (const Foam::one, Type &&val) | |
Construct with length=1, moving the value as the only content. More... | |
List (const Foam::one, const Foam::zero) | |
Construct with length=1, initializing content to zero. More... | |
List (const List< Type > &a) | |
Copy construct from list. More... | |
List (const UList< Type > &a) | |
Copy construct contents from list. More... | |
List (List< Type > &a, bool reuse) | |
Construct as copy or re-use as specified. More... | |
List (const UList< Type > &list, const labelUList &indices) | |
Copy construct subset of list. More... | |
List (const UList< Type > &list, const FixedList< label, N > &indices) | |
Copy construct subset of list. More... | |
List (const FixedList< Type, N > &list) | |
Construct as copy of FixedList<T, N> More... | |
List (const PtrList< Type > &list) | |
Construct as copy of PtrList<T> More... | |
List (const SLList< Type > &list) | |
Construct as copy of SLList<T> More... | |
List (const IndirectListBase< Type, Addr > &list) | |
Construct as copy of IndirectList contents. More... | |
List (std::initializer_list< Type > list) | |
Construct from an initializer list. More... | |
List (List< Type > &&list) | |
Move construct from List. More... | |
List (DynamicList< Type, SizeMin > &&list) | |
Move construct from DynamicList. More... | |
List (SortableList< Type > &&list) | |
Move construct from SortableList. More... | |
List (SLList< Type > &&list) | |
Move construct from SLList. More... | |
List (Istream &is) | |
Construct from Istream. More... | |
autoPtr< List< Type > > | clone () const |
Clone. More... | |
~List () | |
Destructor. More... | |
void | clear () |
Clear the list, i.e. set size to zero. More... | |
void | resize (const label len) |
Adjust allocated size of list. More... | |
void | resize (const label len, const Type &val) |
Adjust allocated size of list and set val for new elements. More... | |
void | resize (const label newLen) |
void | resize_nocopy (const label len) |
Adjust allocated size of list without necessarily. More... | |
void | setSize (const label n) |
Alias for resize() More... | |
void | setSize (const label n, const Type &val) |
Alias for resize() More... | |
void | append (const Type &val) |
Append an element at the end of the list. More... | |
void | append (Type &&val) |
Move append an element at the end of the list. More... | |
void | append (const UList< Type > &list) |
Append a List to the end of this list. More... | |
void | append (const IndirectListBase< Type, Addr > &list) |
Append IndirectList contents at the end of this list. More... | |
label | appendUniq (const Type &val) |
Append an element if not already in the list. More... | |
void | transfer (List< Type > &list) |
void | transfer (DynamicList< Type, SizeMin > &list) |
void | transfer (SortableList< Type > &list) |
Type & | newElmt (const label i) |
void | operator= (const UList< Type > &a) |
Assignment to UList operator. Takes linear time. More... | |
void | operator= (const List< Type > &list) |
Assignment operator. Takes linear time. More... | |
void | operator= (const SLList< Type > &list) |
Assignment to SLList operator. Takes linear time. More... | |
void | operator= (const IndirectListBase< Type, Addr > &list) |
Assignment from IndirectList. Takes linear time. More... | |
void | operator= (const FixedList< Type, N > &list) |
Copy assignment from FixedList. More... | |
void | operator= (std::initializer_list< Type > list) |
Assignment to an initializer list. More... | |
void | operator= (const Type &val) |
Assignment of all entries to the given value. More... | |
void | operator= (const Foam::zero) |
Assignment of all entries to zero. More... | |
void | operator= (List< Type > &&list) |
Move assignment. Takes constant time. More... | |
void | operator= (DynamicList< Type, SizeMin > &&list) |
Move assignment. Takes constant time. More... | |
void | operator= (SortableList< Type > &&list) |
Move assignment. Takes constant time. More... | |
void | operator= (SLList< Type > &&list) |
Move assignment. Takes constant time. More... | |
Istream & | readList (Istream &is) |
Read List from Istream, discarding contents of existing List. More... | |
Istream & | readList (Istream &is) |
Istream & | readList (Istream &is) |
void | shallowCopy (const UList< Type > &)=delete |
No shallowCopy permitted. More... | |
std::enable_if< std::is_same< bool, TypeT >::value, bool >::type | set (const label i, bool val=true) |
A bitSet::set() method for a list of bool. More... | |
Additional Inherited Members | |
Public Types inherited from List< Type > | |
typedef SubList< Type > | subList |
Declare type of subList. More... | |
Static Public Member Functions inherited from List< Type > | |
static const List< Type > & | null () |
Return a null List. More... | |
Implementation of PSRS parallel sorting routine.
From "On the Versatility of Parallel Sorting by Regular Sampling" Xiaobo Li et. all.
Construct from list of things to sort (uses SortableList, 'thing' should implement >, ==).
Will contain sorted data and in
Can also be constructed from size, filled at ease and then sort()'ed.
Definition at line 71 of file ParSortableList.H.
ParSortableList | ( | const UList< Type > & | values | ) |
Construct from List, sorting the elements.
Definition at line 128 of file ParSortableList.C.
References ParSortableList< Type >::sort().
ParSortableList | ( | const label | size | ) |
Construct given size. Sort later on.
Definition at line 139 of file ParSortableList.C.
void sort | ( | ) |
(stable) sort the list (if changed after construction time)
Definition at line 150 of file ParSortableList.C.
References UPstream::allProcs(), UPstream::blocking, Foam::expressions::patchExpr::debug, Foam::endl(), forAll, Pstream::gatherList(), SortableList< T >::indices(), UPstream::master(), UPstream::myProcNo(), n, UPstream::nProcs(), Foam::Pout, Foam::reduce(), Pstream::scatter(), List< T >::setSize(), setSize(), Foam::sort(), and Foam::vtk::write().
Referenced by ParSortableList< Type >::ParSortableList().
|
inline |
Return the list of sorted point indices.
Definition at line 188 of file ParSortableList.H.
|
inline |
Return the list of processor number.
Definition at line 194 of file ParSortableList.H.