ryujin 2.1.1 revision b04fb4aba7bd97ddfa5994a6b4b6e8586eb15db2
Loading...
Searching...
No Matches
initial_state_library.template.h
Go to the documentation of this file.
1//
2// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
3// Copyright (C) 2023 - 2026 by the ryujin authors
4//
5
6#pragma once
7
9
13
14namespace ryujin
15{
16 using namespace ScalarConservation;
17
18 template <int dim, typename Number>
19 class InitialStateLibrary<HyperbolicDescription, dim, Number>
20 {
21 public:
23
24 using View = typename HyperbolicSystem::template View<dim, Number>;
25
26 using initial_state_list_type = std::set<
27 std::unique_ptr<InitialState<HyperbolicDescription, dim, Number>>>;
28
29 static void
31 const HyperbolicSystem &h,
32 const Interface::ParabolicSystem & /*p*/,
33 const std::string &s)
34 {
35 auto add = [&](auto &&object) {
36 initial_state_list.emplace(std::move(object));
37 };
38
39 add(std::make_unique<Function<dim, Number>>(h, s));
40 add(std::make_unique<Uniform<dim, Number>>(h, s));
41 }
42 };
43} // namespace ryujin
std::set< std::unique_ptr< InitialState< HyperbolicDescription, dim, Number > > > initial_state_list_type
typename HyperbolicSystem::template View< dim, Number > View
static void populate_initial_state_list(initial_state_list_type &initial_state_list, const HyperbolicSystem &h, const Interface::ParabolicSystem &, const std::string &s)
DEAL_II_HOST_DEVICE_ALWAYS_INLINE FT add(const FT &flux_left_ij, const FT &flux_right_ij)
Euler::HyperbolicDescription HyperbolicDescription