1
<?xml version='1.0' encoding='utf-8'?>
4
<string_value lines="1">MMS_B</string_value>
7
<string_value lines="1">fluids</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="InputMesh"/>
29
<mesh name="PressureMesh">
31
<mesh name="InputMesh"/>
37
<mesh name="InputMesh">
38
<from_file file_name="MMS_B">
39
<format name="triangle"/>
47
<integer_value rank="0">4</integer_value>
53
<string_value>vtk</string_value>
57
<real_value rank="0">25</real_value>
60
<output_mesh name="VelocityMesh"/>
65
<real_value rank="0">0.0</real_value>
68
<real_value rank="0">0.01</real_value>
71
<real_value rank="0">20.0</real_value>
73
<nonlinear_iterations>
74
<integer_value rank="0">1</integer_value>
75
</nonlinear_iterations>
78
<real_value rank="0">2.0</real_value>
80
<courant_number name="CFLNumber">
81
<mesh name="VelocityMesh"/>
86
<real_value rank="0">1.e-6</real_value>
91
<material_phase name="NS">
92
<subgridscale_parameterisations>
94
<scalar_field name="TurbulentKineticEnergy" rank="0">
96
<mesh name="VelocityMesh"/>
97
<equation name="AdvectionDiffusion"/>
98
<spatial_discretisation>
105
</continuous_galerkin>
106
<conservative_advection>
107
<real_value rank="0">0</real_value>
108
</conservative_advection>
109
</spatial_discretisation>
110
<temporal_discretisation>
112
<real_value rank="0">0.5</real_value>
114
</temporal_discretisation>
116
<iterative_method name="gmres">
118
<integer_value rank="0">30</integer_value>
121
<preconditioner name="sor"/>
123
<real_value rank="0">1.e-8</real_value>
126
<integer_value rank="0">10000</integer_value>
128
<never_ignore_solver_failures/>
133
<initial_condition name="WholeMesh">
135
<real_value rank="0">0.0001</real_value>
138
<boundary_conditions name="all_sides">
140
<integer_value shape="4" rank="1">7 8 9 10</integer_value>
142
<type name="dirichlet">
144
<string_value lines="20" type="code" language="python">def val(X,t):
145
import k_epsilon_tools as k
147
return tke</string_value>
150
</boundary_conditions>
151
<tensor_field name="Diffusivity" rank="2">
153
<algorithm name="Internal" material_phase_support="multiple"/>
160
<scalar_field name="Source" rank="0">
162
<value name="WholeMesh">
164
<string_value lines="20" type="code" language="python">def val(X,t):
165
import k_epsilon_tools as k
166
return k.forcing_k(X)</string_value>
172
<exclude_from_detectors/>
176
<scalar_field name="Absorption" rank="0">
178
<algorithm name="Internal" material_phase_support="multiple"/>
182
<include_in_detectors/>
187
<include_previous_time_step/>
191
<include_in_convergence/>
194
<include_in_detectors/>
197
<exclude_from_steady_state/>
199
<consistent_interpolation/>
202
<scalar_field name="TurbulentDissipation" rank="0">
204
<mesh name="VelocityMesh"/>
205
<equation name="AdvectionDiffusion"/>
206
<spatial_discretisation>
207
<continuous_galerkin>
213
</continuous_galerkin>
214
<conservative_advection>
215
<real_value rank="0">0</real_value>
216
</conservative_advection>
217
</spatial_discretisation>
218
<temporal_discretisation>
220
<real_value rank="0">0.5</real_value>
222
</temporal_discretisation>
224
<iterative_method name="gmres">
226
<integer_value rank="0">30</integer_value>
229
<preconditioner name="sor"/>
231
<real_value rank="0">1.e-8</real_value>
234
<integer_value rank="0">10000</integer_value>
236
<never_ignore_solver_failures/>
241
<initial_condition name="WholeMesh">
243
<real_value rank="0">0.000001</real_value>
246
<boundary_conditions name="all_sides">
248
<integer_value shape="4" rank="1">7 8 9 10</integer_value>
250
<type name="dirichlet">
252
<string_value lines="20" type="code" language="python">def val(X,t):
253
import k_epsilon_tools as k
255
return eps</string_value>
258
</boundary_conditions>
259
<tensor_field name="Diffusivity" rank="2">
261
<algorithm name="Internal" material_phase_support="multiple"/>
268
<scalar_field name="Source" rank="0">
270
<value name="WholeMesh">
272
<string_value lines="20" type="code" language="python">def val(X,t):
273
import k_epsilon_tools as k
274
return k.forcing_eps(X)</string_value>
280
<exclude_from_detectors/>
284
<scalar_field name="Absorption" rank="0">
286
<algorithm name="Internal" material_phase_support="multiple"/>
290
<include_in_detectors/>
295
<include_previous_time_step/>
299
<include_in_convergence/>
302
<include_in_detectors/>
305
<exclude_from_steady_state/>
307
<consistent_interpolation/>
310
<tensor_field name="BackgroundViscosity" rank="2">
312
<mesh name="VelocityMesh"/>
313
<value name="WholeMesh">
316
<real_value rank="0">0.7</real_value>
325
<tensor_field name="EddyViscosity" rank="2">
327
<algorithm name="Internal" material_phase_support="multiple"/>
328
<mesh name="VelocityMesh"/>
337
<scalar_field name="ScalarEddyViscosity" rank="0">
339
<algorithm name="Internal" material_phase_support="multiple"/>
340
<mesh name="VelocityMesh"/>
344
<include_in_convergence/>
347
<include_in_detectors/>
350
<exclude_from_steady_state/>
354
<scalar_field name="LengthScale" rank="0">
356
<algorithm name="Internal" material_phase_support="multiple"/>
357
<mesh name="VelocityMesh"/>
361
<include_in_convergence/>
364
<include_in_detectors/>
367
<include_in_steady_state/>
372
<string_value>explicit</string_value>
375
<real_value rank="0">3</real_value>
378
<real_value rank="0">0.09</real_value>
381
<real_value rank="0">1.44</real_value>
384
<real_value rank="0">1.92</real_value>
387
<real_value rank="0">1.0</real_value>
390
<real_value rank="0">1.3</real_value>
393
</subgridscale_parameterisations>
394
<scalar_field name="Pressure" rank="0">
396
<mesh name="PressureMesh"/>
397
<spatial_discretisation>
398
<continuous_galerkin/>
399
</spatial_discretisation>
401
<integer_value rank="0">1</integer_value>
404
<poisson_pressure_solution>
405
<string_value lines="1">never</string_value>
406
</poisson_pressure_solution>
407
<use_projection_method/>
410
<iterative_method name="cg"/>
411
<preconditioner name="sor"/>
413
<real_value rank="0">1.e-8</real_value>
416
<integer_value rank="0">10000</integer_value>
418
<never_ignore_solver_failures/>
423
<initial_condition name="WholeMesh">
425
<real_value rank="0">0.0</real_value>
429
<include_previous_time_step/>
433
<include_in_convergence/>
436
<exclude_from_detectors/>
439
<exclude_from_steady_state/>
444
<vector_field name="Velocity" rank="1">
446
<mesh name="VelocityMesh"/>
447
<equation name="Boussinesq"/>
448
<spatial_discretisation>
449
<continuous_galerkin>
460
</continuous_galerkin>
461
<conservative_advection>
462
<real_value rank="0">0.0</real_value>
463
</conservative_advection>
464
</spatial_discretisation>
465
<temporal_discretisation>
467
<real_value rank="0">0.5</real_value>
470
<real_value rank="0">0.5</real_value>
472
</temporal_discretisation>
474
<iterative_method name="gmres">
476
<integer_value rank="0">30</integer_value>
479
<preconditioner name="sor"/>
481
<real_value rank="0">1.e-7</real_value>
484
<integer_value rank="0">10000</integer_value>
486
<never_ignore_solver_failures/>
491
<initial_condition name="WholeMesh">
493
<real_value shape="2" dim1="dim" rank="1">0.0 0.0</real_value>
496
<boundary_conditions name="all_sides">
498
<integer_value shape="4" rank="1">7 8 9 10</integer_value>
500
<type name="dirichlet">
501
<align_bc_with_cartesian>
504
<string_value lines="20" type="code" language="python">def val(X,t):
505
import k_epsilon_tools as k
506
# Shear rotation about origin.
507
return k.velocity(X)[0]</string_value>
512
<string_value lines="20" type="code" language="python">def val(X,t):
513
import k_epsilon_tools as k
514
# Shear rotation about origin.
515
return k.velocity(X)[1]</string_value>
518
</align_bc_with_cartesian>
520
</boundary_conditions>
521
<tensor_field name="Viscosity" rank="2">
523
<algorithm name="Internal" material_phase_support="multiple"/>
530
<vector_field name="Source" rank="1">
532
<value name="WholeMesh">
534
<string_value lines="20" type="code" language="python">def val(X,t):
535
import k_epsilon_tools as k
536
return k.forcing_mom(X)</string_value>
544
<exclude_from_detectors/>
549
<include_previous_time_step/>
555
</previous_time_step>
561
<include_in_convergence/>
564
<include_in_detectors/>
567
<exclude_from_steady_state/>
569
<consistent_interpolation/>
572
<scalar_field name="CFLNumber" rank="0">
574
<algorithm name="Internal" material_phase_support="multiple"/>
575
<mesh name="VelocityMesh"/>
579
<include_in_convergence/>
582
<include_in_detectors/>
585
<include_in_steady_state/>
589
<scalar_field name="PressureAnalytical" rank="0">
591
<mesh name="PressureMesh"/>
592
<value name="WholeMesh">
594
<string_value lines="20" type="code" language="python">def val(X,t):
595
import k_epsilon_tools as k
596
return k.pressure(X)</string_value>
602
<exclude_from_detectors/>
606
<scalar_field name="PressureDifference" rank="0">
608
<algorithm name="scalar_python_diagnostic" material_phase_support="single">
609
<string_value lines="20" type="code" language="python">E=state.scalar_fields["Pressure"]
610
S=state.scalar_fields["PressureAnalytical"]
612
for n in range(field.node_count):
615
field.set(n,E_n-S_n)</string_value>
617
<string_value lines="1">Pressure</string_value>
620
<mesh name="PressureMesh"/>
624
<include_in_convergence/>
627
<include_in_detectors/>
630
<include_in_steady_state/>
634
<scalar_field name="EddyViscosityAnalytical" rank="0">
636
<mesh name="VelocityMesh"/>
637
<value name="WholeMesh">
639
<string_value lines="20" type="code" language="python">def val(X,t):
640
import k_epsilon_tools as k
642
return nut</string_value>
648
<exclude_from_detectors/>
652
<scalar_field name="EddyViscosityDifference" rank="0">
654
<algorithm name="scalar_python_diagnostic" material_phase_support="single">
655
<string_value lines="20" type="code" language="python">E=state.scalar_fields["ScalarEddyViscosity"]
656
S=state.scalar_fields["EddyViscosityAnalytical"]
658
for n in range(field.node_count):
661
field.set(n,E_n-S_n)</string_value>
663
<mesh name="VelocityMesh"/>
667
<include_in_convergence/>
670
<include_in_detectors/>
673
<include_in_steady_state/>
677
<scalar_field name="TKEAnalytical" rank="0">
679
<mesh name="VelocityMesh"/>
680
<value name="WholeMesh">
682
<string_value lines="20" type="code" language="python">def val(X,t):
683
import k_epsilon_tools as k
685
return tke</string_value>
691
<exclude_from_detectors/>
695
<scalar_field name="TKEDifference" rank="0">
697
<algorithm name="scalar_python_diagnostic" material_phase_support="single">
698
<string_value lines="20" type="code" language="python">E=state.scalar_fields["TurbulentKineticEnergy"]
699
S=state.scalar_fields["TKEAnalytical"]
701
for n in range(field.node_count):
704
field.set(n,E_n-S_n)</string_value>
706
<mesh name="VelocityMesh"/>
710
<include_in_convergence/>
713
<include_in_detectors/>
716
<include_in_steady_state/>
720
<scalar_field name="EpsilonAnalytical" rank="0">
722
<mesh name="VelocityMesh"/>
723
<value name="WholeMesh">
725
<string_value lines="20" type="code" language="python">def val(X,t):
726
import k_epsilon_tools as k
728
return eps</string_value>
734
<exclude_from_detectors/>
738
<scalar_field name="EpsilonDifference" rank="0">
740
<algorithm name="scalar_python_diagnostic" material_phase_support="single">
741
<string_value lines="20" type="code" language="python">E=state.scalar_fields["TurbulentDissipation"]
742
S=state.scalar_fields["EpsilonAnalytical"]
744
for n in range(field.node_count):
747
field.set(n,E_n-S_n)</string_value>
749
<mesh name="VelocityMesh"/>
753
<include_in_convergence/>
756
<include_in_detectors/>
759
<include_in_steady_state/>
763
<vector_field name="VelocityAnalytical" rank="1">
765
<mesh name="VelocityMesh"/>
766
<value name="WholeMesh">
768
<string_value lines="20" type="code" language="python">def val(X,t):
769
import k_epsilon_tools as k
770
return k.velocity(X)</string_value>
778
<exclude_from_detectors/>
782
<vector_field name="VelocityDifference" rank="1">
784
<algorithm source_field_2_type="vector" name="vector_difference" source_field_1_name="Velocity" source_field_2_name="VelocityAnalytical" material_phase_support="single" source_field_1_type="vector"/>
785
<mesh name="VelocityMesh"/>
791
<include_in_convergence/>
794
<include_in_detectors/>
797
<include_in_steady_state/>