~fluidity-core/fluidity/shallow-water-dev

« back to all changes in this revision

Viewing changes to tests/sw_advection_tests/sw_fully_coupled.swml

  • Committer: Jemma Shipton
  • Date: 2012-10-23 12:39:04 UTC
  • mfrom: (3574.2.151 bdfm1-nonlinear-sw)
  • Revision ID: jshipton@ic.ac.uk-20121023123904-oalpymh8vx716nj6
merging changes from Colin's bdfm1-nonlinear-sw branch

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version='1.0' encoding='utf-8'?>
 
2
<shallow_water_options>
 
3
  <simulation_name>
 
4
    <string_value lines="1">sw_advection1</string_value>
 
5
  </simulation_name>
 
6
  <geometry>
 
7
    <dimension>
 
8
      <integer_value rank="0">3</integer_value>
 
9
    </dimension>
 
10
    <mesh name="CoordinateMesh">
 
11
      <from_file file_name="channel">
 
12
        <format name="triangle"/>
 
13
        <dimension>
 
14
          <integer_value rank="0">2</integer_value>
 
15
        </dimension>
 
16
        <stat>
 
17
          <include_in_stat/>
 
18
        </stat>
 
19
      </from_file>
 
20
    </mesh>
 
21
    <mesh name="VelocityMesh">
 
22
      <from_mesh>
 
23
        <mesh name="PeriodicMesh"/>
 
24
        <mesh_shape>
 
25
          <polynomial_degree>
 
26
            <integer_value rank="0">2</integer_value>
 
27
          </polynomial_degree>
 
28
        </mesh_shape>
 
29
        <mesh_continuity>
 
30
          <string_value>discontinuous</string_value>
 
31
        </mesh_continuity>
 
32
        <constraint_type>
 
33
          <string_value>BDFM</string_value>
 
34
          <solver>
 
35
            <iterative_method name="preonly"/>
 
36
            <preconditioner name="lu"/>
 
37
            <relative_error>
 
38
              <real_value rank="0">1.0e-50</real_value>
 
39
            </relative_error>
 
40
            <max_iterations>
 
41
              <integer_value rank="0">1000</integer_value>
 
42
            </max_iterations>
 
43
            <never_ignore_solver_failures/>
 
44
            <diagnostics>
 
45
              <monitors/>
 
46
            </diagnostics>
 
47
          </solver>
 
48
        </constraint_type>
 
49
        <stat>
 
50
          <exclude_from_stat/>
 
51
        </stat>
 
52
      </from_mesh>
 
53
    </mesh>
 
54
    <mesh name="PressureMesh">
 
55
      <from_mesh>
 
56
        <mesh name="PeriodicMesh"/>
 
57
        <mesh_shape>
 
58
          <polynomial_degree>
 
59
            <integer_value rank="0">1</integer_value>
 
60
          </polynomial_degree>
 
61
        </mesh_shape>
 
62
        <mesh_continuity>
 
63
          <string_value>discontinuous</string_value>
 
64
        </mesh_continuity>
 
65
        <stat>
 
66
          <exclude_from_stat/>
 
67
        </stat>
 
68
      </from_mesh>
 
69
    </mesh>
 
70
    <mesh name="VorticityMesh">
 
71
      <from_mesh>
 
72
        <mesh name="PeriodicMesh"/>
 
73
        <mesh_shape>
 
74
          <polynomial_degree>
 
75
            <integer_value rank="0">2</integer_value>
 
76
          </polynomial_degree>
 
77
          <element_type>
 
78
            <string_value>bubble</string_value>
 
79
          </element_type>
 
80
        </mesh_shape>
 
81
        <mesh_continuity>
 
82
          <string_value>continuous</string_value>
 
83
        </mesh_continuity>
 
84
        <stat>
 
85
          <exclude_from_stat/>
 
86
        </stat>
 
87
      </from_mesh>
 
88
    </mesh>
 
89
    <mesh name="PeriodicMesh">
 
90
      <from_mesh>
 
91
        <mesh name="CoordinateMesh"/>
 
92
        <periodic_boundary_conditions name="EndsMeet">
 
93
          <physical_boundary_ids>
 
94
            <integer_value shape="1" rank="1">1</integer_value>
 
95
          </physical_boundary_ids>
 
96
          <aliased_boundary_ids>
 
97
            <integer_value shape="1" rank="1">2</integer_value>
 
98
          </aliased_boundary_ids>
 
99
          <coordinate_map>
 
100
            <string_value lines="20" type="code" language="python">def val(X,t):
 
101
        result = list(X)
 
102
        result[0]=result[0]-1.0
 
103
        return result</string_value>
 
104
          </coordinate_map>
 
105
        </periodic_boundary_conditions>
 
106
        <periodic_boundary_conditions name="TopAndBottomMeet">
 
107
          <physical_boundary_ids>
 
108
            <integer_value shape="1" rank="1">3</integer_value>
 
109
          </physical_boundary_ids>
 
110
          <aliased_boundary_ids>
 
111
            <integer_value shape="1" rank="1">4</integer_value>
 
112
          </aliased_boundary_ids>
 
113
          <coordinate_map>
 
114
            <string_value lines="20" type="code" language="python">def val(X,t):
 
115
        result = list(X)
 
116
        result[1]=result[1]-1.0
 
117
        return result</string_value>
 
118
          </coordinate_map>
 
119
        </periodic_boundary_conditions>
 
120
        <stat>
 
121
          <exclude_from_stat/>
 
122
        </stat>
 
123
      </from_mesh>
 
124
    </mesh>
 
125
    <quadrature>
 
126
      <degree>
 
127
        <integer_value rank="0">6</integer_value>
 
128
      </degree>
 
129
    </quadrature>
 
130
  </geometry>
 
131
  <io>
 
132
    <dump_format>
 
133
      <string_value>vtk</string_value>
 
134
    </dump_format>
 
135
    <dump_period_in_timesteps>
 
136
      <constant>
 
137
        <integer_value rank="0">1</integer_value>
 
138
      </constant>
 
139
    </dump_period_in_timesteps>
 
140
    <output_mesh name="VelocityMesh"/>
 
141
  </io>
 
142
  <timestepping>
 
143
    <current_time>
 
144
      <real_value rank="0">0.0</real_value>
 
145
    </current_time>
 
146
    <timestep>
 
147
      <real_value rank="0">0.01</real_value>
 
148
    </timestep>
 
149
    <theta>
 
150
      <real_value rank="0">0.5</real_value>
 
151
    </theta>
 
152
    <nonlinear_iterations>
 
153
      <integer_value rank="0">1</integer_value>
 
154
    </nonlinear_iterations>
 
155
    <finish_time>
 
156
      <real_value rank="0">0.05</real_value>
 
157
      <comment>24*60*60*10=846000</comment>
 
158
    </finish_time>
 
159
  </timestepping>
 
160
  <physical_parameters>
 
161
    <gravity>
 
162
      <magnitude>
 
163
        <real_value rank="0">9.80616</real_value>
 
164
      </magnitude>
 
165
      <vector_field name="GravityDirection" rank="1">
 
166
        <prescribed>
 
167
          <mesh name="CoordinateMesh"/>
 
168
          <value name="WholeMesh">
 
169
            <constant>
 
170
              <real_value shape="3" dim1="dim" rank="1">0. 0. -1.</real_value>
 
171
            </constant>
 
172
          </value>
 
173
          <output/>
 
174
          <stat>
 
175
            <include_in_stat/>
 
176
          </stat>
 
177
          <detectors>
 
178
            <exclude_from_detectors/>
 
179
          </detectors>
 
180
          <adjoint_storage>
 
181
            <exists_in_forward/>
 
182
          </adjoint_storage>
 
183
        </prescribed>
 
184
      </vector_field>
 
185
    </gravity>
 
186
    <coriolis>
 
187
      <string_value lines="20" type="code" language="python">def val(X,t):
 
188
  return 1.4574e-4</string_value>
 
189
      <comment>Was 1.4584e-4 for f-sphere.</comment>
 
190
    </coriolis>
 
191
  </physical_parameters>
 
192
  <material_phase name="Fluid">
 
193
    <vector_field name="Velocity" rank="1">
 
194
      <prognostic>
 
195
        <mesh name="VelocityMesh"/>
 
196
        <equation name="ShallowWater"/>
 
197
        <wave_equation>
 
198
          <just_wave_equation_step/>
 
199
        </wave_equation>
 
200
        <spatial_discretisation>
 
201
          <discontinuous_galerkin/>
 
202
        </spatial_discretisation>
 
203
        <temporal_discretisation>
 
204
          <relaxation>
 
205
            <real_value rank="0">0.5</real_value>
 
206
          </relaxation>
 
207
          <discontinuous_galerkin>
 
208
            <maximum_courant_number_per_subcycle>
 
209
              <real_value rank="0">0.1</real_value>
 
210
            </maximum_courant_number_per_subcycle>
 
211
          </discontinuous_galerkin>
 
212
        </temporal_discretisation>
 
213
        <solver>
 
214
          <iterative_method name="preonly"/>
 
215
          <preconditioner name="lu"/>
 
216
          <relative_error>
 
217
            <real_value rank="0">1.0e-7</real_value>
 
218
          </relative_error>
 
219
          <max_iterations>
 
220
            <integer_value rank="0">1000</integer_value>
 
221
          </max_iterations>
 
222
          <never_ignore_solver_failures/>
 
223
          <diagnostics>
 
224
            <monitors/>
 
225
          </diagnostics>
 
226
        </solver>
 
227
        <initial_condition name="WholeMesh">
 
228
          <balanced>
 
229
            <solver>
 
230
              <iterative_method name="cg"/>
 
231
              <preconditioner name="sor"/>
 
232
              <relative_error>
 
233
                <real_value rank="0">1.0e-8</real_value>
 
234
              </relative_error>
 
235
              <max_iterations>
 
236
                <integer_value rank="0">1000</integer_value>
 
237
              </max_iterations>
 
238
              <never_ignore_solver_failures/>
 
239
              <diagnostics>
 
240
                <monitors/>
 
241
              </diagnostics>
 
242
            </solver>
 
243
          </balanced>
 
244
        </initial_condition>
 
245
        <output/>
 
246
        <convergence>
 
247
          <include_in_convergence/>
 
248
        </convergence>
 
249
        <detectors>
 
250
          <include_in_detectors/>
 
251
        </detectors>
 
252
        <steady_state>
 
253
          <include_in_steady_state/>
 
254
        </steady_state>
 
255
        <consistent_interpolation/>
 
256
      </prognostic>
 
257
    </vector_field>
 
258
    <scalar_field name="LayerThickness" rank="0">
 
259
      <prognostic>
 
260
        <mesh name="PressureMesh"/>
 
261
        <spatial_discretisation>
 
262
          <discontinuous_galerkin>
 
263
            <wave_equation/>
 
264
            <advection_terms>
 
265
              <exclude_advection_terms/>
 
266
            </advection_terms>
 
267
            <slope_limiter name="Vertex_Based"/>
 
268
          </discontinuous_galerkin>
 
269
          <conservative_advection>
 
270
            <real_value rank="0">0.</real_value>
 
271
          </conservative_advection>
 
272
          <debug/>
 
273
        </spatial_discretisation>
 
274
        <temporal_discretisation>
 
275
          <discontinuous_galerkin>
 
276
            <maximum_courant_number_per_subcycle>
 
277
              <real_value rank="0">0.1</real_value>
 
278
            </maximum_courant_number_per_subcycle>
 
279
          </discontinuous_galerkin>
 
280
        </temporal_discretisation>
 
281
        <solver>
 
282
          <iterative_method name="preonly"/>
 
283
          <preconditioner name="lu"/>
 
284
          <relative_error>
 
285
            <real_value rank="0">1.0e-7</real_value>
 
286
          </relative_error>
 
287
          <max_iterations>
 
288
            <integer_value rank="0">2000</integer_value>
 
289
          </max_iterations>
 
290
          <never_ignore_solver_failures/>
 
291
          <diagnostics>
 
292
            <monitors/>
 
293
          </diagnostics>
 
294
        </solver>
 
295
        <initial_condition name="WholeMesh">
 
296
          <python>
 
297
            <string_value lines="20" type="code" language="python">def val(X,t):
 
298
  from math import sin, pi, cos
 
299
  x = X[0]
 
300
  y = X[1]
 
301
  z = X[2]
 
302
  
 
303
  return 1.0+sin(pi*x)*sin(pi*y)</string_value>
 
304
          </python>
 
305
        </initial_condition>
 
306
        <mean_layer_thickness>
 
307
          <real_value rank="0">2998.1154702758267</real_value>
 
308
          <comment>gh0 = 2.94 x 10^4, g = 9.80616</comment>
 
309
        </mean_layer_thickness>
 
310
        <output/>
 
311
        <stat/>
 
312
        <consistent_interpolation/>
 
313
      </prognostic>
 
314
    </scalar_field>
 
315
    <scalar_field name="PotentialVorticity" rank="0">
 
316
      <prognostic>
 
317
        <mesh name="VorticityMesh"/>
 
318
        <spatial_discretisation>
 
319
          <continuous_galerkin/>
 
320
        </spatial_discretisation>
 
321
        <solver>
 
322
          <iterative_method name="gmres">
 
323
            <restart>
 
324
              <integer_value rank="0">40</integer_value>
 
325
            </restart>
 
326
          </iterative_method>
 
327
          <preconditioner name="sor"/>
 
328
          <relative_error>
 
329
            <real_value rank="0">1.0e-8</real_value>
 
330
          </relative_error>
 
331
          <max_iterations>
 
332
            <integer_value rank="0">1000</integer_value>
 
333
          </max_iterations>
 
334
          <never_ignore_solver_failures/>
 
335
          <diagnostics>
 
336
            <monitors/>
 
337
          </diagnostics>
 
338
        </solver>
 
339
        <output/>
 
340
        <stat/>
 
341
        <debug/>
 
342
      </prognostic>
 
343
    </scalar_field>
 
344
    <scalar_field name="Streamfunction" rank="0">
 
345
      <prescribed>
 
346
        <value>
 
347
          <python>
 
348
            <string_value lines="20" type="code" language="python">def val(X,t):
 
349
  from math import sin, pi, cos
 
350
  x = X[0]
 
351
  y = X[1]
 
352
  z = X[2]
 
353
  
 
354
  return 1.0+sin(pi*x)*sin(pi*y)</string_value>
 
355
          </python>
 
356
        </value>
 
357
        <mesh name="VorticityMesh"/>
 
358
        <output/>
 
359
      </prescribed>
 
360
    </scalar_field>
 
361
    <scalar_field name="DG_CourantNumber" rank="0">
 
362
      <diagnostic>
 
363
        <algorithm name="Internal" material_phase_support="multiple"/>
 
364
        <mesh name="PressureMesh"/>
 
365
        <output/>
 
366
        <stat/>
 
367
        <convergence>
 
368
          <include_in_convergence/>
 
369
        </convergence>
 
370
        <detectors>
 
371
          <include_in_detectors/>
 
372
        </detectors>
 
373
        <steady_state>
 
374
          <include_in_steady_state/>
 
375
        </steady_state>
 
376
        <adjoint_storage>
 
377
          <exists_in_forward/>
 
378
        </adjoint_storage>
 
379
      </diagnostic>
 
380
    </scalar_field>
 
381
  </material_phase>
 
382
  <debug>
 
383
    <check_inverse_coriolis_matrix/>
 
384
    <check_wave_matrix/>
 
385
    <check_solution/>
 
386
  </debug>
 
387
</shallow_water_options>