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) 2022 - 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#include <deal.II/base/tensor.h>
13
14#include <array>
15#include <functional>
16#include <iomanip>
17
18namespace ryujin
19{
20 namespace NavierStokes
21 {
29 class ParabolicSystem final : public dealii::ParameterAcceptor
30 {
31 public:
35 static inline const std::string problem_name =
36 "Newtonian fluid viscosity model with Fourier-law heat flux";
37
41 static constexpr bool is_identity = false;
42
46 ParabolicSystem(const std::string &subsection = "/B - Equation");
47
49 ACCESSOR_READ_ONLY(lambda)
50 ACCESSOR_READ_ONLY(cv_inverse_kappa)
51
52 unsigned int n_parabolic_state_vectors() const
53 {
54 return parabolic_component_names_.size();
55 }
56
57 ACCESSOR_READ_ONLY(parabolic_component_names);
58
59 private:
64
65 double mu_;
66 double lambda_;
67 double cv_inverse_kappa_;
68
70
71 const std::vector<std::string> parabolic_component_names_;
72 }; /* ParabolicSystem */
73
74
75 /*
76 * -------------------------------------------------------------------------
77 * Inline definitions
78 * -------------------------------------------------------------------------
79 */
80
81
82 inline ParabolicSystem::ParabolicSystem(const std::string &subsection)
83 : ParameterAcceptor(subsection)
84 {
85 mu_ = 1.e-3;
86 add_parameter("mu", mu_, "The shear viscosity constant");
87
88 lambda_ = 0.;
89 add_parameter("lambda", lambda_, "The bulk viscosity constant");
90
91 cv_inverse_kappa_ = 1.866666666666666e-2;
92 add_parameter("kappa",
93 cv_inverse_kappa_,
94 "Scaled thermal conductivity constant: c_v^{-1} kappa");
95 }
96
97 } // namespace NavierStokes
98} // 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