Peano
Loading...
Searching...
No Matches
RefinementControlService.h
Go to the documentation of this file.
1// This file is part of the ExaHyPE2 project. For conditions of distribution and
2// use, please see the copyright notice at www.peano-framework.org
3#pragma once
4
5#include "RefinementControl.h"
9
10namespace exahype2 {
11 class RefinementControl;
12 class RefinementControlService;
13} // namespace exahype2
14
49public:
51
53
92 virtual void receiveDanglingMessages() override;
93
97 std::vector<peano4::grid::GridControlEvent> createGridControlEventsForNextTraversal() const;
98
99 virtual void shutdown() override;
100
134
135 std::string toString() const;
136
137 void merge(const RefinementControl& control);
138
139private:
141
143
145
149 static int _reductionTag;
150
156
171
196
197 std::list<peano4::grid::GridControlEvent> _remoteNewEvents;
198
237 std::vector<peano4::grid::GridControlEvent> _committedEvents;
238
239#ifdef Parallel
240 std::vector<MPI_Request*> _sendRequests;
241 std::vector<peano4::grid::GridControlEvent> _copyOfCommittedEvents;
242
249
276#endif
277};
RefinementControl::NewSiblingEraseEvents _localNewSiblingEraseEvents
Erase requests of cells which know their parent, collected over one mesh sweep.
std::vector< peano4::grid::GridControlEvent > _committedEvents
Container with all the valid events.
void merge(const RefinementControl &control)
static tarch::multicore::RecursiveSemaphore _semaphore
virtual void receiveDanglingMessages() override
Receive refinement control messages as shared by other ranks.
static RefinementControlService & getInstance()
RefinementControl::NewEvents _localNewEvents
Container to accumulate new events.
virtual void shutdown() override
std::vector< peano4::grid::GridControlEvent > _copyOfCommittedEvents
void keepOnlyCompleteSiblingEraseEvents()
Move the erase requests which Peano can realise from _localNewSiblingEraseEvents into _localNewEvents...
std::vector< MPI_Request * > _sendRequests
void freeAllPendingSendRequests()
Complete pending sends from previous mesh traversal.
static int _reductionTag
I need a tag of my own to exchange control info after each step.
void finishStep()
Should be called after each traversal per rank.
std::list< peano4::grid::GridControlEvent > _remoteNewEvents
std::vector< peano4::grid::GridControlEvent > createGridControlEventsForNextTraversal() const
Manage refine/erase requests within ExaHyPE 2.
std::list< SiblingEraseEvent > NewSiblingEraseEvents
std::list< std::pair< peano4::grid::GridControlEvent, int > > NewEvents
Log Device.
Definition Log.h:517
Service Interface.
Definition Service.h:87
This file is part of the ExaHyPE 2 project within Peano 4.
Definition __init__.py:1