~michael-lange/fluidity/lagrangian_biology

« back to all changes in this revision

Viewing changes to tests/viscous_fs_simpletopbottom_explicit_testcv/viscous_fs_simpletopbottom_E.flml

  • Committer: Michael Lange
  • Date: 2014-04-03 15:05:00 UTC
  • mfrom: (3539.1.783 fluidity)
  • Revision ID: michael.lange@imperial.ac.uk-20140403150500-v6j7l5wonvr67p93
Merge from trunk

Note: Excludes recent bugfixes to prevent buffer corruption in parallel.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version='1.0' encoding='utf-8'?>
 
2
<fluidity_options>
 
3
  <simulation_name>
 
4
    <string_value lines="1">viscous_fs_simpletopbottom_E</string_value>
 
5
  </simulation_name>
 
6
  <problem_type>
 
7
    <string_value lines="1">stokes</string_value>
 
8
  </problem_type>
 
9
  <geometry>
 
10
    <dimension>
 
11
      <integer_value rank="0">2</integer_value>
 
12
    </dimension>
 
13
    <mesh name="CoordinateMesh">
 
14
      <from_file file_name="src/square">
 
15
        <format name="gmsh"/>
 
16
        <stat>
 
17
          <include_in_stat/>
 
18
        </stat>
 
19
      </from_file>
 
20
    </mesh>
 
21
    <mesh name="VelocityMesh">
 
22
      <from_mesh>
 
23
        <mesh name="CoordinateMesh"/>
 
24
        <mesh_shape>
 
25
          <polynomial_degree>
 
26
            <integer_value rank="0">2</integer_value>
 
27
          </polynomial_degree>
 
28
        </mesh_shape>
 
29
        <stat>
 
30
          <exclude_from_stat/>
 
31
        </stat>
 
32
      </from_mesh>
 
33
    </mesh>
 
34
    <mesh name="FreeSurfaceSquaredMesh">
 
35
      <from_mesh>
 
36
        <mesh name="CoordinateMesh"/>
 
37
        <mesh_shape>
 
38
          <polynomial_degree>
 
39
            <integer_value rank="0">2</integer_value>
 
40
          </polynomial_degree>
 
41
        </mesh_shape>
 
42
        <stat>
 
43
          <exclude_from_stat/>
 
44
        </stat>
 
45
      </from_mesh>
 
46
    </mesh>
 
47
    <quadrature>
 
48
      <degree>
 
49
        <integer_value rank="0">5</integer_value>
 
50
      </degree>
 
51
    </quadrature>
 
52
  </geometry>
 
53
  <io>
 
54
    <dump_format>
 
55
      <string_value>vtk</string_value>
 
56
    </dump_format>
 
57
    <dump_period>
 
58
      <constant>
 
59
        <real_value rank="0">1.0</real_value>
 
60
      </constant>
 
61
    </dump_period>
 
62
    <output_mesh name="CoordinateMesh"/>
 
63
    <stat>
 
64
      <output_at_start/>
 
65
      <output_before_adapts/>
 
66
      <output_after_adapts/>
 
67
    </stat>
 
68
  </io>
 
69
  <timestepping>
 
70
    <current_time>
 
71
      <real_value rank="0">0.0</real_value>
 
72
    </current_time>
 
73
    <timestep>
 
74
      <real_value rank="0">0.0625</real_value>
 
75
    </timestep>
 
76
    <finish_time>
 
77
      <real_value rank="0">1.0</real_value>
 
78
    </finish_time>
 
79
  </timestepping>
 
80
  <physical_parameters>
 
81
    <gravity>
 
82
      <magnitude>
 
83
        <real_value rank="0">12.225727727</real_value>
 
84
        <comment>solution.nond_factor()</comment>
 
85
      </magnitude>
 
86
      <vector_field name="GravityDirection" rank="1">
 
87
        <prescribed>
 
88
          <mesh name="CoordinateMesh"/>
 
89
          <value name="WholeMesh">
 
90
            <constant>
 
91
              <real_value shape="2" dim1="dim" rank="1">0.0 -1.0</real_value>
 
92
            </constant>
 
93
          </value>
 
94
          <output/>
 
95
          <stat>
 
96
            <include_in_stat/>
 
97
          </stat>
 
98
          <detectors>
 
99
            <exclude_from_detectors/>
 
100
          </detectors>
 
101
        </prescribed>
 
102
      </vector_field>
 
103
    </gravity>
 
104
  </physical_parameters>
 
105
  <material_phase name="Fluid">
 
106
    <equation_of_state>
 
107
      <fluids>
 
108
        <linear>
 
109
          <reference_density>
 
110
            <real_value rank="0">1.0</real_value>
 
111
          </reference_density>
 
112
          <subtract_out_hydrostatic_level/>
 
113
        </linear>
 
114
      </fluids>
 
115
    </equation_of_state>
 
116
    <scalar_field name="Pressure" rank="0">
 
117
      <prognostic>
 
118
        <mesh name="CoordinateMesh"/>
 
119
        <spatial_discretisation>
 
120
          <continuous_galerkin>
 
121
            <remove_stabilisation_term/>
 
122
            <integrate_continuity_by_parts/>
 
123
            <test_continuity_with_cv_dual/>
 
124
          </continuous_galerkin>
 
125
        </spatial_discretisation>
 
126
        <scheme>
 
127
          <poisson_pressure_solution>
 
128
            <string_value lines="1">never</string_value>
 
129
          </poisson_pressure_solution>
 
130
          <use_projection_method>
 
131
            <full_schur_complement>
 
132
              <inner_matrix name="FullMomentumMatrix">
 
133
                <solver>
 
134
                  <iterative_method name="cg"/>
 
135
                  <preconditioner name="mg"/>
 
136
                  <relative_error>
 
137
                    <real_value rank="0">1.e-12</real_value>
 
138
                  </relative_error>
 
139
                  <max_iterations>
 
140
                    <integer_value rank="0">1000</integer_value>
 
141
                  </max_iterations>
 
142
                  <never_ignore_solver_failures/>
 
143
                  <diagnostics>
 
144
                    <monitors/>
 
145
                  </diagnostics>
 
146
                </solver>
 
147
              </inner_matrix>
 
148
              <preconditioner_matrix name="ScaledPressureMassMatrix"/>
 
149
            </full_schur_complement>
 
150
          </use_projection_method>
 
151
        </scheme>
 
152
        <solver>
 
153
          <iterative_method name="fgmres"/>
 
154
          <preconditioner name="ksp">
 
155
            <solver>
 
156
              <iterative_method name="cg"/>
 
157
              <preconditioner name="sor"/>
 
158
              <relative_error>
 
159
                <real_value rank="0">1.e-12</real_value>
 
160
              </relative_error>
 
161
              <max_iterations>
 
162
                <integer_value rank="0">1000</integer_value>
 
163
              </max_iterations>
 
164
              <never_ignore_solver_failures/>
 
165
              <diagnostics>
 
166
                <monitors/>
 
167
              </diagnostics>
 
168
            </solver>
 
169
          </preconditioner>
 
170
          <relative_error>
 
171
            <real_value rank="0">1.e-10</real_value>
 
172
          </relative_error>
 
173
          <absolute_error>
 
174
            <real_value rank="0">1.e-16</real_value>
 
175
          </absolute_error>
 
176
          <max_iterations>
 
177
            <integer_value rank="0">1000</integer_value>
 
178
          </max_iterations>
 
179
          <never_ignore_solver_failures/>
 
180
          <diagnostics>
 
181
            <monitors/>
 
182
          </diagnostics>
 
183
        </solver>
 
184
        <output/>
 
185
        <stat/>
 
186
        <convergence>
 
187
          <include_in_convergence/>
 
188
        </convergence>
 
189
        <detectors>
 
190
          <exclude_from_detectors/>
 
191
        </detectors>
 
192
        <steady_state>
 
193
          <include_in_steady_state/>
 
194
        </steady_state>
 
195
        <no_interpolation/>
 
196
      </prognostic>
 
197
    </scalar_field>
 
198
    <scalar_field name="Density" rank="0">
 
199
      <diagnostic>
 
200
        <algorithm name="Internal" material_phase_support="multiple"/>
 
201
        <mesh name="CoordinateMesh"/>
 
202
        <output/>
 
203
        <stat/>
 
204
        <convergence>
 
205
          <include_in_convergence/>
 
206
        </convergence>
 
207
        <detectors>
 
208
          <include_in_detectors/>
 
209
        </detectors>
 
210
        <steady_state>
 
211
          <include_in_steady_state/>
 
212
        </steady_state>
 
213
      </diagnostic>
 
214
    </scalar_field>
 
215
    <vector_field name="Velocity" rank="1">
 
216
      <prognostic>
 
217
        <mesh name="VelocityMesh"/>
 
218
        <equation name="LinearMomentum"/>
 
219
        <spatial_discretisation>
 
220
          <continuous_galerkin>
 
221
            <stabilisation>
 
222
              <no_stabilisation/>
 
223
            </stabilisation>
 
224
            <mass_terms>
 
225
              <exclude_mass_terms/>
 
226
            </mass_terms>
 
227
            <advection_terms>
 
228
              <exclude_advection_terms/>
 
229
            </advection_terms>
 
230
            <stress_terms>
 
231
              <partial_stress_form/>
 
232
            </stress_terms>
 
233
          </continuous_galerkin>
 
234
          <conservative_advection>
 
235
            <real_value rank="0">1.0</real_value>
 
236
          </conservative_advection>
 
237
        </spatial_discretisation>
 
238
        <temporal_discretisation>
 
239
          <theta>
 
240
            <real_value rank="0">1.0</real_value>
 
241
          </theta>
 
242
          <relaxation>
 
243
            <real_value rank="0">1.0</real_value>
 
244
          </relaxation>
 
245
          <theta_pressure_gradient>
 
246
            <real_value rank="0">0.5</real_value>
 
247
          </theta_pressure_gradient>
 
248
        </temporal_discretisation>
 
249
        <reference_coordinates>
 
250
          <real_value shape="2" dim1="dim" rank="1">0.25 0.5</real_value>
 
251
          <specify_components>
 
252
            <y_component/>
 
253
          </specify_components>
 
254
        </reference_coordinates>
 
255
        <solver>
 
256
          <iterative_method name="cg"/>
 
257
          <preconditioner name="mg"/>
 
258
          <relative_error>
 
259
            <real_value rank="0">1.e-12</real_value>
 
260
          </relative_error>
 
261
          <max_iterations>
 
262
            <integer_value rank="0">1000</integer_value>
 
263
          </max_iterations>
 
264
          <never_ignore_solver_failures/>
 
265
          <diagnostics>
 
266
            <monitors/>
 
267
          </diagnostics>
 
268
        </solver>
 
269
        <initial_condition name="WholeMesh">
 
270
          <constant>
 
271
            <real_value shape="2" dim1="dim" rank="1">0.0 0.0</real_value>
 
272
          </constant>
 
273
        </initial_condition>
 
274
        <boundary_conditions name="Sides">
 
275
          <surface_ids>
 
276
            <integer_value shape="2" rank="1">7 9</integer_value>
 
277
          </surface_ids>
 
278
          <type name="dirichlet">
 
279
            <align_bc_with_cartesian>
 
280
              <x_component>
 
281
                <constant>
 
282
                  <real_value rank="0">0.0</real_value>
 
283
                </constant>
 
284
              </x_component>
 
285
            </align_bc_with_cartesian>
 
286
          </type>
 
287
        </boundary_conditions>
 
288
        <boundary_conditions name="Bottom">
 
289
          <surface_ids>
 
290
            <integer_value shape="1" rank="1">6</integer_value>
 
291
          </surface_ids>
 
292
          <type name="free_surface">
 
293
            <no_normal_stress>
 
294
              <explicit/>
 
295
            </no_normal_stress>
 
296
            <external_density>
 
297
              <real_value rank="0">2.0</real_value>
 
298
            </external_density>
 
299
          </type>
 
300
        </boundary_conditions>
 
301
        <boundary_conditions name="Top">
 
302
          <surface_ids>
 
303
            <integer_value shape="1" rank="1">8</integer_value>
 
304
          </surface_ids>
 
305
          <type name="free_surface">
 
306
            <no_normal_stress>
 
307
              <explicit/>
 
308
            </no_normal_stress>
 
309
          </type>
 
310
        </boundary_conditions>
 
311
        <tensor_field name="Viscosity" rank="2">
 
312
          <prescribed>
 
313
            <value name="WholeMesh">
 
314
              <anisotropic_symmetric>
 
315
                <constant>
 
316
                  <real_value symmetric="true" dim2="dim" shape="2 2" dim1="dim" rank="2">1.0 1.0 1.0 1.0</real_value>
 
317
                </constant>
 
318
              </anisotropic_symmetric>
 
319
            </value>
 
320
            <output/>
 
321
          </prescribed>
 
322
        </tensor_field>
 
323
        <output/>
 
324
        <stat>
 
325
          <include_in_stat/>
 
326
          <previous_time_step>
 
327
            <exclude_from_stat/>
 
328
          </previous_time_step>
 
329
          <nonlinear_field>
 
330
            <exclude_from_stat/>
 
331
          </nonlinear_field>
 
332
        </stat>
 
333
        <convergence>
 
334
          <include_in_convergence/>
 
335
        </convergence>
 
336
        <detectors>
 
337
          <include_in_detectors/>
 
338
        </detectors>
 
339
        <steady_state>
 
340
          <include_in_steady_state/>
 
341
        </steady_state>
 
342
        <consistent_interpolation/>
 
343
      </prognostic>
 
344
    </vector_field>
 
345
    <scalar_field name="FreeSurface" rank="0">
 
346
      <prognostic>
 
347
        <mesh name="CoordinateMesh"/>
 
348
        <initial_condition name="WholeMesh">
 
349
          <python>
 
350
            <string_value lines="20" type="code" language="python">import solution
 
351
global dx, F, G
 
352
dx = solution.dx
 
353
F = solution.nond_F
 
354
G = solution.nond_G
 
355
 
 
356
def val(X,t):
 
357
  if(X[1]&gt;(1.-dx/2.)):
 
358
    return F(X[0], t)
 
359
  elif(X[1]&lt;dx/2.):
 
360
    return G(X[0], t)
 
361
  else:
 
362
    return 0.0</string_value>
 
363
          </python>
 
364
        </initial_condition>
 
365
        <solver>
 
366
          <iterative_method name="cg"/>
 
367
          <preconditioner name="sor"/>
 
368
          <relative_error>
 
369
            <real_value rank="0">1.e-6</real_value>
 
370
          </relative_error>
 
371
          <max_iterations>
 
372
            <integer_value rank="0">1000</integer_value>
 
373
          </max_iterations>
 
374
          <never_ignore_solver_failures/>
 
375
          <diagnostics>
 
376
            <monitors/>
 
377
          </diagnostics>
 
378
        </solver>
 
379
        <output/>
 
380
        <stat>
 
381
          <surface_integral type="value" name="Top">
 
382
            <surface_ids>
 
383
              <integer_value shape="1" rank="1">8</integer_value>
 
384
            </surface_ids>
 
385
          </surface_integral>
 
386
          <surface_integral type="value" name="Bottom">
 
387
            <surface_ids>
 
388
              <integer_value shape="1" rank="1">6</integer_value>
 
389
            </surface_ids>
 
390
          </surface_integral>
 
391
        </stat>
 
392
        <convergence>
 
393
          <include_in_convergence/>
 
394
        </convergence>
 
395
        <detectors>
 
396
          <include_in_detectors/>
 
397
        </detectors>
 
398
        <steady_state>
 
399
          <include_in_steady_state/>
 
400
        </steady_state>
 
401
        <consistent_interpolation/>
 
402
      </prognostic>
 
403
    </scalar_field>
 
404
    <scalar_field name="AnalyticalFreeSurface" rank="0">
 
405
      <prescribed>
 
406
        <mesh name="CoordinateMesh"/>
 
407
        <value name="WholeMesh">
 
408
          <python>
 
409
            <string_value lines="20" type="code" language="python">import solution
 
410
global dx, F, G
 
411
dx = solution.dx
 
412
F = solution.nond_F
 
413
G = solution.nond_G
 
414
 
 
415
def val(X,t):
 
416
  if(X[1]&gt;(1.-dx/2.)):
 
417
    return F(X[0], t)
 
418
  elif(X[1]&lt;dx/2.):
 
419
    return G(X[0], t)
 
420
  else:
 
421
    return 0.0</string_value>
 
422
          </python>
 
423
        </value>
 
424
        <output/>
 
425
        <stat/>
 
426
        <detectors>
 
427
          <exclude_from_detectors/>
 
428
        </detectors>
 
429
      </prescribed>
 
430
    </scalar_field>
 
431
    <scalar_field name="FreeSurfaceDifference" rank="0">
 
432
      <diagnostic>
 
433
        <algorithm source_field_2_type="scalar" name="scalar_difference" source_field_1_name="FreeSurface" source_field_2_name="AnalyticalFreeSurface" material_phase_support="single" source_field_1_type="scalar">
 
434
          <absolute_difference/>
 
435
        </algorithm>
 
436
        <mesh name="FreeSurfaceSquaredMesh"/>
 
437
        <output/>
 
438
        <stat/>
 
439
        <convergence>
 
440
          <include_in_convergence/>
 
441
        </convergence>
 
442
        <detectors>
 
443
          <include_in_detectors/>
 
444
        </detectors>
 
445
        <steady_state>
 
446
          <include_in_steady_state/>
 
447
        </steady_state>
 
448
      </diagnostic>
 
449
    </scalar_field>
 
450
    <scalar_field name="DifferenceSquared" rank="0">
 
451
      <diagnostic>
 
452
        <algorithm name="scalar_python_diagnostic" material_phase_support="single">
 
453
          <string_value lines="20" type="code" language="python">fsd = state.scalar_fields["FreeSurfaceDifference"]
 
454
 
 
455
assert(field.node_count==fsd.node_count)
 
456
 
 
457
for i in range(field.node_count):
 
458
  field.set(i, fsd.node_val(i)*fsd.node_val(i))</string_value>
 
459
          <depends>
 
460
            <string_value lines="1">FreeSurfaceDifference</string_value>
 
461
          </depends>
 
462
        </algorithm>
 
463
        <mesh name="FreeSurfaceSquaredMesh"/>
 
464
        <output/>
 
465
        <stat>
 
466
          <surface_integral type="value" name="SurfaceL2Norm">
 
467
            <surface_ids>
 
468
              <integer_value shape="1" rank="1">6 8</integer_value>
 
469
            </surface_ids>
 
470
          </surface_integral>
 
471
          <surface_integral type="value" name="TopSurfaceL2Norm">
 
472
            <surface_ids>
 
473
              <integer_value shape="1" rank="1">8</integer_value>
 
474
            </surface_ids>
 
475
          </surface_integral>
 
476
          <surface_integral type="value" name="BottomSurfaceL2Norm">
 
477
            <surface_ids>
 
478
              <integer_value shape="1" rank="1">6</integer_value>
 
479
            </surface_ids>
 
480
          </surface_integral>
 
481
        </stat>
 
482
        <convergence>
 
483
          <include_in_convergence/>
 
484
        </convergence>
 
485
        <detectors>
 
486
          <include_in_detectors/>
 
487
        </detectors>
 
488
        <steady_state>
 
489
          <include_in_steady_state/>
 
490
        </steady_state>
 
491
      </diagnostic>
 
492
    </scalar_field>
 
493
  </material_phase>
 
494
</fluidity_options>