1
<?xml version='1.0' encoding='utf-8'?>
4
<string_value lines="1">viscous_fs_simpletopbottom_F</string_value>
7
<string_value lines="1">stokes</string_value>
11
<integer_value rank="0">2</integer_value>
13
<mesh name="CoordinateMesh">
14
<from_file file_name="src/square">
21
<mesh name="VelocityMesh">
23
<mesh name="CoordinateMesh"/>
26
<integer_value rank="0">2</integer_value>
34
<mesh name="FreeSurfaceSquaredMesh">
36
<mesh name="CoordinateMesh"/>
39
<integer_value rank="0">2</integer_value>
49
<integer_value rank="0">5</integer_value>
55
<string_value>vtk</string_value>
59
<real_value rank="0">1.0</real_value>
62
<output_mesh name="CoordinateMesh"/>
65
<output_before_adapts/>
66
<output_after_adapts/>
71
<real_value rank="0">0.0</real_value>
74
<real_value rank="0">0.03125</real_value>
77
<real_value rank="0">1.0</real_value>
83
<real_value rank="0">12.225727727</real_value>
84
<comment>solution.nond_factor()</comment>
86
<vector_field name="GravityDirection" rank="1">
88
<mesh name="CoordinateMesh"/>
89
<value name="WholeMesh">
91
<real_value shape="2" dim1="dim" rank="1">0.0 -1.0</real_value>
99
<exclude_from_detectors/>
104
</physical_parameters>
105
<material_phase name="Fluid">
110
<real_value rank="0">1.0</real_value>
112
<subtract_out_hydrostatic_level/>
116
<scalar_field name="Pressure" rank="0">
118
<mesh name="CoordinateMesh"/>
119
<spatial_discretisation>
120
<continuous_galerkin>
121
<remove_stabilisation_term/>
122
<integrate_continuity_by_parts/>
123
</continuous_galerkin>
124
</spatial_discretisation>
126
<poisson_pressure_solution>
127
<string_value lines="1">never</string_value>
128
</poisson_pressure_solution>
129
<use_projection_method>
130
<full_schur_complement>
131
<inner_matrix name="FullMomentumMatrix">
133
<iterative_method name="cg"/>
134
<preconditioner name="mg"/>
136
<real_value rank="0">1.e-12</real_value>
139
<integer_value rank="0">1000</integer_value>
141
<never_ignore_solver_failures/>
147
<preconditioner_matrix name="ScaledPressureMassMatrix"/>
148
</full_schur_complement>
149
</use_projection_method>
152
<iterative_method name="fgmres"/>
153
<preconditioner name="ksp">
155
<iterative_method name="cg"/>
156
<preconditioner name="sor"/>
158
<real_value rank="0">1.e-12</real_value>
161
<integer_value rank="0">1000</integer_value>
163
<never_ignore_solver_failures/>
170
<real_value rank="0">1.e-10</real_value>
173
<real_value rank="0">1.e-16</real_value>
176
<integer_value rank="0">1000</integer_value>
178
<never_ignore_solver_failures/>
186
<include_in_convergence/>
189
<exclude_from_detectors/>
192
<include_in_steady_state/>
197
<scalar_field name="Density" rank="0">
199
<algorithm name="Internal" material_phase_support="multiple"/>
200
<mesh name="CoordinateMesh"/>
204
<include_in_convergence/>
207
<include_in_detectors/>
210
<include_in_steady_state/>
214
<vector_field name="Velocity" rank="1">
216
<mesh name="VelocityMesh"/>
217
<equation name="LinearMomentum"/>
218
<spatial_discretisation>
219
<continuous_galerkin>
224
<exclude_mass_terms/>
227
<exclude_advection_terms/>
230
<partial_stress_form/>
232
</continuous_galerkin>
233
<conservative_advection>
234
<real_value rank="0">1.0</real_value>
235
</conservative_advection>
236
</spatial_discretisation>
237
<temporal_discretisation>
239
<real_value rank="0">1.0</real_value>
242
<real_value rank="0">1.0</real_value>
244
<theta_pressure_gradient>
245
<real_value rank="0">0.5</real_value>
246
</theta_pressure_gradient>
247
</temporal_discretisation>
248
<reference_coordinates>
249
<real_value shape="2" dim1="dim" rank="1">0.25 0.5</real_value>
252
</specify_components>
253
</reference_coordinates>
255
<iterative_method name="cg"/>
256
<preconditioner name="mg"/>
258
<real_value rank="0">1.e-12</real_value>
261
<integer_value rank="0">1000</integer_value>
263
<never_ignore_solver_failures/>
268
<initial_condition name="WholeMesh">
270
<real_value shape="2" dim1="dim" rank="1">0.0 0.0</real_value>
273
<boundary_conditions name="Sides">
275
<integer_value shape="2" rank="1">7 9</integer_value>
277
<type name="dirichlet">
278
<align_bc_with_cartesian>
281
<real_value rank="0">0.0</real_value>
284
</align_bc_with_cartesian>
286
</boundary_conditions>
287
<boundary_conditions name="Bottom">
289
<integer_value shape="1" rank="1">6</integer_value>
291
<type name="free_surface">
296
<real_value rank="0">2.0</real_value>
299
</boundary_conditions>
300
<boundary_conditions name="Top">
302
<integer_value shape="1" rank="1">8</integer_value>
304
<type name="free_surface">
309
</boundary_conditions>
310
<tensor_field name="Viscosity" rank="2">
312
<value name="WholeMesh">
313
<anisotropic_symmetric>
315
<real_value symmetric="true" dim2="dim" shape="2 2" dim1="dim" rank="2">1.0 1.0 1.0 1.0</real_value>
317
</anisotropic_symmetric>
327
</previous_time_step>
333
<include_in_convergence/>
336
<include_in_detectors/>
339
<include_in_steady_state/>
341
<consistent_interpolation/>
344
<scalar_field name="FreeSurface" rank="0">
346
<mesh name="CoordinateMesh"/>
347
<initial_condition name="WholeMesh">
349
<string_value lines="20" type="code" language="python">import solution
356
if(X[1]>(1.-dx/2.)):
361
return 0.0</string_value>
365
<iterative_method name="cg"/>
366
<preconditioner name="sor"/>
368
<real_value rank="0">1.e-6</real_value>
371
<integer_value rank="0">1000</integer_value>
373
<never_ignore_solver_failures/>
380
<surface_integral type="value" name="Top">
382
<integer_value shape="1" rank="1">8</integer_value>
385
<surface_integral type="value" name="Bottom">
387
<integer_value shape="1" rank="1">6</integer_value>
392
<include_in_convergence/>
395
<include_in_detectors/>
398
<include_in_steady_state/>
400
<consistent_interpolation/>
403
<scalar_field name="AnalyticalFreeSurface" rank="0">
405
<mesh name="CoordinateMesh"/>
406
<value name="WholeMesh">
408
<string_value lines="20" type="code" language="python">import solution
415
if(X[1]>(1.-dx/2.)):
420
return 0.0</string_value>
426
<exclude_from_detectors/>
430
<scalar_field name="FreeSurfaceDifference" rank="0">
432
<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">
433
<absolute_difference/>
435
<mesh name="FreeSurfaceSquaredMesh"/>
439
<include_in_convergence/>
442
<include_in_detectors/>
445
<include_in_steady_state/>
449
<scalar_field name="DifferenceSquared" rank="0">
451
<algorithm name="scalar_python_diagnostic" material_phase_support="single">
452
<string_value lines="20" type="code" language="python">fsd = state.scalar_fields["FreeSurfaceDifference"]
454
assert(field.node_count==fsd.node_count)
456
for i in range(field.node_count):
457
field.set(i, fsd.node_val(i)*fsd.node_val(i))</string_value>
459
<string_value lines="1">FreeSurfaceDifference</string_value>
462
<mesh name="FreeSurfaceSquaredMesh"/>
465
<surface_integral type="value" name="SurfaceL2Norm">
467
<integer_value shape="1" rank="1">6 8</integer_value>
470
<surface_integral type="value" name="TopSurfaceL2Norm">
472
<integer_value shape="1" rank="1">8</integer_value>
475
<surface_integral type="value" name="BottomSurfaceL2Norm">
477
<integer_value shape="1" rank="1">6</integer_value>
482
<include_in_convergence/>
485
<include_in_detectors/>
488
<include_in_steady_state/>