~f-milthaler/fluidity/fsi-model-stationary-solid-with-velocity

« back to all changes in this revision

Viewing changes to tests/viscous_fs_top/viscous_fs_top_G.flml

  • Committer: f.milthaler10 at uk
  • Date: 2013-11-06 13:43:56 UTC
  • mfrom: (3463.184.85 fluidity)
  • Revision ID: f.milthaler10@imperial.ac.ic.uk.-20131106134356-v3lw1dheesckywj0
mergeĀ fromĀ trunk

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_top_G</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_in_timesteps>
58
 
      <constant>
59
 
        <integer_value rank="0">1</integer_value>
60
 
      </constant>
61
 
    </dump_period_in_timesteps>
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">1</real_value>
75
 
    </timestep>
76
 
    <finish_time>
77
 
      <real_value rank="0">500</real_value>
78
 
    </finish_time>
79
 
  </timestepping>
80
 
  <physical_parameters>
81
 
    <gravity>
82
 
      <magnitude>
83
 
        <real_value rank="0">1.0</real_value>
84
 
      </magnitude>
85
 
      <vector_field name="GravityDirection" rank="1">
86
 
        <prescribed>
87
 
          <mesh name="CoordinateMesh"/>
88
 
          <value name="WholeMesh">
89
 
            <constant>
90
 
              <real_value shape="2" dim1="dim" rank="1">0.0 -1.0</real_value>
91
 
            </constant>
92
 
          </value>
93
 
          <output/>
94
 
          <stat>
95
 
            <include_in_stat/>
96
 
          </stat>
97
 
          <detectors>
98
 
            <exclude_from_detectors/>
99
 
          </detectors>
100
 
        </prescribed>
101
 
      </vector_field>
102
 
    </gravity>
103
 
  </physical_parameters>
104
 
  <material_phase name="Fluid">
105
 
    <equation_of_state>
106
 
      <fluids>
107
 
        <linear>
108
 
          <reference_density>
109
 
            <real_value rank="0">1.0</real_value>
110
 
          </reference_density>
111
 
          <subtract_out_hydrostatic_level/>
112
 
        </linear>
113
 
      </fluids>
114
 
    </equation_of_state>
115
 
    <scalar_field name="Pressure" rank="0">
116
 
      <prognostic>
117
 
        <mesh name="CoordinateMesh"/>
118
 
        <spatial_discretisation>
119
 
          <continuous_galerkin>
120
 
            <remove_stabilisation_term/>
121
 
            <integrate_continuity_by_parts/>
122
 
          </continuous_galerkin>
123
 
        </spatial_discretisation>
124
 
        <scheme>
125
 
          <poisson_pressure_solution>
126
 
            <string_value lines="1">never</string_value>
127
 
          </poisson_pressure_solution>
128
 
          <use_projection_method>
129
 
            <full_schur_complement>
130
 
              <inner_matrix name="FullMomentumMatrix">
131
 
                <solver>
132
 
                  <iterative_method name="cg"/>
133
 
                  <preconditioner name="mg"/>
134
 
                  <relative_error>
135
 
                    <real_value rank="0">1.e-12</real_value>
136
 
                  </relative_error>
137
 
                  <max_iterations>
138
 
                    <integer_value rank="0">1000</integer_value>
139
 
                  </max_iterations>
140
 
                  <never_ignore_solver_failures/>
141
 
                  <diagnostics>
142
 
                    <monitors/>
143
 
                  </diagnostics>
144
 
                </solver>
145
 
              </inner_matrix>
146
 
              <preconditioner_matrix name="ScaledPressureMassMatrix"/>
147
 
            </full_schur_complement>
148
 
          </use_projection_method>
149
 
        </scheme>
150
 
        <solver>
151
 
          <iterative_method name="fgmres"/>
152
 
          <preconditioner name="ksp">
153
 
            <solver>
154
 
              <iterative_method name="cg"/>
155
 
              <preconditioner name="sor"/>
156
 
              <relative_error>
157
 
                <real_value rank="0">1.e-12</real_value>
158
 
              </relative_error>
159
 
              <max_iterations>
160
 
                <integer_value rank="0">1000</integer_value>
161
 
              </max_iterations>
162
 
              <never_ignore_solver_failures/>
163
 
              <diagnostics>
164
 
                <monitors/>
165
 
              </diagnostics>
166
 
            </solver>
167
 
          </preconditioner>
168
 
          <relative_error>
169
 
            <real_value rank="0">1.e-10</real_value>
170
 
          </relative_error>
171
 
          <absolute_error>
172
 
            <real_value rank="0">1.e-16</real_value>
173
 
          </absolute_error>
174
 
          <max_iterations>
175
 
            <integer_value rank="0">1000</integer_value>
176
 
          </max_iterations>
177
 
          <never_ignore_solver_failures/>
178
 
          <diagnostics>
179
 
            <monitors/>
180
 
          </diagnostics>
181
 
        </solver>
182
 
        <output/>
183
 
        <stat/>
184
 
        <convergence>
185
 
          <include_in_convergence/>
186
 
        </convergence>
187
 
        <detectors>
188
 
          <exclude_from_detectors/>
189
 
        </detectors>
190
 
        <steady_state>
191
 
          <include_in_steady_state/>
192
 
        </steady_state>
193
 
        <no_interpolation/>
194
 
      </prognostic>
195
 
    </scalar_field>
196
 
    <scalar_field name="Density" rank="0">
197
 
      <diagnostic>
198
 
        <algorithm name="Internal" material_phase_support="multiple"/>
199
 
        <mesh name="CoordinateMesh"/>
200
 
        <output/>
201
 
        <stat/>
202
 
        <convergence>
203
 
          <include_in_convergence/>
204
 
        </convergence>
205
 
        <detectors>
206
 
          <include_in_detectors/>
207
 
        </detectors>
208
 
        <steady_state>
209
 
          <include_in_steady_state/>
210
 
        </steady_state>
211
 
      </diagnostic>
212
 
    </scalar_field>
213
 
    <vector_field name="Velocity" rank="1">
214
 
      <prognostic>
215
 
        <mesh name="VelocityMesh"/>
216
 
        <equation name="LinearMomentum"/>
217
 
        <spatial_discretisation>
218
 
          <continuous_galerkin>
219
 
            <stabilisation>
220
 
              <no_stabilisation/>
221
 
            </stabilisation>
222
 
            <mass_terms>
223
 
              <exclude_mass_terms/>
224
 
            </mass_terms>
225
 
            <advection_terms>
226
 
              <exclude_advection_terms/>
227
 
            </advection_terms>
228
 
            <stress_terms>
229
 
              <partial_stress_form/>
230
 
            </stress_terms>
231
 
          </continuous_galerkin>
232
 
          <conservative_advection>
233
 
            <real_value rank="0">1.0</real_value>
234
 
          </conservative_advection>
235
 
        </spatial_discretisation>
236
 
        <temporal_discretisation>
237
 
          <theta>
238
 
            <real_value rank="0">1.0</real_value>
239
 
          </theta>
240
 
          <relaxation>
241
 
            <real_value rank="0">1.0</real_value>
242
 
          </relaxation>
243
 
        </temporal_discretisation>
244
 
        <solver>
245
 
          <iterative_method name="cg"/>
246
 
          <preconditioner name="mg"/>
247
 
          <relative_error>
248
 
            <real_value rank="0">1.e-12</real_value>
249
 
          </relative_error>
250
 
          <max_iterations>
251
 
            <integer_value rank="0">1000</integer_value>
252
 
          </max_iterations>
253
 
          <never_ignore_solver_failures/>
254
 
          <diagnostics>
255
 
            <monitors/>
256
 
          </diagnostics>
257
 
        </solver>
258
 
        <initial_condition name="WholeMesh">
259
 
          <constant>
260
 
            <real_value shape="2" dim1="dim" rank="1">0.0 0.0</real_value>
261
 
          </constant>
262
 
        </initial_condition>
263
 
        <boundary_conditions name="Sides">
264
 
          <surface_ids>
265
 
            <integer_value shape="2" rank="1">7 9</integer_value>
266
 
          </surface_ids>
267
 
          <type name="dirichlet">
268
 
            <align_bc_with_cartesian>
269
 
              <x_component>
270
 
                <constant>
271
 
                  <real_value rank="0">0.0</real_value>
272
 
                </constant>
273
 
              </x_component>
274
 
            </align_bc_with_cartesian>
275
 
          </type>
276
 
        </boundary_conditions>
277
 
        <boundary_conditions name="Bottom">
278
 
          <surface_ids>
279
 
            <integer_value shape="1" rank="1">6</integer_value>
280
 
          </surface_ids>
281
 
          <type name="dirichlet">
282
 
            <align_bc_with_cartesian>
283
 
              <y_component>
284
 
                <constant>
285
 
                  <real_value rank="0">0.0</real_value>
286
 
                </constant>
287
 
              </y_component>
288
 
            </align_bc_with_cartesian>
289
 
          </type>
290
 
        </boundary_conditions>
291
 
        <boundary_conditions name="Top">
292
 
          <surface_ids>
293
 
            <integer_value shape="1" rank="1">8</integer_value>
294
 
          </surface_ids>
295
 
          <type name="free_surface">
296
 
            <no_normal_stress/>
297
 
          </type>
298
 
        </boundary_conditions>
299
 
        <tensor_field name="Viscosity" rank="2">
300
 
          <prescribed>
301
 
            <value name="WholeMesh">
302
 
              <anisotropic_symmetric>
303
 
                <constant>
304
 
                  <real_value symmetric="true" dim2="dim" shape="2 2" dim1="dim" rank="2">1.0 1.0 1.0 1.0</real_value>
305
 
                </constant>
306
 
              </anisotropic_symmetric>
307
 
            </value>
308
 
            <output/>
309
 
          </prescribed>
310
 
        </tensor_field>
311
 
        <output/>
312
 
        <stat>
313
 
          <include_in_stat/>
314
 
          <previous_time_step>
315
 
            <exclude_from_stat/>
316
 
          </previous_time_step>
317
 
          <nonlinear_field>
318
 
            <exclude_from_stat/>
319
 
          </nonlinear_field>
320
 
        </stat>
321
 
        <convergence>
322
 
          <include_in_convergence/>
323
 
        </convergence>
324
 
        <detectors>
325
 
          <include_in_detectors/>
326
 
        </detectors>
327
 
        <steady_state>
328
 
          <include_in_steady_state/>
329
 
        </steady_state>
330
 
        <consistent_interpolation/>
331
 
      </prognostic>
332
 
    </vector_field>
333
 
    <scalar_field name="FreeSurface" rank="0">
334
 
      <prognostic>
335
 
        <mesh name="CoordinateMesh"/>
336
 
        <initial_condition name="WholeMesh">
337
 
          <python>
338
 
            <string_value lines="20" type="code" language="python">def val(X,t):
339
 
  from math import pi, cos, sin, cosh, sinh, exp
340
 
  dx = 1./80.
341
 
  wavelength=1.0
342
 
  k=2.0*pi/wavelength
343
 
  amp = 0.1
344
 
  
345
 
  F0 = amp*cos(k*X[0])
346
 
  if(X[1]&gt;(1.-dx/2.)):
347
 
    return F0
348
 
  else:
349
 
    return 0.0</string_value>
350
 
          </python>
351
 
        </initial_condition>
352
 
        <solver>
353
 
          <iterative_method name="cg"/>
354
 
          <preconditioner name="sor"/>
355
 
          <relative_error>
356
 
            <real_value rank="0">1.e-6</real_value>
357
 
          </relative_error>
358
 
          <max_iterations>
359
 
            <integer_value rank="0">1000</integer_value>
360
 
          </max_iterations>
361
 
          <never_ignore_solver_failures/>
362
 
          <diagnostics>
363
 
            <monitors/>
364
 
          </diagnostics>
365
 
        </solver>
366
 
        <output/>
367
 
        <stat>
368
 
          <surface_integral type="value" name="Top">
369
 
            <surface_ids>
370
 
              <integer_value shape="1" rank="1">8</integer_value>
371
 
            </surface_ids>
372
 
          </surface_integral>
373
 
          <surface_integral type="value" name="Bottom">
374
 
            <surface_ids>
375
 
              <integer_value shape="1" rank="1">6</integer_value>
376
 
            </surface_ids>
377
 
          </surface_integral>
378
 
        </stat>
379
 
        <convergence>
380
 
          <include_in_convergence/>
381
 
        </convergence>
382
 
        <detectors>
383
 
          <include_in_detectors/>
384
 
        </detectors>
385
 
        <steady_state>
386
 
          <include_in_steady_state/>
387
 
        </steady_state>
388
 
        <consistent_interpolation/>
389
 
      </prognostic>
390
 
    </scalar_field>
391
 
    <scalar_field name="AnalyticalFreeSurface" rank="0">
392
 
      <prescribed>
393
 
        <mesh name="CoordinateMesh"/>
394
 
        <value name="WholeMesh">
395
 
          <python>
396
 
            <string_value lines="20" type="code" language="python">def val(X,t):
397
 
  from math import pi, cos, sin, cosh, sinh, exp
398
 
  dx = 1./80.
399
 
  wavelength=1.0
400
 
  k=2.0*pi/wavelength
401
 
  D=1.0
402
 
  rhog=1.0
403
 
  amp = 0.1
404
 
  
405
 
  F0 = amp*cos(k*X[0])
406
 
  relaxation_time = 2.0*(D*k + sinh(D*k)*cosh(D*k))*k/(rhog*sinh(D*k)**2)
407
 
  F = exp(-t/relaxation_time)*F0
408
 
  if(X[1]&gt;(1.-dx/2.)):
409
 
    return F
410
 
  else:
411
 
    return 0.0</string_value>
412
 
          </python>
413
 
        </value>
414
 
        <output/>
415
 
        <stat/>
416
 
        <detectors>
417
 
          <exclude_from_detectors/>
418
 
        </detectors>
419
 
      </prescribed>
420
 
    </scalar_field>
421
 
    <scalar_field name="FreeSurfaceDifference" rank="0">
422
 
      <diagnostic>
423
 
        <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">
424
 
          <absolute_difference/>
425
 
        </algorithm>
426
 
        <mesh name="FreeSurfaceSquaredMesh"/>
427
 
        <output/>
428
 
        <stat/>
429
 
        <convergence>
430
 
          <include_in_convergence/>
431
 
        </convergence>
432
 
        <detectors>
433
 
          <include_in_detectors/>
434
 
        </detectors>
435
 
        <steady_state>
436
 
          <include_in_steady_state/>
437
 
        </steady_state>
438
 
      </diagnostic>
439
 
    </scalar_field>
440
 
    <scalar_field name="DifferenceSquared" rank="0">
441
 
      <diagnostic>
442
 
        <algorithm name="scalar_python_diagnostic" material_phase_support="single">
443
 
          <string_value lines="20" type="code" language="python">fsd = state.scalar_fields["FreeSurfaceDifference"]
444
 
 
445
 
assert(field.node_count==fsd.node_count)
446
 
 
447
 
for i in range(field.node_count):
448
 
  field.set(i, fsd.node_val(i)*fsd.node_val(i))</string_value>
449
 
          <depends>
450
 
            <string_value lines="1">FreeSurfaceDifference</string_value>
451
 
          </depends>
452
 
        </algorithm>
453
 
        <mesh name="FreeSurfaceSquaredMesh"/>
454
 
        <output/>
455
 
        <stat>
456
 
          <surface_integral type="value" name="SurfaceL2Norm">
457
 
            <surface_ids>
458
 
              <integer_value shape="1" rank="1">6 8</integer_value>
459
 
            </surface_ids>
460
 
          </surface_integral>
461
 
          <surface_integral type="value" name="TopSurfaceL2Norm">
462
 
            <surface_ids>
463
 
              <integer_value shape="1" rank="1">8</integer_value>
464
 
            </surface_ids>
465
 
          </surface_integral>
466
 
          <surface_integral type="value" name="BottomSurfaceL2Norm">
467
 
            <surface_ids>
468
 
              <integer_value shape="1" rank="1">6</integer_value>
469
 
            </surface_ids>
470
 
          </surface_integral>
471
 
        </stat>
472
 
        <convergence>
473
 
          <include_in_convergence/>
474
 
        </convergence>
475
 
        <detectors>
476
 
          <include_in_detectors/>
477
 
        </detectors>
478
 
        <steady_state>
479
 
          <include_in_steady_state/>
480
 
        </steady_state>
481
 
      </diagnostic>
482
 
    </scalar_field>
483
 
  </material_phase>
484
 
</fluidity_options>