1
<?xml version='1.0' encoding='utf-8'?>
4
<string_value lines="1">MMS_A</string_value>
7
<string_value lines="1">stokes</string_value>
11
<integer_value rank="0">2</integer_value>
13
<mesh name="CoordinateMesh">
15
<mesh name="InputMesh"/>
21
<mesh name="VelocityMesh">
23
<mesh name="PressureMesh"/>
26
<integer_value rank="0">2</integer_value>
34
<mesh name="PressureMesh">
36
<mesh name="InputMesh"/>
37
<periodic_boundary_conditions name="Periodic">
38
<physical_boundary_ids>
39
<integer_value shape="1" rank="1">10</integer_value>
40
</physical_boundary_ids>
41
<aliased_boundary_ids>
42
<integer_value shape="1" rank="1">8</integer_value>
43
</aliased_boundary_ids>
45
<string_value lines="20" type="code" language="python">def val(X,t):
46
return 0,X[1]</string_value>
48
</periodic_boundary_conditions>
54
<mesh name="InputMesh">
55
<from_file file_name="MMS_A">
64
<integer_value rank="0">4</integer_value>
70
<string_value>vtk</string_value>
74
<real_value rank="0">15.0</real_value>
77
<output_mesh name="CoordinateMesh"/>
79
<checkpoint_period_in_dumps>
80
<integer_value rank="0">1000</integer_value>
81
</checkpoint_period_in_dumps>
88
<real_value rank="0">0.0</real_value>
91
<real_value rank="0">0.0072673325013204136</real_value>
92
<comment>gives a max cfl number of 0.1</comment>
95
<real_value rank="0">10.0</real_value>
96
<comment>10.0</comment>
100
<real_value rank="0">1.E-8</real_value>
105
<physical_parameters/>
106
<material_phase name="NS">
111
<real_value rank="0">1.0</real_value>
116
<scalar_field name="Pressure" rank="0">
118
<mesh name="PressureMesh"/>
119
<spatial_discretisation>
120
<continuous_galerkin>
121
<remove_stabilisation_term/>
122
</continuous_galerkin>
123
</spatial_discretisation>
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">
132
<iterative_method name="cg"/>
133
<preconditioner name="sor"/>
135
<real_value rank="0">1E-10</real_value>
138
<integer_value rank="0">10000</integer_value>
144
</specify_components>
147
<never_ignore_solver_failures/>
153
<preconditioner_matrix name="DiagonalSchurComplement"/>
154
</full_schur_complement>
155
</use_projection_method>
158
<iterative_method name="fgmres"/>
159
<preconditioner name="jacobi"/>
161
<real_value rank="0">1.E-10</real_value>
164
<real_value rank="0">1e-16</real_value>
167
<integer_value rank="0">1000</integer_value>
172
<never_ignore_solver_failures/>
178
<include_previous_time_step/>
182
<include_in_convergence/>
185
<exclude_from_detectors/>
188
<include_in_steady_state/>
190
<consistent_interpolation/>
193
<scalar_field name="Density" rank="0">
195
<algorithm name="Internal" material_phase_support="multiple"/>
196
<mesh name="VelocityMesh"/>
200
<include_in_convergence/>
203
<include_in_detectors/>
206
<include_in_steady_state/>
210
<vector_field name="Velocity" rank="1">
212
<mesh name="VelocityMesh"/>
213
<equation name="LinearMomentum"/>
214
<spatial_discretisation>
215
<continuous_galerkin>
220
<exclude_mass_terms/>
223
<exclude_advection_terms/>
228
</continuous_galerkin>
229
<conservative_advection>
230
<real_value rank="0">0.0</real_value>
231
</conservative_advection>
232
</spatial_discretisation>
233
<temporal_discretisation>
235
<real_value rank="0">1</real_value>
238
<real_value rank="0">1</real_value>
240
</temporal_discretisation>
242
<iterative_method name="cg"/>
243
<preconditioner name="eisenstat"/>
245
<real_value rank="0">1.E-7</real_value>
248
<integer_value rank="0">1000</integer_value>
253
</specify_components>
256
<never_ignore_solver_failures/>
261
<initial_condition name="WholeMesh">
263
<real_value shape="2" dim1="dim" rank="1">0.0 0.0</real_value>
266
<boundary_conditions name="TopBottom">
268
<integer_value shape="2" rank="1">7 9</integer_value>
270
<type name="dirichlet">
271
<align_bc_with_surface>
274
<real_value rank="0">0.0</real_value>
277
</align_bc_with_surface>
279
</boundary_conditions>
280
<tensor_field name="Viscosity" rank="2">
282
<value name="WholeMesh">
285
<real_value rank="0">0.7</real_value>
292
<vector_field name="Source" rank="1">
294
<value name="WholeMesh">
296
<string_value lines="20" type="code" language="python">def val(XX, t):
297
from math import sin,cos
305
Su = adv*rho*(cos(x)*sin(x)*sin(y)**2 + cos(x)*sin(x)*cos(y)**2) + 2*nu*sin(x)*cos(y) - sin(x)*cos(y)
306
Sv = adv*rho*(sin(x)**2*cos(y)*sin(y) + cos(x)**2*cos(y)*sin(y)) - 2*nu*cos(x)*sin(y) - cos(x)*sin(y)
307
return (Su, Sv)</string_value>
308
<comment>u(x,y,rho,beta,nu,adv,mass,t) = sin(x)*cos(y)
309
v(x,y,rho,beta,nu,adv,masst) = -cos(x)*sin(y)
310
p(x,y,rho,beta,nu,adv,mass,t) = cos(x)*cos(y)
328
mass*rho*u_t + adv*rho*(u*u_x+v*u_y + beta*(u*u_x + u*v_y)) + p_x - nu*u_xx - nu*u_yy
329
mass*rho*v_t + adv*rho*(u*v_x+v*v_y + beta*(v*u_x + v*v_y)) + p_y - nu*v_xx - nu*v_yy</comment>
337
<exclude_from_detectors/>
342
<include_previous_time_step/>
348
</previous_time_step>
354
<include_in_convergence/>
357
<include_in_detectors/>
360
<include_in_steady_state/>
362
<consistent_interpolation/>
365
<scalar_field name="CFLNumber" rank="0">
367
<algorithm name="Internal" material_phase_support="multiple"/>
368
<mesh name="VelocityMesh"/>
372
<include_in_convergence/>
375
<include_in_detectors/>
378
<include_in_steady_state/>
382
<scalar_field name="PressureAnalytical" rank="0">
384
<mesh name="PressureMesh"/>
385
<value name="WholeMesh">
387
<string_value lines="20" type="code" language="python">def val(X,t):
389
p = cos(X[0])*cos(X[1])
390
return p</string_value>
396
<exclude_from_detectors/>
400
<scalar_field name="ScalarAbsoluteDifference" rank="0">
401
<diagnostic field_name_b="Pressure" field_name_a="PressureAnalytical">
402
<algorithm name="Internal" material_phase_support="multiple"/>
403
<mesh name="PressureMesh"/>
407
<include_in_convergence/>
410
<include_in_detectors/>
413
<include_in_steady_state/>
415
<relative_to_average/>
418
<scalar_field name="FiniteElementDivergence" rank="0">
419
<diagnostic field_name="Velocity">
420
<algorithm legacy="true" name="Internal" material_phase_support="multiple"/>
421
<mesh name="PressureMesh"/>
423
<iterative_method name="cg"/>
424
<preconditioner name="sor"/>
426
<real_value rank="0">1.E-10</real_value>
429
<integer_value rank="0">10000</integer_value>
431
<never_ignore_solver_failures/>
439
<include_in_convergence/>
442
<include_in_detectors/>
445
<include_in_steady_state/>
449
<vector_field name="VelocityAnalytical" rank="1">
451
<mesh name="VelocityMesh"/>
452
<value name="WholeMesh">
454
<string_value lines="20" type="code" language="python">def val(X,t):
455
from math import sin, cos
456
# Shear rotation about origin.
457
return (sin(X[0])*cos(X[1]), -1.0*cos(X[0])*sin(X[1]))</string_value>
465
<exclude_from_detectors/>
469
<vector_field name="VectorAbsoluteDifference" rank="1">
470
<diagnostic field_name_b="Velocity" field_name_a="VelocityAnalytical">
471
<algorithm name="Internal" material_phase_support="multiple"/>
472
<mesh name="VelocityMesh"/>
478
<include_in_convergence/>
481
<include_in_detectors/>
484
<include_in_steady_state/>