ryujin 2.1.1 revision ee5cbcbf2346c1299c942d0e1f13b46449973c18
Loading...
Searching...
No Matches
initial_state_uniform.h
Go to the documentation of this file.
1//
2// SPDX-License-Identifier: Apache-2.0
3// [LANL Copyright Statement]
4// Copyright (C) 2022 - 2025 by the ryujin authors
5// Copyright (C) 2023 - 2024 by Triad National Security, LLC
6//
7
8#pragma once
9
10#include <compile_time_options.h>
11
13
14namespace ryujin
15{
16 namespace ShallowWaterInitialStates
17 {
27 template <typename Description, int dim, typename Number>
28 class Uniform : public InitialState<Description, dim, Number>
29 {
30 public:
32 using View = typename HyperbolicSystem::template View<dim, Number>;
33 using state_type = typename View::state_type;
34
35 Uniform(const HyperbolicSystem &hyperbolic_system,
36 const std::string subsection)
37 : InitialState<Description, dim, Number>("uniform", subsection)
38 , hyperbolic_system_(hyperbolic_system)
39 {
40 primitive_[0] = 1.;
41 primitive_[1] = 1.;
42 this->add_parameter(
43 "primitive state", primitive_, "Initial 1d primitive state (h, u)");
44 }
45
46 state_type compute(const dealii::Point<dim> & /*point*/,
47 Number /*t*/) final
48 {
49 const auto view = hyperbolic_system_.template view<dim, Number>();
50 return view.from_initial_state(primitive_);
51 }
52
53 /* Default bathymetry of 0 */
54
55 private:
56 const HyperbolicSystem &hyperbolic_system_;
57
58 dealii::Tensor<1, 2, Number> primitive_;
59 };
60
61 } // namespace ShallowWaterInitialStates
62} // namespace ryujin
Uniform(const HyperbolicSystem &hyperbolic_system, const std::string subsection)
typename HyperbolicSystem::template View< dim, Number > View
typename Description::HyperbolicSystem HyperbolicSystem
state_type compute(const dealii::Point< dim > &, Number) final
Euler::HyperbolicSystem HyperbolicSystem
Definition description.h:34