Peano
Loading...
Searching...
No Matches
grid.h File Reference
#include <list>
#include <map>
#include <set>
#include <vector>
#include "GridVertex.h"
Include dependency graph for grid.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  peano4::SplitInstruction
 Instruction to split. More...
 

Namespaces

namespace  peano4
 
namespace  peano4::grid
 The grid namespace is Peano's core.
 
namespace  peano4::grid::internal
 

Typedefs

typedef std::map< int, SplitInstructionpeano4::SplitSpecification
 

Enumerations

enum class  peano4::grid::VertexType { peano4::grid::New , peano4::grid::Hanging , peano4::grid::Persistent , peano4::grid::Delete }
 
enum class  peano4::grid::FaceType { peano4::grid::New , peano4::grid::Hanging , peano4::grid::Persistent , peano4::grid::Delete }
 
enum class  peano4::grid::CellType { peano4::grid::New , peano4::grid::Persistent , peano4::grid::Delete }
 
enum class  peano4::grid::SpacetreeState {
  peano4::grid::EmptyRun , peano4::grid::NewRoot , peano4::grid::NewFromSplit , peano4::grid::Running ,
  peano4::grid::JoinTriggered , peano4::grid::Joining , peano4::grid::Joined
}
 

Functions

void peano4::grid::clear (GridStatistics &statistics, bool isGlobalMasterTree)
 The term clear() is not 100% correct, as the number of stationary traversals is not reset to a dummy but instead incremented.
 
std::vector< GridControlEventpeano4::grid::merge (std::vector< GridControlEvent > events, const double Tolerance=0.1)
 Merge set of refinement/coarsening commands.
 
GridVertex peano4::grid::createVertex (GridVertex::State state, const tarch::la::Vector< Dimensions, double > &x, int level, const tarch::la::Vector< TwoPowerD, int > &adjacentRanks, bool isNewFineGridVertex)
 Factory mechanism.
 
bool peano4::grid::isSpacetreeNodeRefined (GridVertex vertices[TwoPowerD])
 A spacetree node is refined if any of its adjacent vertices holds one of the following flags:
 
bool peano4::grid::willVertexBeRefined (const GridVertex &vertex)
 A vertex will be refined if it is already refined or currently refining.
 
bool peano4::grid::hasVertexBeenRefined (const GridVertex &vertex)
 A vertex has been refined if it is (already) refined or is erasing or the erase has been triggered.
 
std::bitset< TwoPowerDpeano4::grid::willVerticesBeRefined (GridVertex vertices[TwoPowerD])
 A vertex is unrefined if it is hanging.
 
std::bitset< TwoPowerDpeano4::grid::haveVerticesBeenRefined (GridVertex vertices[TwoPowerD])
 
bool peano4::grid::isSpacetreeNodeLocal (GridVertex vertices[TwoPowerD], bool splittingIsConsideredLocal, bool joiningIsConsideredLocal, int id)
 A spacetree node as 2^d adjacent vertices.
 
std::string peano4::grid::toString (VertexType type)
 
std::string peano4::grid::toString (FaceType type)
 
std::string peano4::grid::toString (CellType type)
 
constexpr int peano4::grid::InvalidRank (-1)
 
std::string peano4::grid::toString (SpacetreeState state)
 
bool peano4::grid::overlaps (const tarch::la::Vector< Dimensions, double > &x, const GridControlEvent &event)
 
bool peano4::grid::overlaps (const AutomatonState &x, const GridControlEvent &event)
 
bool peano4::grid::isContained (const AutomatonState &x, const GridControlEvent &event, double upscaleAutomatonState=1.0)
 isContained() is defined over the closed interval, i.e.
 
void peano4::grid::reduceGridControlEvents (std::vector< GridControlEvent > &events)
 Peano 4 does not reduce any grid control events globally.
 
std::string peano4::grid::toString (const std::vector< GridControlEvent > &events)
 
std::string peano4::grid::toString (const std::list< GridControlEvent > &events)
 
void peano4::grid::internal::removeEraseEventsThatAreCancelledByRefineEvents (const std::list< peano4::grid::GridControlEvent > &refineEvents, std::list< peano4::grid::GridControlEvent > &eraseEvents)
 This is the first thing I do.
 
void peano4::grid::internal::mergeAdjacentRefinementEvents (std::list< peano4::grid::GridControlEvent > &inputEvents, int Tolerance)
 Merge adjacent events.
 
bool peano4::grid::internal::twoEventsOverlap (const peano4::grid::GridControlEvent &lhs, const peano4::grid::GridControlEvent &rhs)
 Helper function which helps us throughout the merge.
 
bool peano4::grid::internal::equals (const peano4::grid::GridControlEvent &lhs, const peano4::grid::GridControlEvent &rhs)
 
bool peano4::grid::internal::refinementEventOverrulesCoarsening (const peano4::grid::GridControlEvent &refineEvent, const peano4::grid::GridControlEvent &eraseEvent)
 A refinement event overrules the coarsening if.
 
bool peano4::grid::internal::twoEventsAreAdjacent (const peano4::grid::GridControlEvent &lhs, const peano4::grid::GridControlEvent &rhs, double Tolerance)
 Are two events adjacent.
 
void peano4::grid::internal::sort (std::list< peano4::grid::GridControlEvent > &events)
 Sort grid control events geometrically.
 
peano4::grid::GridControlEvent peano4::grid::internal::createBoundingBoxEvent (const peano4::grid::GridControlEvent &lhs, const peano4::grid::GridControlEvent &rhs)
 
peano4::grid::GridStatistics operator+ (peano4::grid::GridStatistics lhs, peano4::grid::GridStatistics rhs)
 
std::ostream & operator<< (std::ostream &out, const peano4::SplitInstruction &instruction)
 
std::ostream & operator<< (std::ostream &out, const peano4::SplitInstruction::Mode &mode)
 

Function Documentation

◆ operator+()

◆ operator<<() [1/2]

std::ostream & operator<< ( std::ostream & out,
const peano4::SplitInstruction & instruction )

Definition at line 30 of file grid.cpp.

References peano4::SplitInstruction::toString().

Here is the call graph for this function:

◆ operator<<() [2/2]

std::ostream & operator<< ( std::ostream & out,
const peano4::SplitInstruction::Mode & mode )

Definition at line 35 of file grid.cpp.

References peano4::SplitInstruction::toString().

Here is the call graph for this function: