Peano
Loading...
Searching...
No Matches
SingleSweep.template.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 "Abstract{{CLASSNAME}}.h"
6
7#include "tarch/logging/Log.h"
8
9{% for item in NAMESPACE -%}
10namespace {{ item }} {
11{%- endfor %}
12
13 class {{CLASSNAME}};
14
15{% for item in NAMESPACE -%}
16}
17{%- endfor %}
18
19
20class {{NAMESPACE | join("::")}}::{{CLASSNAME}}: public Abstract{{CLASSNAME}} {
21 private:
23
24 public:
25 {% if REFINEMENT_CRITERION_IMPLEMENTATION=="<user-defined>" %}
44 virtual ::exahype2::RefinementCommand refinementCriterion(
45 const {{SOLUTION_STORAGE_PRECISION}}* __restrict__ Q, //Q[{{NUMBER_OF_UNKNOWNS}}+{{NUMBER_OF_AUXILIARY_VARIABLES}}]
48 double t
49 ) override;
50 {% endif %}
51
52 {% if ADAPTIVE_PRECISION_IMPLEMENTATION=="<user-defined>" %}
53 ::exahype2::PrecisionCommand precisionCriterion(
54 const {{SOLUTION_STORAGE_PRECISION}}* __restrict__ Q, // Q[{{NUMBER_OF_UNKNOWNS}}+{{NUMBER_OF_AUXILIARY_VARIABLES}}]
57 double t,
58 SolverState currentState
59 ) override;
60 {% endif %}
61
62 {% if INITIAL_CONDITIONS_IMPLEMENTATION=="<user-defined>" %}
63 virtual void initialCondition(
64 {{SOLUTION_STORAGE_PRECISION}}* __restrict__ Q, // Q[{{NUMBER_OF_UNKNOWNS}}+{{NUMBER_OF_AUXILIARY_VARIABLES}}]
67 //const tarch::la::Vector<Dimensions, int>& index,
68 bool gridIsConstructed
69 ) override;
70 {% endif %}
71
72 {% if BOUNDARY_CONDITIONS_IMPLEMENTATION=="<user-defined>" %}
73 virtual void boundaryConditions(
74 const {{CORRECTOR_COMPUTATION_PRECISION}}* __restrict__ Qinside, // Qinside[{{NUMBER_OF_UNKNOWNS}}+{{NUMBER_OF_AUXILIARY_VARIABLES}}]
75 {{CORRECTOR_COMPUTATION_PRECISION}}* __restrict__ Qoutside, // Qoutside[{{NUMBER_OF_UNKNOWNS}}+{{NUMBER_OF_AUXILIARY_VARIABLES}}]
78 double t,
79 int normal
80 ) final override;
81 {% endif %}
82
83 {% if RIEMANN_SOLVER_IMPLEMENTATION=="<user-defined>" %}
84 void riemannSolver(
85 {{CORRECTOR_COMPUTATION_PRECISION}}* const FL, // FL[{{NUMBER_OF_UNKNOWNS}}
86 {{CORRECTOR_COMPUTATION_PRECISION}}* const FR, // FR[{{NUMBER_OF_UNKNOWNS}}
87 const {{CORRECTOR_COMPUTATION_PRECISION}}* const QL, // QL[{{NUMBER_OF_UNKNOWNS}}+{{NUMBER_OF_AUXILIARY_VARIABLES}}]
88 const {{CORRECTOR_COMPUTATION_PRECISION}}* const QR, // QR[{{NUMBER_OF_UNKNOWNS}}+{{NUMBER_OF_AUXILIARY_VARIABLES}}]
89 const double t,
90 const double dt,
93 const int direction,
94 bool isBoundaryFace,
95 int faceIndex
96 ) final override;
97 {% endif %}
98
99 {{SOLVER_USER_DECLARATIONS}}
100};
Log Device.
Definition Log.h:517
void riemannSolver(double *FL, double *FR, const double *const QL, const double *const QR, const double dt, const int direction, bool isBoundaryFace, int faceIndex)
Simple vector class.
Definition Vector.h:159