ryujin 2.1.1 revision 15c5f3ea3ef91eaf08db04f6f4c18a1823a6f822
initial_state_library.h
Go to the documentation of this file.
1//
2// SPDX-License-Identifier: MIT
3// Copyright (C) 2020 - 2023 by the ryujin authors
4//
5
6#pragma once
7
8#include "hyperbolic_system.h"
9#include <initial_state.h>
10
22
23namespace ryujin
24{
25 namespace ShallowWater
26 {
34 template <int dim, typename Number, typename T>
35 static void populate_initial_state_list(T &initial_state_list,
36 const HyperbolicSystem &h,
37 const std::string &s)
38 {
40
41 auto add = [&](auto &&object) {
42 initial_state_list.emplace(std::move(object));
43 };
44
45 add(std::make_unique<CircularDamBreak<dim, Number, state_type>>(h, s));
46 add(std::make_unique<Contrast<dim, Number, state_type>>(h, s));
47 add(std::make_unique<FlowOverBump<dim, Number, state_type>>(h, s));
48 add(std::make_unique<Paraboloid<dim, Number, state_type>>(h, s));
49 add(std::make_unique<RitterDamBreak<dim, Number, state_type>>(h, s));
50 add(std::make_unique<SolitaryWave<dim, Number, state_type>>(h, s));
52 s));
54 s));
55 add(std::make_unique<Uniform<dim, Number, state_type>>(h, s));
57 s));
58 add(std::make_unique<UnsteadyVortex<dim, Number, state_type>>(h, s));
59 }
60 };
61 } // namespace ShallowWater
62} // namespace ryujin
dealii::Tensor< 1, problem_dimension< dim >, Number > state_type
static void populate_initial_state_list(T &initial_state_list, const HyperbolicSystem &h, const std::string &s)
DEAL_II_ALWAYS_INLINE FT add(const FT &flux_left_ij, const FT &flux_right_ij)