12 numberOfUnrefinedCells(
peano4::
parallel::SpacetreeSet::getInstance().getGridStatistics(treeNumber).getNumberOfLocalUnrefinedCells() ),
14 numberOfDegeneratedChildren(0) {
23 std::ostringstream msg;
26 msg <<
"blacklist is empty";
30 msg <<
"(#" << p.first <<
":";
32 if (p.second.lifetime>0) {
33 msg <<
"lifetime=" << p.second.lifetime
34 <<
",#cells=" << p.second.numberOfUnrefinedCells;
40 msg <<
",#splits=" << p.second.numberOfSplits
41 <<
",#deg-children=" << p.second.numberOfDegeneratedChildren
62 "tree " << p.first <<
" has degenerated child. Set/keep on blacklist"
64 p.second.numberOfDegeneratedChildren++;
67 else if ( p.second.lifetime>0 ) {
69 if ( currentNumberOfCells==p.second.numberOfUnrefinedCells ) {
70 logInfo(
"updateBlacklist()",
"tree " << p.first <<
" is on blacklist but seems to have failed to fork off cells successfully, as number of cells did not decrease since last split. Keep on blacklist" );
72 else if (p.second.lifetime==1) {
73 logInfo(
"updateBlacklist()",
"remove tree " << p.first <<
" from blacklist (keep but set at inactive)" );
74 p.second.lifetime = 0;
76 else if (p.second.lifetime>0) {
86 _blacklist.insert( std::pair<int,BlacklistData>(
91 else if (
_blacklist.at(newParent).lifetime==0 ) {
97 "split local rank " << newParent <<
" though it had been on the blacklist. This happens usually if and only if a tree split multiple times in one iteration"
#define logDebug(methodName, logMacroMessageStream)
#define logInfo(methodName, logMacroMessageStream)
Wrapper macro around tarch::tarch::logging::Log to improve logging.
peano4::grid::GridStatistics getGridStatistics() const
Return statistics object for primary spacetree.
static SpacetreeSet & getInstance()
The parallel namespace is Peano's core abstracts from both MPI and multicore parallelisation.
int getNumberOfLocalUnrefinedCells() const
bool getRemovedEmptySubtree() const