ryujin 2.5.0 revision c64172211cf21344cb9b9b0f3a1266aa6400d392
Loading...
Searching...
No Matches
parabolic_system.h
Go to the documentation of this file.
1//
2// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
3// Copyright (C) 2026 by the ryujin authors
4//
5
6#pragma once
7
8#include <ryujin/base/compile_time_options.h>
10
11#include <deal.II/base/exceptions.h>
12#include <deal.II/base/parameter_acceptor.h>
13
14#include <array>
15#include <string>
16#include <vector>
17
18namespace ryujin
19{
20 namespace Interface
21 {
32 class ParabolicSystem : public dealii::ParameterAcceptor
33 {
34 public:
38 ACCESSOR_READ_ONLY(problem_name)
39
40
43 using Names = std::array<std::vector<std::string>, 3>;
44
50 const std::vector<std::string> &state_names(const unsigned int dim) const
51 {
52 AssertIndexRange(dim - 1, 3);
53 return state_names_[dim - 1];
54 }
55
61 const std::vector<std::string> &
62 precomputed_names(const unsigned int dim) const
63 {
64 AssertIndexRange(dim - 1, 3);
65 return precomputed_names_[dim - 1];
66 }
67
72 ACCESSOR_READ_ONLY(is_identity)
73
74 protected:
78 ParabolicSystem(const std::string &problem_name,
79 const Names &state_names,
81 const std::string &subsection)
82 : ParameterAcceptor(subsection)
83 , problem_name_(problem_name)
86 , is_identity_(false)
87 {
88 }
89
96 std::string problem_name_;
97
105
113
121 };
122 } // namespace Interface
123} // namespace ryujin
const std::vector< std::string > & state_names(const unsigned int dim) const
ParabolicSystem(const std::string &problem_name, const Names &state_names, const Names &precomputed_names, const std::string &subsection)
std::array< std::vector< std::string >, 3 > Names
const std::vector< std::string > & precomputed_names(const unsigned int dim) const
#define ACCESSOR_READ_ONLY(member)