ryujin 2.1.1 revision 7ab52d499a3934b3ba6afcabe5103994024860b0
indicator.h
Go to the documentation of this file.
1//
2// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
3// Copyright (C) 2023 - 2024 by the ryujin authors
4//
5
6#pragma once
7
8#include "hyperbolic_system.h"
9
11#include <simd.h>
12
13#include <deal.II/base/parameter_acceptor.h>
14#include <deal.II/base/vectorization.h>
15
16
17namespace ryujin
18{
19 namespace Skeleton
20 {
21 template <typename ScalarNumber = double>
22 class IndicatorParameters : public dealii::ParameterAcceptor
23 {
24 public:
25 IndicatorParameters(const std::string &subsection = "/Indicator")
26 : ParameterAcceptor(subsection)
27 {
28 }
29 };
30
31
38 template <int dim, typename Number = double>
40 {
41 public:
46
48
50
51 using state_type = typename View::state_type;
52
54
56
58
76
80 Indicator(const HyperbolicSystem &hyperbolic_system,
81 const Parameters &parameters,
82 const PrecomputedVector &precomputed_values)
83 : hyperbolic_system(hyperbolic_system)
84 , parameters(parameters)
85 , precomputed_values(precomputed_values)
86 {
87 }
88
93 void reset(const unsigned int /*i*/, const state_type & /*U_i*/)
94 {
95 // empty
96 }
97
102 void accumulate(const unsigned int * /*js*/,
103 const state_type & /*U_j*/,
104 const dealii::Tensor<1, dim, Number> & /*c_ij*/)
105 {
106 // empty
107 }
108
112 Number alpha(const Number /*h_i*/) const
113 {
114 return Number(0.);
115 }
116
118
119 private:
124
125 const HyperbolicSystem &hyperbolic_system;
126 const Parameters &parameters;
127 const PrecomputedVector &precomputed_values;
128
130 };
131 } // namespace Skeleton
132} // namespace ryujin
dealii::Tensor< 1, problem_dimension, Number > state_type
typename get_value_type< Number >::type ScalarNumber
Vectors::MultiComponentVector< ScalarNumber, n_precomputed_values > PrecomputedVector
IndicatorParameters(const std::string &subsection="/Indicator")
Definition: indicator.h:25
void accumulate(const unsigned int *, const state_type &, const dealii::Tensor< 1, dim, Number > &)
Definition: indicator.h:102
void reset(const unsigned int, const state_type &)
Definition: indicator.h:93
Number alpha(const Number) const
Definition: indicator.h:112
typename View::PrecomputedVector PrecomputedVector
Definition: indicator.h:53
Indicator(const HyperbolicSystem &hyperbolic_system, const Parameters &parameters, const PrecomputedVector &precomputed_values)
Definition: indicator.h:80
typename View::state_type state_type
Definition: indicator.h:51
typename View::ScalarNumber ScalarNumber
Definition: indicator.h:49
IndicatorParameters< ScalarNumber > Parameters
Definition: indicator.h:55