ryujin 2.1.1 revision 46bf70e400e423a8ffffe8300887eeb35b8dfb2c
riemann_solver.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 <compile_time_options.h>
9
10#include "hyperbolic_system.h"
11
12#include <simd.h>
13
14#include <deal.II/base/point.h>
15#include <deal.II/base/tensor.h>
16
17namespace ryujin
18{
19 namespace Skeleton
20 {
21 template <typename ScalarNumber = double>
22 class RiemannSolverParameters : public dealii::ParameterAcceptor
23 {
24 public:
25 RiemannSolverParameters(const std::string &subsection = "/RiemannSolver")
26 : ParameterAcceptor(subsection)
27 {
28 }
29 };
30
31
40 template <int dim, typename Number = double>
42 {
43 public:
48
50
52
53 using state_type = typename View::state_type;
54
56
58
60
64
68 RiemannSolver(const HyperbolicSystem &hyperbolic_system,
69 const Parameters &parameters,
70 const PrecomputedVector &precomputed_values)
71 : hyperbolic_system(hyperbolic_system)
72 , parameters(parameters)
73 , precomputed_values(precomputed_values)
74 {
75 }
76
81 Number compute(const state_type & /*U_i*/,
82 const state_type & /*U_j*/,
83 const unsigned int /*i*/,
84 const unsigned int * /*js*/,
85 const dealii::Tensor<1, dim, Number> & /*n_ij*/) const
86 {
87 return Number(1.);
88 }
89
90 private:
91 const HyperbolicSystem &hyperbolic_system;
92 const Parameters &parameters;
93 const PrecomputedVector &precomputed_values;
95 };
96 } // namespace Skeleton
97} // namespace ryujin
dealii::Tensor< 1, problem_dimension, Number > state_type
typename get_value_type< Number >::type ScalarNumber
Vectors::MultiComponentVector< ScalarNumber, n_precomputed_values > PrecomputedVector
RiemannSolverParameters(const std::string &subsection="/RiemannSolver")
typename View::ScalarNumber ScalarNumber
typename View::state_type state_type
RiemannSolverParameters< ScalarNumber > Parameters
Number compute(const state_type &, const state_type &, const unsigned int, const unsigned int *, const dealii::Tensor< 1, dim, Number > &) const
typename View::PrecomputedVector PrecomputedVector
RiemannSolver(const HyperbolicSystem &hyperbolic_system, const Parameters &parameters, const PrecomputedVector &precomputed_values)