Peano
MyObserver.h
Go to the documentation of this file.
1 // This file is part of the Peano project. For conditions of distribution and
2 // use, please see the copyright notice at www.peano-framework.org
3 #ifndef _EXAMPLES_REGULAR_GRID_UPSCALING_MYOBSERVER_H_
4 #define _EXAMPLES_REGULAR_GRID_UPSCALING_MYOBSERVER_H_
5 
6 
7 #include "peano4/grid/TraversalObserver.h"
8 #include "tarch/logging/Log.h"
9 
10 
11 namespace examples {
12  namespace regulargridupscaling {
13  class MyObserver;
14  }
15 }
16 
17 
18 class examples::regulargridupscaling::MyObserver: public peano4::grid::TraversalObserver {
19  private:
20  static tarch::logging::Log _log;
21 
22  const int _spacetreeId;
23  const double _h;
24  const int _flopsPerCell;
25 
29  double _accumulator;
30 
32 
33  public:
34  static constexpr int RanksObserverTemplate = 1;
35 
37  static int IntegrationAccuracy;
38 
39  MyObserver(int spacetreeId, double h, int flopsPerCell);
40  virtual ~MyObserver();
41 
42  void beginTraversal(
43  const tarch::la::Vector<DIMENSIONS,double>& x,
44  const tarch::la::Vector<DIMENSIONS,double>& h
45  ) override;
46 
47  void endTraversal(
48  const tarch::la::Vector<DIMENSIONS,double>& x,
49  const tarch::la::Vector<DIMENSIONS,double>& h
50  ) override;
51 
52  void enterCell(
53  const peano4::grid::GridTraversalEvent& event
54  ) override;
55 
56 
57  void leaveCell(
58  const peano4::grid::GridTraversalEvent& event
59  ) override;
60 
66  TraversalObserver* clone(int spacetreeId) override;
67 
68  std::vector< peano4::grid::GridControlEvent > getGridControlEvents() override;
69 };
70 
71 #endif
static tarch::logging::Log _log
Definition: MyObserver.h:20
void enterCell(const peano4::grid::GridTraversalEvent &event) override
Definition: MyObserver.cpp:48
double _accumulator
I use an accumulator just to ensure that the flop calculations are not removed.
Definition: MyObserver.h:29
std::vector< peano4::grid::GridControlEvent > getGridControlEvents() override
Definition: MyObserver.cpp:84
void leaveCell(const peano4::grid::GridTraversalEvent &event) override
Definition: MyObserver.cpp:57
MyObserver(int spacetreeId, double h, int flopsPerCell)
Definition: MyObserver.cpp:13
void endTraversal(const tarch::la::Vector< DIMENSIONS, double > &x, const tarch::la::Vector< DIMENSIONS, double > &h) override
Definition: MyObserver.cpp:38
TraversalObserver * clone(int spacetreeId) override
I use the clone to create one observer object per traversal thread.
Definition: MyObserver.cpp:66
void beginTraversal(const tarch::la::Vector< DIMENSIONS, double > &x, const tarch::la::Vector< DIMENSIONS, double > &h) override
Definition: MyObserver.cpp:28
static constexpr int RanksObserverTemplate
Definition: MyObserver.h:34
h
Definition: swe.py:79