12 namespace datamanagement {
32 const VertexMarker& marker,
33 const std::bitset<Dimensions>& parentVertexPositionWithinParentCell
359 double scaleAdjacentCells = 1.0,
std::ostream & operator<<(std::ostream &out, const peano4::datamanagement::VertexMarker &marker)
tarch::la::Vector< Dimensions, double > reconstructXOfParentVertex(const VertexMarker &marker, const std::bitset< Dimensions > &parentVertexPositionWithinParentCell)
Reconstruct parent vertex position.
constexpr double NUMERICAL_ZERO_DIFFERENCE
Vertex marker to provide information about selected vertex.
tarch::la::Vector< Dimensions, int > _relativePositionOfCellWithinFatherCell
Entries from (0,1,2).
bool isParentOfSubtree() const
VertexMarker()=default
Some unit tests prefer to construct a marker manually, so I offer a dummy default constructor.
tarch::la::Vector< Dimensions, double > h() const
bool coincidesWithCoarseGridVertex() const
Does vertex spatially coincide with coarser level's vertex.
std::bitset< TwoPowerD > _isParentVertexLocal
tarch::la::Vector< TwoPowerD, int > _numberOfAdjacentTrees
Number of adjacent trees per vertex.
bool isContainedInAdjacentCells(const tarch::la::Vector< Dimensions, double > &x, double scaleAdjacentCells=1.0, double tolerance=tarch::la::NUMERICAL_ZERO_DIFFERENCE) const
Will return true if x is contained within the adjacent cells.
VertexMarker & select(int number)
Picks a vertex within a cell.
std::bitset< TwoPowerD > _hasBeenRefined
tarch::la::Vector< Dimensions, int > getRelativeAdjacentCell(const tarch::la::Vector< Dimensions, double > &x) const
Each vertex is surrounded by cells.
tarch::la::Vector< Dimensions, double > x() const
tarch::la::Vector< Dimensions, double > getInvokingParentCellsCentre() const
See getInvokingCellCentre().
bool isAdjacentToParallelDomainBoundary() const
Is currently selected/analysed vertex adjacent to parallel domain boundary.
int getNumberOfAdjacentTrees() const
Number of adjacent trees of current vertex.
std::bitset< TwoPowerD > _willBeRefined
std::bitset< TwoPowerD > areAdjacentCellsLocal() const
Are adjacent cells of selected vertex local.
bool isParentCellLocal() const
Whenever we touch a vertex the first or the last time, we touch it from a cell: If we touch a vertex ...
bool isParentLocal() const
bool hasBeenRefined() const
A vertex is refined iff it is surrounded by cells which are refined.
tarch::la::Vector< Dimensions, double > _h
Size of the underlying cell.
std::string toString() const
std::bitset< TwoPowerD > _isParentOfSubtree
bool willBeRefined() const
int getSelectedVertexNumber() const
Information about selected vertex.
VertexMarker(const ::peano4::grid::GridTraversalEvent &event, int select=0)
std::bitset< TwoPowerD > _isLocal
tarch::la::Vector< Dimensions, double > getInvokingCellCentre() const
Return centre of cell from which this vertex marker is constructed.
std::bitset< TwoPowerD > _isHanging
std::bitset< TwoPowerD > _isAdjacentToParallelDomainBoundary
bool isParentVertexLocal(int i) const
Is the parent vertex local.
std::bitset< ThreePowerD > _isAdjacentCellLocal
tarch::la::Vector< Dimensions, double > _cellCentre
Centre of the underlying cell.
tarch::la::Vector< Dimensions, int > getRelativePositionWithinFatherCell() const
Relative position within parent cell.