ryujin 2.1.1 revision 336b16a72e829721302c626ec7071b92032b8248
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 private:
57
58 double mu_;
59 double lambda_;
60 double cv_inverse_kappa_;
61
63 }; /* ParabolicSystem */
64
65
66 /*
67 * -------------------------------------------------------------------------
68 * Inline definitions
69 * -------------------------------------------------------------------------
70 */
71
72
73 inline ParabolicSystem::ParabolicSystem(const std::string &subsection)
74 : ParameterAcceptor(subsection)
75 {
76 mu_ = 1.e-3;
77 add_parameter("mu", mu_, "The shear viscosity constant");
78
79 lambda_ = 0.;
80 add_parameter("lambda", lambda_, "The bulk viscosity constant");
81
82 cv_inverse_kappa_ = 1.866666666666666e-2;
83 add_parameter("kappa",
84 cv_inverse_kappa_,
85 "Scaled thermal conductivity constant: c_v^{-1} kappa");
86 }
87
88 } // namespace NavierStokes
89} // namespace ryujin
static const std::string problem_name
ParabolicSystem(const std::string &subsection="/B - Equation")
#define ACCESSOR_READ_ONLY(member)