9 face_projections: FaceProjections):
11 number_of_face_projections: Integer
12 How many quantities are to be projected onto the face. If you pass in one,
13 this means that only the left and right values are projected onto the face.
14 If you pass in two, we store the values plus the projections of the
15 derivative along the normal per face.
19 return """solveRiemannProblem_pointwise_in_situ(
21 const double * __restrict__ Q,
22 const tarch::la::Vector<Dimensions,double>& x,
26 double * __restrict__ F
28 {% if FLUX_IMPLEMENTATION!="<none>" %}
29 repositories::{{SOLVER_INSTANCE}}.flux(Q,x,t,dt,normal,F);
33 const double * __restrict__ Q,
34 const double * __restrict__ deltaQ,
35 const tarch::la::Vector<Dimensions,double>& x,
39 double * __restrict__ F
41 {% if NCP_IMPLEMENTATION!="<none>" %}
42 repositories::{{SOLVER_INSTANCE}}.nonconservativeProduct(Q, deltaQ, x, t, dt, normal, F);
46 const double * __restrict__ Q,
47 const tarch::la::Vector<Dimensions,double>& x,
52 return repositories::{{SOLVER_INSTANCE}}.maxEigenvalue(Q, x, t, dt, normal);
59 {{NUMBER_OF_UNKNOWNS}},
60 {{NUMBER_OF_AUXILIARY_VARIABLES}},
61 marker.getSelectedFaceNumber(),
62 repositories::{{SOLVER_INSTANCE}}.QuadraturePoints1d,
63 {{ "true" if FLUX_IMPLEMENTATION!="<none>" else "false" }}, //useFlux
64 {{ "true" if NCP_IMPLEMENTATION!="<none>" else "false" }}, //useNCP
65 fineGridFace{{UNKNOWN_IDENTIFIER}}EstimateProjection.value,
66 fineGridFace{{UNKNOWN_IDENTIFIER}}RiemannSolution.value
70 return """solveRiemannProblem_pointwise_in_situ_with_gradient_projection(
72 const double * __restrict__ Q,
73 const tarch::la::Vector<Dimensions,double>& x,
77 double * __restrict__ F
79 {% if FLUX_IMPLEMENTATION!="<none>" %}
80 repositories::{{SOLVER_INSTANCE}}.flux(Q,x,t,dt,normal,F);
84 const double * __restrict__ Q,
85 const double * __restrict__ deltaQ,
86 const tarch::la::Vector<Dimensions,double>& x,
90 double * __restrict__ F
92 {% if NCP_IMPLEMENTATION!="<none>" %}
93 repositories::{{SOLVER_INSTANCE}}.nonconservativeProduct(Q, deltaQ, x, t, dt, normal, F);
97 const double * __restrict__ Q,
98 const tarch::la::Vector<Dimensions,double>& x,
103 return repositories::{{SOLVER_INSTANCE}}.maxEigenvalue(Q, x, t, dt, normal);
110 {{NUMBER_OF_UNKNOWNS}},
111 {{NUMBER_OF_AUXILIARY_VARIABLES}},
112 marker.getSelectedFaceNumber(),
113 repositories::{{SOLVER_INSTANCE}}.QuadraturePoints1d,
114 {{ "true" if FLUX_IMPLEMENTATION!="<none>" else "false" }}, //useFlux
115 {{ "true" if NCP_IMPLEMENTATION!="<none>" else "false" }}, //useNCP
116 fineGridFace{{UNKNOWN_IDENTIFIER}}EstimateProjection.value,
117 fineGridFace{{UNKNOWN_IDENTIFIER}}RiemannSolution.value
121 assert False,
"not implemented"
122 return "#not implemented"