Peano
Loading...
Searching...
No Matches
LinkedGrid< _Geo, SPLIT_FACTOR, Derived > Class Template Reference

#include <linked_grid.h>

Inheritance diagram for LinkedGrid< _Geo, SPLIT_FACTOR, Derived >:
Collaboration diagram for LinkedGrid< _Geo, SPLIT_FACTOR, Derived >:

Public Types

using Geo = _Geo
 

Public Member Functions

 LinkedGrid ()=default
 
 LinkedGrid (Geo::Region range, Derived *parent=nullptr, Geo::RowMajorIdx idx=typename Geo::RowMajorIdx(0), int level=0)
 
 LinkedGrid (LinkedGrid &&other) noexcept
 
LinkedGridoperator= (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 ()
 

Data Fields

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 u32 SplitFactor = SPLIT_FACTOR
 

Private Member Functions

_Geo::RowMajorIdx getChildIdx (int linearSpaceChildIdx) const
 
void moveOp (LinkedGrid &&other)
 

Static Private Member Functions

static _Geo::RowMajorIdx getIdxForLinearSpaceIdx (u32 linearSpaceIdx)
 

Detailed Description

template<typename _Geo, u32 SPLIT_FACTOR, typename Derived>
requires (SPLIT_FACTOR > 1)
class LinkedGrid< _Geo, SPLIT_FACTOR, Derived >

Definition at line 8 of file linked_grid.h.

Member Typedef Documentation

◆ Geo

template<typename _Geo , u32 SPLIT_FACTOR, typename Derived >
using LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::Geo = _Geo

Definition at line 44 of file linked_grid.h.

Constructor & Destructor Documentation

◆ LinkedGrid() [1/3]

template<typename _Geo , u32 SPLIT_FACTOR, typename Derived >
LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::LinkedGrid ( )
default

◆ LinkedGrid() [2/3]

template<typename _Geo , u32 SPLIT_FACTOR, typename Derived >
LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::LinkedGrid ( Geo::Region range,
Derived * parent = nullptr,
Geo::RowMajorIdx idx = typename Geo::RowMajorIdx(0),
int level = 0 )
explicit

Definition at line 58 of file linked_grid.h.

◆ LinkedGrid() [3/3]

template<typename _Geo , u32 SPLIT_FACTOR, typename Derived >
LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::LinkedGrid ( LinkedGrid< _Geo, SPLIT_FACTOR, Derived > && other)
noexcept

Definition at line 67 of file linked_grid.h.

Member Function Documentation

◆ getChild()

template<typename _Geo , u32 SPLIT_FACTOR, typename Derived >
Derived * LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::getChild ( const Geo::Point & p)

Definition at line 102 of file linked_grid.h.

◆ getChildIdx()

template<typename _Geo , u32 SPLIT_FACTOR, typename Derived >
_Geo::RowMajorIdx LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::getChildIdx ( int linearSpaceChildIdx) const
private

Definition at line 19 of file linked_grid.h.

◆ getIdxForLinearSpaceIdx()

template<typename _Geo , u32 SPLIT_FACTOR, typename Derived >
static _Geo::RowMajorIdx LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::getIdxForLinearSpaceIdx ( u32 linearSpaceIdx)
staticprivate

Definition at line 9 of file linked_grid.h.

◆ getMaxChildren()

template<typename _Geo , u32 SPLIT_FACTOR, typename Derived >
static constexpr u32 LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::getMaxChildren ( )
staticconstexpr

Definition at line 63 of file linked_grid.h.

Referenced by LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::moveOp().

Here is the caller graph for this function:

◆ getNextSibling()

template<typename _Geo , u32 SPLIT_FACTOR, typename Derived >
Derived * LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::getNextSibling ( )

Definition at line 113 of file linked_grid.h.

◆ getRoot()

template<typename _Geo , u32 SPLIT_FACTOR, typename Derived >
Derived * LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::getRoot ( )

Definition at line 96 of file linked_grid.h.

◆ getSiblingIdx()

template<typename _Geo , u32 SPLIT_FACTOR, typename Derived >
u32 LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::getSiblingIdx ( ) const

Definition at line 108 of file linked_grid.h.

References assert.

◆ moveOp()

template<typename _Geo , u32 SPLIT_FACTOR, typename Derived >
void LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::moveOp ( LinkedGrid< _Geo, SPLIT_FACTOR, Derived > && other)
private

Definition at line 25 of file linked_grid.h.

References assert, and LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::getMaxChildren().

Here is the call graph for this function:

◆ operator=()

template<typename _Geo , u32 SPLIT_FACTOR, typename Derived >
LinkedGrid & LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::operator= ( LinkedGrid< _Geo, SPLIT_FACTOR, Derived > && other)
noexcept

Definition at line 71 of file linked_grid.h.

Referenced by Spacetree< _Geometry, _Item, THRESHOLD, SPLIT_FACTOR, _TaskBackend >::operator=().

Here is the caller graph for this function:

◆ split()

template<typename _Geo , u32 SPLIT_FACTOR, typename Derived >
void LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::split ( u32 splitLevel = 1)

Definition at line 76 of file linked_grid.h.

Referenced by DomainDecomposition< Geo >::DomainDecomposition().

Here is the caller graph for this function:

Field Documentation

◆ idx

template<typename _Geo , u32 SPLIT_FACTOR, typename Derived >
Geo::RowMajorIdx LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::idx = typename Geo::RowMajorIdx(0)

Definition at line 53 of file linked_grid.h.

Referenced by DomainDecomposition< Geo >::getLeafRankId().

◆ level

template<typename _Geo , u32 SPLIT_FACTOR, typename Derived >
unsigned int LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::level = 0

Definition at line 54 of file linked_grid.h.

◆ parent

template<typename _Geo , u32 SPLIT_FACTOR, typename Derived >
Derived* LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::parent = nullptr

Definition at line 48 of file linked_grid.h.

◆ range

◆ SplitFactor

template<typename _Geo , u32 SPLIT_FACTOR, typename Derived >
constexpr u32 LinkedGrid< _Geo, SPLIT_FACTOR, Derived >::SplitFactor = SPLIT_FACTOR
staticconstexpr

Definition at line 46 of file linked_grid.h.

◆ subtrees


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