Peano
Loading...
Searching...
No Matches
CCZ4SBH_FV.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 "AbstractCCZ4SBH_FV.h"
6
8
9#include "tarch/logging/Log.h"
10
11namespace benchmarks {
12 namespace exahype2 {
13 namespace ccz4 {
14 class CCZ4SBH_FV;
15#ifdef PureFV
17
19#endif
20 } // namespace ccz4
21 } // namespace exahype2
22} // namespace benchmarks
23
24
25
26class benchmarks::exahype2::ccz4::CCZ4SBH_FV: public benchmarks::exahype2::ccz4::AbstractCCZ4SBH_FV {
27private:
28 static tarch::logging::Log _log;
29 static tarch::multicore::BooleanSemaphore _semaphore;
30
32
33public:
37 CCZ4SBH_FV();
38
39 virtual void initialCondition(
40 double* NOALIAS Q,
41 const tarch::la::Vector<DIMENSIONS, double>& volumeCentre,
42 const tarch::la::Vector<DIMENSIONS, double>& volumeH
43 ) override;
44
54
61 static bool isCellOverlappingWithBHImpactArea(const peano4::datamanagement::CellMarker& marker);
62
63 static bool areAllFaceConnectedCellsOverlappingWithBHImpactArea(const peano4::datamanagement::CellMarker& marker);
64
71 static bool areBothAdjacentCellsOverlappingWithBHImpactArea(const peano4::datamanagement::FaceMarker& marker);
72
73 static bool isOneAdjacentCellOverlappingWithBHImpactArea(const peano4::datamanagement::FaceMarker& marker);
74
84 const peano4::datamanagement::CellMarker& marker, int faceNumber
85 );
86
90 virtual void startTimeStep(
91 double globalMinTimeStamp, double globalMaxTimeStamp, double globalMinTimeStepSize, double globalMaxTimeStepSize
92 ) override;
93
97 virtual void finishTimeStep() override;
98
99 void incNumberOfPatches();
100
101private:
103 const tarch::la::Vector<DIMENSIONS, double>& cellCentre, const tarch::la::Vector<DIMENSIONS, double>& cellH
104 );
105};
constexpr double timeStepSize
virtual void startTimeStep(double globalMinTimeStamp, double globalMaxTimeStamp, double globalMinTimeStepSize, double globalMaxTimeStepSize) override
Call superclass and after that report/maintain _numberOfPatches.
static bool areBothAdjacentCellsOverlappingWithBHImpactArea(const peano4::datamanagement::FaceMarker &marker)
Check two adjacent octants.
void reduceAdmissibleTimeStepSize(double timeStepSize)
Overwrite limiters time step size.
static bool isCellOverlappingWithBHImpactArea(const peano4::datamanagement::CellMarker &marker)
Is octant area overlapping with BH impact area.
virtual void initialCondition(double *NOALIAS Q, const tarch::la::Vector< DIMENSIONS, double > &volumeCentre, const tarch::la::Vector< DIMENSIONS, double > &volumeH) override
static bool areAllFaceConnectedCellsOverlappingWithBHImpactArea(const peano4::datamanagement::CellMarker &marker)
static tarch::multicore::BooleanSemaphore _semaphore
Definition CCZ4SBH_FV.h:29
static bool isOneAdjacentCellOverlappingWithBHImpactArea(const peano4::datamanagement::FaceMarker &marker)
CCZ4SBH_FV()
Initialise the two punctures object if required.
virtual void finishTimeStep() override
Call superclass and after that report/maintain _numberOfPatches.
static tarch::logging::Log _log
Definition CCZ4SBH_FV.h:28
TP::TwoPunctures * twoPunctures
Definition CCZ4SBH_FV.h:16
Definition ccz4.py:1