![]() |
Peano
|
#include <spacetree.h>
Public Types | |
using | Base = LinkedGrid<_Geometry, SPLIT_FACTOR, Spacetree> |
using | Geo = _Geometry |
using | Item = _Item |
using | TaskBackend = _TaskBackend |
using | IterOrder = IterationOrderSelector<Spacetree>::type |
using | LeafsIterator = LeafsIterator<Spacetree, IterOrder> |
using | BoundaryLeafsIterator = BoundaryLeafsIterator<Spacetree, IterOrder> |
using | InsideRegionLeafsIterator = InsideRegionLeafsIterator<Spacetree, IterOrder> |
using | OutsideRegionLeafsIterator = OutsideRegionLeafsIterator<Spacetree, IterOrder> |
template<int LEVEL = 4> | |
using | LeafOrLevelIterator = LeafOrLevelIterator<Spacetree, LEVEL, IterOrder> |
template<int LEVEL = 4> | |
using | BottomUpLeafOrLevelIterator = BottomUpLeafOrLevelIterator<Spacetree, LEVEL, IterOrder> |
![]() | |
using | Geo = _Geo |
Public Member Functions | |
Spacetree (Geo::Region range) | |
Spacetree ()=default | |
Spacetree (Geo::Region range, Spacetree *parent, Geo::RowMajorIdx idx, int level) | |
Spacetree (Spacetree &&other) noexcept | |
Spacetree & | operator= (Spacetree &&other) noexcept |
Spacetree * | findLeaf (const Geo::Point &p) |
Spacetree * | findChildNode (const Geo::Region ®ion) |
Spacetree * | insert (Item item) |
void | pushItem (Item p) |
void | splitIntoSubtrees () |
Spacetree * | getRegionParent (const Geo::Region &range, bool refined=false) |
template<StatelessOnNodeCallback< Spacetree > Callback, typename Iter = LeafsIterator> | |
void | onNode (Callback F, u32 numThreads=0) |
template<StatelessOnNodeCallback< Spacetree > Callback, typename Iter > | |
void | onNode (Callback F, Iter iter, u32 numThreads=0) |
template<typename StateInitF , StatefulOnNodeCallback< Spacetree, std::invoke_result_t< StateInitF > > Callback, typename Iter = LeafsIterator> | |
auto | onNode (Callback F, StateInitF stateInitF, u32 numThreads=0) |
template<typename StateInitF , StatefulOnNodeCallback< Spacetree, std::invoke_result_t< StateInitF > > Callback, typename Iter > | |
auto | onNode (Callback F, StateInitF stateInitF, Iter iter, u32 numThreads=0) |
void | destroySubtrees () |
void | clear () |
~Spacetree () | |
![]() | |
LinkedGrid ()=default | |
LinkedGrid (Geo::Region range, Derived *parent=nullptr, Geo::RowMajorIdx idx=typename Geo::RowMajorIdx(0), int level=0) | |
LinkedGrid (LinkedGrid &&other) noexcept | |
LinkedGrid & | operator= (LinkedGrid &&other) noexcept |
void | split (u32 splitLevel=1) |
Derived * | getRoot () |
Derived * | getChild (const Geo::Point &p) |
u32 | getSiblingIdx () const |
Derived * | getNextSibling () |
Static Public Member Functions | |
static constexpr u32 | getMaxChildren () |
![]() | |
static constexpr u32 | getMaxChildren () |
Data Fields | |
Vector< Item > | items |
![]() | |
Derived * | parent = nullptr |
Derived * | subtrees = nullptr |
Geo::Region | range = typename Geo::Region() |
Geo::RowMajorIdx | idx = typename Geo::RowMajorIdx(0) |
unsigned int | level = 0 |
Static Public Attributes | |
static constexpr int | CAPACITY = THRESHOLD |
![]() | |
static constexpr u32 | SplitFactor = SPLIT_FACTOR |
Definition at line 52 of file spacetree.h.
using Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::Base = LinkedGrid<_Geometry, SPLIT_FACTOR, Spacetree> |
Definition at line 53 of file spacetree.h.
using Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::BottomUpLeafOrLevelIterator = BottomUpLeafOrLevelIterator<Spacetree, LEVEL, IterOrder> |
Definition at line 72 of file spacetree.h.
using Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::BoundaryLeafsIterator = BoundaryLeafsIterator<Spacetree, IterOrder> |
Definition at line 64 of file spacetree.h.
using Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::Geo = _Geometry |
Definition at line 55 of file spacetree.h.
using Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::InsideRegionLeafsIterator = InsideRegionLeafsIterator<Spacetree, IterOrder> |
Definition at line 65 of file spacetree.h.
using Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::Item = _Item |
Definition at line 56 of file spacetree.h.
using Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::IterOrder = IterationOrderSelector<Spacetree>::type |
Definition at line 61 of file spacetree.h.
using Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::LeafOrLevelIterator = LeafOrLevelIterator<Spacetree, LEVEL, IterOrder> |
Definition at line 69 of file spacetree.h.
using Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::LeafsIterator = LeafsIterator<Spacetree, IterOrder> |
Definition at line 63 of file spacetree.h.
using Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::OutsideRegionLeafsIterator = OutsideRegionLeafsIterator<Spacetree, IterOrder> |
Definition at line 66 of file spacetree.h.
using Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::TaskBackend = _TaskBackend |
Definition at line 57 of file spacetree.h.
|
explicit |
Definition at line 76 of file spacetree.h.
|
default |
Referenced by Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::destroySubtrees().
Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::Spacetree | ( | Geo::Region | range, |
Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend > * | parent, | ||
Geo::RowMajorIdx | idx, | ||
int | level ) |
Definition at line 80 of file spacetree.h.
|
noexcept |
Definition at line 82 of file spacetree.h.
References Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::operator=().
Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::~Spacetree | ( | ) |
Definition at line 269 of file spacetree.h.
References Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::destroySubtrees().
void Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::clear | ( | ) |
Definition at line 256 of file spacetree.h.
References Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::clear(), Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::getMaxChildren(), and LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::subtrees.
Referenced by peano4.output.Makefile.Makefile::__init__(), and Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::clear().
void Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::destroySubtrees | ( | ) |
Definition at line 249 of file spacetree.h.
References Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::getMaxChildren(), Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::Spacetree(), and LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::subtrees.
Referenced by SpacetreePruner< Spacetree, SPLIT >::mergeChildren(), and Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::~Spacetree().
Spacetree * Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::findChildNode | ( | const Geo::Region & | region | ) |
Definition at line 104 of file spacetree.h.
References LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::range.
Referenced by Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::getRegionParent().
Spacetree * Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::findLeaf | ( | const Geo::Point & | p | ) |
Definition at line 93 of file spacetree.h.
References LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::range.
|
staticconstexpr |
Definition at line 265 of file spacetree.h.
Referenced by Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::clear(), SpacetreePruner< Spacetree, SPLIT >::countChildrenItems(), Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::destroySubtrees(), SpacetreePruner< Spacetree, SPLIT >::mergeChildren(), SpacetreePruner< Spacetree, SPLIT >::run(), and Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::splitIntoSubtrees().
Spacetree * Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::getRegionParent | ( | const Geo::Region & | range, |
bool | refined = false ) |
Definition at line 180 of file spacetree.h.
References Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::findChildNode(), and LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::range.
Referenced by do_density(), and do_density().
Spacetree * Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::insert | ( | Item | item | ) |
Definition at line 117 of file spacetree.h.
Referenced by SpacetreeSorter< Spacetree, PreSortCallback >::run().
void Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::onNode | ( | Callback | F, |
Iter | iter, | ||
u32 | numThreads = 0 ) |
Definition at line 202 of file spacetree.h.
auto Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::onNode | ( | Callback | F, |
StateInitF | stateInitF, | ||
Iter | iter, | ||
u32 | numThreads = 0 ) |
Definition at line 228 of file spacetree.h.
auto Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::onNode | ( | Callback | F, |
StateInitF | stateInitF, | ||
u32 | numThreads = 0 ) |
Definition at line 222 of file spacetree.h.
References Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::onNode().
void Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::onNode | ( | Callback | F, |
u32 | numThreads = 0 ) |
Definition at line 196 of file spacetree.h.
References Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::onNode().
Referenced by dumpData(), Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::onNode(), Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::onNode(), SpacetreePruner< Spacetree, SPLIT >::run(), and SpacetreeSorter< Spacetree, PreSortCallback >::run().
|
noexcept |
Definition at line 86 of file spacetree.h.
References LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::operator=().
Referenced by Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::Spacetree().
void Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::pushItem | ( | Item | p | ) |
Definition at line 140 of file spacetree.h.
References assert, and LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::subtrees.
void Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::splitIntoSubtrees | ( | ) |
Definition at line 146 of file spacetree.h.
References assert, Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::getMaxChildren(), Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::items, and LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::subtrees.
|
staticconstexpr |
Definition at line 59 of file spacetree.h.
Referenced by SpacetreePruner< Spacetree, SPLIT >::countChildrenItems(), and SpacetreePruner< Spacetree, SPLIT >::run().
Vector<Item> Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::items |
Definition at line 74 of file spacetree.h.
Referenced by do_density(), do_density(), frontend.general_builder::index(), frontend.general_builder::item(), SpacetreePruner< Spacetree, SPLIT >::mergeChildren(), SpacetreeSorter< Spacetree, PreSortCallback >::run(), runner_do_ghost(), and Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::splitIntoSubtrees().