-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsediment_formulation_2d.html
176 lines (163 loc) · 12.2 KB
/
sediment_formulation_2d.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
<!DOCTYPE html>
<html lang="en" data-content_root="./">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>2D sediment transport formulation — Thetis 0+untagged.2009.gb75eefa documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="_static/thetis.css?v=0f3339d6" />
<script src="_static/documentation_options.js?v=47a7fef3"></script>
<script src="_static/doctools.js?v=888ff710"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<script async="async" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<!--[if lte IE 6]>
<link rel="stylesheet" href="_static/ie6.css" type="text/css" media="screen" charset="utf-8" />
<![endif]-->
<!-- <link rel="stylesheet" href="_static/featured.css"> -->
<link rel="shortcut icon" href="_static/icon_thetis.ico" />
</head><body>
<div class="wrapper">
<a href="index.html"><img src="_static/banner.jpg" height="180px" alt="Thetis Project Banner" /></a>
<div id="access">
<div class="menu">
<ul>
<li class="page_item"><a href="documentation.html" title="Thetis documentation">Documentation</a></li>
<li class="page_item"><a href="download.html" title="Install Thetis">Download</a></li>
<li class="page_item"><a href="team.html" title="Development team">Team</a></li>
<li class="page_item"><a href="publications.html" title="Publications">Publications</a></li>
<li class="page_item"><a href="funding.html" title="Our financial supporters">Funding</a></li>
<li class="page_item"><a href="contact.html" title="Getting in touch">Contact</a></li>
<li class="page_item"><a href="https://github.com/thetisproject/thetis" title="Thetis source on GitHub">GitHub</a></li>
</ul>
</div><!-- .menu -->
</div><!-- #access -->
</div><!-- #wrapper -->
<div class="document">
<div class="sediment_formulation_2d">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="d-sediment-transport-formulation">
<h1>2D sediment transport formulation<a class="headerlink" href="#d-sediment-transport-formulation" title="Link to this heading">¶</a></h1>
<section id="governing-equations">
<h2>Governing equations<a class="headerlink" href="#governing-equations" title="Link to this heading">¶</a></h2>
<p>Suspended sediment transport is modelled in two dimensions
using an advection-diffusion equation
<a class="reference internal" href="thetis.html#equation-sediment-eq-2d">(6)</a>.
If solved in non-conservative form, the prognostic variable
is the passive tracer concentration,
<span class="math notranslate nohighlight">\(T\)</span>. The corresponding field in Thetis is called
<code class="docutils literal notranslate"><span class="pre">'sediment_2d'</span></code>.</p>
<p>The sediment model is defined by specifying parameters in
<a class="reference internal" href="model_options_2d.html#model-options-2d"><span class="std std-ref">ModelOptions2d</span></a>.<a class="reference internal" href="thetis.html#thetis.options.ModelOptions2d.sediment_model_options" title="thetis.options.ModelOptions2d.sediment_model_options"><code class="xref py py-attr docutils literal notranslate"><span class="pre">sediment_model_options</span></code></a>.
See
<a class="reference internal" href="sediment_model_options.html#sediment-model-options"><span class="std std-ref">SedimentModelOptions</span></a>
for a list of all available parameters.</p>
<p>A conservative suspended sediment transport model is also
available. In this case, the equation is solved for
<span class="math notranslate nohighlight">\(q=HT\)</span>, where
<span class="math notranslate nohighlight">\(H\)</span> is the total water depth.
The conservative tracer model is specified using the
<a class="reference internal" href="sediment_model_options.html#sediment-model-options"><span class="std std-ref">SedimentModelOptions</span></a>.<a class="reference internal" href="thetis.html#thetis.options.SedimentModelOptions.use_sediment_conservative_form" title="thetis.options.SedimentModelOptions.use_sediment_conservative_form"><code class="xref py py-attr docutils literal notranslate"><span class="pre">use_sediment_conservative_form</span></code></a>
option.</p>
<p>Bedload transport is modelled in two dimensions using the
Exner equation
<a class="reference internal" href="thetis.html#equation-exner-eq">(1)</a>.
It is solved for the bedlevel,
<span class="math notranslate nohighlight">\(z_b\)</span>, which is the bathymetry. The corresponding field
in Thetis is called
<code class="docutils literal notranslate"><span class="pre">'bathymetry_2d'</span></code>.</p>
<p>To activate the 2D sediment model, set the
<a class="reference internal" href="sediment_model_options.html#sediment-model-options"><span class="std std-ref">SedimentModelOptions</span></a>.<a class="reference internal" href="thetis.html#thetis.options.SedimentModelOptions.solve_suspended_sediment" title="thetis.options.SedimentModelOptions.solve_suspended_sediment"><code class="xref py py-attr docutils literal notranslate"><span class="pre">solve_suspended_sediment</span></code></a>
and
<a class="reference internal" href="sediment_model_options.html#sediment-model-options"><span class="std std-ref">SedimentModelOptions</span></a>.<a class="reference internal" href="thetis.html#thetis.options.SedimentModelOptions.solve_exner" title="thetis.options.SedimentModelOptions.solve_exner"><code class="xref py py-attr docutils literal notranslate"><span class="pre">solve_exner</span></code></a>
options to
<code class="docutils literal notranslate"><span class="pre">True</span></code>.</p>
</section>
<section id="spatial-discretization">
<h2>Spatial discretization<a class="headerlink" href="#spatial-discretization" title="Link to this heading">¶</a></h2>
<p>Thetis currently only supports suspended sediment in P1DG space.
Lax-Friedrichs stabilization is used by default and may be
controlled using the
<a class="reference internal" href="model_options_2d.html#model-options-2d"><span class="std std-ref">ModelOptions2d</span></a>.<a class="reference internal" href="thetis.html#thetis.options.CommonModelOptions.use_lax_friedrichs_tracer" title="thetis.options.CommonModelOptions.use_lax_friedrichs_tracer"><code class="xref py py-attr docutils literal notranslate"><span class="pre">use_lax_friedrichs_tracer</span></code></a>
option. The scaling parameter used by this scheme may be controlled
using the
<a class="reference internal" href="model_options_2d.html#model-options-2d"><span class="std std-ref">ModelOptions2d</span></a>.<a class="reference internal" href="thetis.html#thetis.options.CommonModelOptions.lax_friedrichs_tracer_scaling_factor" title="thetis.options.CommonModelOptions.lax_friedrichs_tracer_scaling_factor"><code class="xref py py-attr docutils literal notranslate"><span class="pre">lax_friedrichs_tracer_scaling_factor</span></code></a>
option.</p>
<p>The function space used for the bedlevel is determined by that
used for the bathymetry. Typically, this is P1.</p>
</section>
<section id="temporal-discretization">
<h2>Temporal discretization<a class="headerlink" href="#temporal-discretization" title="Link to this heading">¶</a></h2>
<p>Thetis supports different time integration methods, set by the
<a class="reference internal" href="sediment_model_options.html#sediment-model-options"><span class="std std-ref">SedimentModelOptions</span></a>.<a class="reference internal" href="thetis.html#thetis.options.SedimentModelOptions.sediment_timestepper_type" title="thetis.options.SedimentModelOptions.sediment_timestepper_type"><code class="xref py py-attr docutils literal notranslate"><span class="pre">sediment_timestepper_type</span></code></a>
and
<a class="reference internal" href="sediment_model_options.html#sediment-model-options"><span class="std std-ref">SedimentModelOptions</span></a>.<a class="reference internal" href="thetis.html#thetis.options.SedimentModelOptions.exner_timestepper_type" title="thetis.options.SedimentModelOptions.exner_timestepper_type"><code class="xref py py-attr docutils literal notranslate"><span class="pre">exner_timestepper_type</span></code></a>
options. Use the
<a class="reference internal" href="model_options_2d.html#model-options-2d"><span class="std std-ref">ModelOptions2d</span></a>.<a class="reference internal" href="thetis.html#thetis.options.ModelOptions2d.set_timestepper_type" title="thetis.options.ModelOptions2d.set_timestepper_type"><code class="xref py py-attr docutils literal notranslate"><span class="pre">set_timestepper_type</span></code></a>
method to set the same timestepper for all 2D model components.</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 27.7%" />
<col style="width: 33.9%" />
<col style="width: 19.6%" />
<col style="width: 18.8%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Time integrator</p></th>
<th class="head"><p>Thetis class</p></th>
<th class="head"><p>Unconditionally stable</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">'ForwardEuler'</span></code></p></td>
<td><p><a class="reference internal" href="thetis.html#thetis.timeintegrator.ForwardEuler" title="thetis.timeintegrator.ForwardEuler"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForwardEuler</span></code></a></p></td>
<td><p>No</p></td>
<td><p>Forward Euler method</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">'BackwardEuler'</span></code></p></td>
<td><p><a class="reference internal" href="thetis.html#thetis.rungekutta.BackwardEuler" title="thetis.rungekutta.BackwardEuler"><code class="xref py py-class docutils literal notranslate"><span class="pre">BackwardEuler</span></code></a></p></td>
<td><p>Yes</p></td>
<td><p>Backward Euler method</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">'CrankNicolson'</span></code></p></td>
<td><p><a class="reference internal" href="thetis.html#thetis.timeintegrator.CrankNicolson" title="thetis.timeintegrator.CrankNicolson"><code class="xref py py-class docutils literal notranslate"><span class="pre">CrankNicolson</span></code></a></p></td>
<td><p>Yes</p></td>
<td><p>Crank-Nicolson method</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">'DIRK22'</span></code></p></td>
<td><p><a class="reference internal" href="thetis.html#thetis.rungekutta.DIRK22" title="thetis.rungekutta.DIRK22"><code class="xref py py-class docutils literal notranslate"><span class="pre">DIRK22</span></code></a></p></td>
<td><p>Yes</p></td>
<td><p>DIRK(2,3,2) method</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">'DIRK33'</span></code></p></td>
<td><p><a class="reference internal" href="thetis.html#thetis.rungekutta.DIRK33" title="thetis.rungekutta.DIRK33"><code class="xref py py-class docutils literal notranslate"><span class="pre">DIRK33</span></code></a></p></td>
<td><p>Yes</p></td>
<td><p>DIRK(3,4,3) method</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">'SSPRK33'</span></code></p></td>
<td><p><a class="reference internal" href="thetis.html#thetis.rungekutta.SSPRK33" title="thetis.rungekutta.SSPRK33"><code class="xref py py-class docutils literal notranslate"><span class="pre">SSPRK33</span></code></a></p></td>
<td><p>No</p></td>
<td><p>SSPRK(3,3) method</p></td>
</tr>
</tbody>
</table>
<p>Table 1. <em>Time integration methods for 2D sediment model.</em></p>
</section>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer" role="contentinfo">
© Copyright 2016-2023, Tuomas Kärnä et al..
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 7.2.6.
</div>
</body>
</html>