ryujin 2.1.1 revision ee5cbcbf2346c1299c942d0e1f13b46449973c18
Loading...
Searching...
No Matches
barotropic_equation_of_state.h
Go to the documentation of this file.
1//
2// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
3// Copyright (C) 2025 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/array_view.h>
13#include <deal.II/base/exceptions.h>
14#include <deal.II/base/parameter_acceptor.h>
15#include <deal.II/base/tensor.h>
16
17#include <string>
18
19namespace ryujin
20{
21 namespace BarotropicEquationOfStateLibrary
22 {
29 class BarotropicEquationOfState : public dealii::ParameterAcceptor
30 {
31 public:
37 BarotropicEquationOfState(const std::string &name,
38 const std::string &subsection)
39 : ParameterAcceptor(subsection + "/" + name)
40 , name_(name)
41 {
42 }
43
47 virtual double specific_internal_energy(double rho) const = 0;
48
52 virtual double pressure(double rho) const = 0;
53
57 virtual double speed_of_sound(double rho) const = 0;
58
63
64 private:
65 const std::string name_;
66 };
67
68 } // namespace BarotropicEquationOfStateLibrary
69} /* namespace ryujin */
BarotropicEquationOfState(const std::string &name, const std::string &subsection)
#define ACCESSOR_READ_ONLY(member)