ryujin 2.1.1 revision 46bf70e400e423a8ffffe8300887eeb35b8dfb2c
parabolic_system.h
Go to the documentation of this file.
1//
2// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
3// Copyright (C) 2022 - 2023 by the ryujin authors
4//
5
6#pragma once
7
8#include <compile_time_options.h>
9
10#include <convenience_macros.h>
11
12#include <deal.II/base/parameter_acceptor.h>
13#include <deal.II/base/tensor.h>
14
15#include <array>
16#include <functional>
17#include <iomanip>
18
19namespace ryujin
20{
21 namespace NavierStokes
22 {
30 class ParabolicSystem final : public dealii::ParameterAcceptor
31 {
32 public:
36 static inline const std::string problem_name =
37 "Newtonian fluid viscosity model with Fourier-law heat flux";
38
42 static constexpr bool is_identity = false;
43
47 ParabolicSystem(const std::string &subsection = "/B - Equation");
48
50 ACCESSOR_READ_ONLY(lambda)
51 ACCESSOR_READ_ONLY(cv_inverse_kappa)
52
53 unsigned int n_parabolic_state_vectors() const
54 {
55 return parabolic_component_names_.size();
56 }
57
58 ACCESSOR_READ_ONLY(parabolic_component_names);
59
60 private:
65
66 double mu_;
67 double lambda_;
68 double cv_inverse_kappa_;
69
71
72 const std::vector<std::string> parabolic_component_names_;
73 }; /* ParabolicSystem */
74
75
76 /*
77 * -------------------------------------------------------------------------
78 * Inline definitions
79 * -------------------------------------------------------------------------
80 */
81
82
83 inline ParabolicSystem::ParabolicSystem(const std::string &subsection)
84 : ParameterAcceptor(subsection)
85 {
86 mu_ = 1.e-3;
87 add_parameter("mu", mu_, "The shear viscosity constant");
88
89 lambda_ = 0.;
90 add_parameter("lambda", lambda_, "The bulk viscosity constant");
91
92 cv_inverse_kappa_ = 1.866666666666666e-2;
93 add_parameter("kappa",
94 cv_inverse_kappa_,
95 "Scaled thermal conductivity constant: c_v^{-1} kappa");
96 }
97
98 } // namespace NavierStokes
99} // namespace ryujin
ACCESSOR_READ_ONLY(parabolic_component_names)
static const std::string problem_name
ParabolicSystem(const std::string &subsection="/B - Equation")
unsigned int n_parabolic_state_vectors() const