1
<?xml version='1.0' encoding='utf-8'?>
4
<string_value lines="1">viscous_fs_simpletopbottom_E</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.0625</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
<test_continuity_with_cv_dual/>
124
</continuous_galerkin>
125
</spatial_discretisation>
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">
134
<iterative_method name="cg"/>
135
<preconditioner name="mg"/>
137
<real_value rank="0">1.e-12</real_value>
140
<integer_value rank="0">1000</integer_value>
142
<never_ignore_solver_failures/>
148
<preconditioner_matrix name="ScaledPressureMassMatrix"/>
149
</full_schur_complement>
150
</use_projection_method>
153
<iterative_method name="fgmres"/>
154
<preconditioner name="ksp">
156
<iterative_method name="cg"/>
157
<preconditioner name="sor"/>
159
<real_value rank="0">1.e-12</real_value>
162
<integer_value rank="0">1000</integer_value>
164
<never_ignore_solver_failures/>
171
<real_value rank="0">1.e-10</real_value>
174
<real_value rank="0">1.e-16</real_value>
177
<integer_value rank="0">1000</integer_value>
179
<never_ignore_solver_failures/>
187
<include_in_convergence/>
190
<exclude_from_detectors/>
193
<include_in_steady_state/>
198
<scalar_field name="Density" rank="0">
200
<algorithm name="Internal" material_phase_support="multiple"/>
201
<mesh name="CoordinateMesh"/>
205
<include_in_convergence/>
208
<include_in_detectors/>
211
<include_in_steady_state/>
215
<vector_field name="Velocity" rank="1">
217
<mesh name="VelocityMesh"/>
218
<equation name="LinearMomentum"/>
219
<spatial_discretisation>
220
<continuous_galerkin>
225
<exclude_mass_terms/>
228
<exclude_advection_terms/>
231
<partial_stress_form/>
233
</continuous_galerkin>
234
<conservative_advection>
235
<real_value rank="0">1.0</real_value>
236
</conservative_advection>
237
</spatial_discretisation>
238
<temporal_discretisation>
240
<real_value rank="0">1.0</real_value>
243
<real_value rank="0">1.0</real_value>
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>
253
</specify_components>
254
</reference_coordinates>
256
<iterative_method name="cg"/>
257
<preconditioner name="mg"/>
259
<real_value rank="0">1.e-12</real_value>
262
<integer_value rank="0">1000</integer_value>
264
<never_ignore_solver_failures/>
269
<initial_condition name="WholeMesh">
271
<real_value shape="2" dim1="dim" rank="1">0.0 0.0</real_value>
274
<boundary_conditions name="Sides">
276
<integer_value shape="2" rank="1">7 9</integer_value>
278
<type name="dirichlet">
279
<align_bc_with_cartesian>
282
<real_value rank="0">0.0</real_value>
285
</align_bc_with_cartesian>
287
</boundary_conditions>
288
<boundary_conditions name="Bottom">
290
<integer_value shape="1" rank="1">6</integer_value>
292
<type name="free_surface">
297
<real_value rank="0">2.0</real_value>
300
</boundary_conditions>
301
<boundary_conditions name="Top">
303
<integer_value shape="1" rank="1">8</integer_value>
305
<type name="free_surface">
310
</boundary_conditions>
311
<tensor_field name="Viscosity" rank="2">
313
<value name="WholeMesh">
314
<anisotropic_symmetric>
316
<real_value symmetric="true" dim2="dim" shape="2 2" dim1="dim" rank="2">1.0 1.0 1.0 1.0</real_value>
318
</anisotropic_symmetric>
328
</previous_time_step>
334
<include_in_convergence/>
337
<include_in_detectors/>
340
<include_in_steady_state/>
342
<consistent_interpolation/>
345
<scalar_field name="FreeSurface" rank="0">
347
<mesh name="CoordinateMesh"/>
348
<initial_condition name="WholeMesh">
350
<string_value lines="20" type="code" language="python">import solution
357
if(X[1]>(1.-dx/2.)):
362
return 0.0</string_value>
366
<iterative_method name="cg"/>
367
<preconditioner name="sor"/>
369
<real_value rank="0">1.e-6</real_value>
372
<integer_value rank="0">1000</integer_value>
374
<never_ignore_solver_failures/>
381
<surface_integral type="value" name="Top">
383
<integer_value shape="1" rank="1">8</integer_value>
386
<surface_integral type="value" name="Bottom">
388
<integer_value shape="1" rank="1">6</integer_value>
393
<include_in_convergence/>
396
<include_in_detectors/>
399
<include_in_steady_state/>
401
<consistent_interpolation/>
404
<scalar_field name="AnalyticalFreeSurface" rank="0">
406
<mesh name="CoordinateMesh"/>
407
<value name="WholeMesh">
409
<string_value lines="20" type="code" language="python">import solution
416
if(X[1]>(1.-dx/2.)):
421
return 0.0</string_value>
427
<exclude_from_detectors/>
431
<scalar_field name="FreeSurfaceDifference" rank="0">
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/>
436
<mesh name="FreeSurfaceSquaredMesh"/>
440
<include_in_convergence/>
443
<include_in_detectors/>
446
<include_in_steady_state/>
450
<scalar_field name="DifferenceSquared" rank="0">
452
<algorithm name="scalar_python_diagnostic" material_phase_support="single">
453
<string_value lines="20" type="code" language="python">fsd = state.scalar_fields["FreeSurfaceDifference"]
455
assert(field.node_count==fsd.node_count)
457
for i in range(field.node_count):
458
field.set(i, fsd.node_val(i)*fsd.node_val(i))</string_value>
460
<string_value lines="1">FreeSurfaceDifference</string_value>
463
<mesh name="FreeSurfaceSquaredMesh"/>
466
<surface_integral type="value" name="SurfaceL2Norm">
468
<integer_value shape="1" rank="1">6 8</integer_value>
471
<surface_integral type="value" name="TopSurfaceL2Norm">
473
<integer_value shape="1" rank="1">8</integer_value>
476
<surface_integral type="value" name="BottomSurfaceL2Norm">
478
<integer_value shape="1" rank="1">6</integer_value>
483
<include_in_convergence/>
486
<include_in_detectors/>
489
<include_in_steady_state/>