ryujin 2.1.1 revision b04fb4aba7bd97ddfa5994a6b4b6e8586eb15db2
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) 2022 - 2026 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 <ryujin/interface/parabolic_system.h>
13
14#include <deal.II/base/parameter_acceptor.h>
15#include <deal.II/base/tensor.h>
16
17#include <array>
18#include <functional>
19#include <iomanip>
20
21namespace ryujin
22{
23 namespace NavierStokes
24 {
32 class ParabolicSystem final : public Interface::ParabolicSystem
33 {
34 public:
38 ParabolicSystem(const std::string &subsection = "/B - Equation");
39
43 static constexpr bool is_identity = false;
44
46 ACCESSOR_READ_ONLY(lambda)
47 ACCESSOR_READ_ONLY(cv_inverse_kappa)
48
49 private:
54
55
56 double mu_;
57 double lambda_;
58 double cv_inverse_kappa_;
59
60
62 }; /* ParabolicSystem */
63
64
65 /*
66 * -------------------------------------------------------------------------
67 * Inline definitions
68 * -------------------------------------------------------------------------
69 */
70
71
72 inline ParabolicSystem::ParabolicSystem(const std::string &subsection)
73 : Interface::ParabolicSystem(
74 "Newtonian fluid viscosity model with Fourier-law heat flux",
75 /* no components of its own: acts on the hyperbolic state */
76 {},
77 {},
78 subsection)
79 {
80 mu_ = 1.e-3;
81 add_parameter("mu", mu_, "The shear viscosity constant");
82
83 lambda_ = 0.;
84 add_parameter("lambda", lambda_, "The bulk viscosity constant");
85
86 cv_inverse_kappa_ = 1.866666666666666e-2;
87 add_parameter("kappa",
88 cv_inverse_kappa_,
89 "Scaled thermal conductivity constant: c_v^{-1} kappa");
90 }
91
92 } // namespace NavierStokes
93} // namespace ryujin
ParabolicSystem(const std::string &subsection="/B - Equation")
#define ACCESSOR_READ_ONLY(member)