ryujin 2.1.1 revision 0348cbb53a3e4b1da2a4c037e81f88f2d21ce219
parabolic_system.h
Go to the documentation of this file.
1//
2// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
3// Copyright (C) 2023 by the ryujin authors
4//
5
6#pragma once
7
8#include <compile_time_options.h>
10
11#include <deal.II/base/parameter_acceptor.h>
12
13namespace ryujin
14{
15 namespace EulerAEOS
16 {
23 class ParabolicSystem final : public dealii::ParameterAcceptor
24 {
25 public:
29 static inline const std::string problem_name = "Identity";
30
34 static constexpr bool is_identity = true;
35
39 ParabolicSystem(const std::string &subsection = "/ParabolicSystem");
40
41 unsigned int n_parabolic_state_vectors() const
42 {
43 return parabolic_component_names_.size();
44 }
45
46 ACCESSOR_READ_ONLY(parabolic_component_names);
47
48 private:
49 const std::vector<std::string> parabolic_component_names_;
50 }; /* ParabolicSystem */
51
52
53 /*
54 * -------------------------------------------------------------------------
55 * Inline definitions
56 * -------------------------------------------------------------------------
57 */
58
59
60 inline ParabolicSystem::ParabolicSystem(const std::string &subsection)
61 : ParameterAcceptor(subsection)
62 {
63 }
64
65 } // namespace EulerAEOS
66} // namespace ryujin
ACCESSOR_READ_ONLY(parabolic_component_names)
ParabolicSystem(const std::string &subsection="/ParabolicSystem")
unsigned int n_parabolic_state_vectors() const
static const std::string problem_name