ryujin
2.1.1 revision ee5cbcbf2346c1299c942d0e1f13b46449973c18
Loading...
Searching...
No Matches
source
shallow_water
initial_state_circular_dam_break.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
12
#include "
hyperbolic_system.h
"
13
#include <
initial_state_library.h
>
14
15
namespace
ryujin
16
{
17
namespace
ShallowWater
18
{
19
struct
Description
;
20
26
template
<
int
dim,
typename
Number>
27
class
CircularDamBreak
:
public
InitialState
<Description, dim, Number>
28
{
29
public
:
30
using
View
=
HyperbolicSystemView<dim, Number>
;
31
using
state_type
=
typename
View::state_type
;
32
33
CircularDamBreak
(
const
HyperbolicSystem
&hyperbolic_system,
34
const
std::string sub)
35
:
InitialState
<
Description
, dim, Number>(
"circular dam break"
, sub)
36
, hyperbolic_system(hyperbolic_system)
37
{
38
still_water_depth_ = 0.5;
39
this->add_parameter(
"still water depth"
,
40
still_water_depth_,
41
"Depth of still water outside circular dam"
);
42
radius_ = 2.5;
43
this->add_parameter(
"radius"
, radius_,
"Radius of circular dam "
);
44
45
dam_amplitude_ = 2.5;
46
this->add_parameter(
47
"dam amplitude"
, dam_amplitude_,
"Amplitude of circular dam"
);
48
}
49
50
state_type
compute
(
const
dealii::Point<dim> &point, Number
/*t*/
)
final
51
{
52
const
Number r = point.norm_square();
53
const
Number h = (r <= radius_ ? dam_amplitude_ : still_water_depth_);
54
55
return
state_type
{{h, 0.}};
56
}
57
58
/* Default bathymetry of 0 */
59
60
private
:
61
const
HyperbolicSystem
&hyperbolic_system;
62
63
Number still_water_depth_;
64
Number radius_;
65
Number dam_amplitude_;
66
};
67
68
}
// namespace ShallowWater
69
}
// namespace ryujin
ryujin::InitialState
Definition
initial_state_library.h:34
ryujin::ShallowWater::CircularDamBreak
Definition
initial_state_circular_dam_break.h:28
ryujin::ShallowWater::CircularDamBreak::state_type
typename View::state_type state_type
Definition
initial_state_circular_dam_break.h:31
ryujin::ShallowWater::CircularDamBreak::CircularDamBreak
CircularDamBreak(const HyperbolicSystem &hyperbolic_system, const std::string sub)
Definition
initial_state_circular_dam_break.h:33
ryujin::ShallowWater::CircularDamBreak::compute
state_type compute(const dealii::Point< dim > &point, Number) final
Definition
initial_state_circular_dam_break.h:50
ryujin::ShallowWater::HyperbolicSystemView
Definition
hyperbolic_system.h:134
ryujin::ShallowWater::HyperbolicSystemView::state_type
dealii::Tensor< 1, problem_dimension, Number > state_type
Definition
hyperbolic_system.h:154
ryujin::ShallowWater::HyperbolicSystem
Definition
hyperbolic_system.h:42
initial_state_library.h
ryujin
Definition
computing_timer.h:22
ryujin::Description
Euler::Description Description
Definition
initial_state_library.template.h:15
hyperbolic_system.h
ryujin::ShallowWater::Description
Definition
description.h:34
Generated by
1.9.8