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