1
<?xml version='1.0' encoding='utf-8'?>
4
<string_value lines="1">MMS_X</string_value>
7
<string_value lines="1">fluids</string_value>
11
<integer_value rank="0">2</integer_value>
13
<mesh name="CoordinateMesh">
14
<from_file file_name="src/MMS_X">
21
<mesh name="VelocityMesh">
23
<mesh name="CoordinateMesh"/>
26
<integer_value rank="0">2</integer_value>
34
<mesh name="PressureMesh">
36
<mesh name="CoordinateMesh"/>
39
<integer_value rank="0">1</integer_value>
47
<mesh name="ErrorMesh">
49
<mesh name="CoordinateMesh"/>
52
<integer_value rank="0">4</integer_value>
56
<string_value>continuous</string_value>
65
<integer_value rank="0">8</integer_value>
71
<string_value>vtk</string_value>
75
<real_value rank="0">2000</real_value>
78
<output_mesh name="VelocityMesh"/>
83
<real_value rank="0">0.0</real_value>
86
<real_value rank="0">999.9</real_value>
87
<comment>gives a max cfl number of approximately 0.1</comment>
90
<real_value rank="0">1000.0</real_value>
91
<comment>10.0</comment>
93
<nonlinear_iterations>
94
<integer_value rank="0">2</integer_value>
95
</nonlinear_iterations>
98
<real_value rank="0">1.E-4</real_value>
103
<physical_parameters>
106
<real_value rank="0">1.0</real_value>
108
<vector_field name="GravityDirection" rank="1">
110
<mesh name="CoordinateMesh"/>
111
<value name="WholeMesh">
113
<real_value shape="2" dim1="dim" rank="1">0.707106781 0.707106781</real_value>
121
<exclude_from_detectors/>
126
</physical_parameters>
127
<material_phase name="NS">
132
<real_value rank="0">1.0</real_value>
134
<temperature_dependency>
135
<reference_temperature>
136
<real_value rank="0">0.0</real_value>
137
</reference_temperature>
138
<thermal_expansion_coefficient>
139
<real_value rank="0">-1.0</real_value>
140
</thermal_expansion_coefficient>
141
</temperature_dependency>
142
<subtract_out_hydrostatic_level/>
146
<subgridscale_parameterisations>
148
<scalar_field name="TurbulentKineticEnergy" rank="0">
150
<mesh name="VelocityMesh"/>
151
<equation name="KEpsilon"/>
152
<spatial_discretisation>
153
<continuous_galerkin>
159
</continuous_galerkin>
160
<conservative_advection>
161
<real_value rank="0">1.0</real_value>
162
</conservative_advection>
163
</spatial_discretisation>
164
<temporal_discretisation>
166
<real_value rank="0">0.5</real_value>
168
</temporal_discretisation>
170
<iterative_method name="gmres">
172
<integer_value rank="0">30</integer_value>
175
<preconditioner name="sor"/>
177
<real_value rank="0">1.0e-6</real_value>
180
<real_value rank="0">1e-15</real_value>
183
<integer_value rank="0">1000</integer_value>
185
<never_ignore_solver_failures/>
190
<initial_condition name="WholeMesh">
192
<string_value lines="20" type="code" language="python">def val(X,t):
193
import mms_rans_p2p1_keps_tools as k
194
return k.ke(X)</string_value>
197
<boundary_conditions name="all_sides">
199
<integer_value shape="1" rank="1">1</integer_value>
201
<type name="dirichlet">
203
<string_value lines="20" type="code" language="python">def val(X,t):
204
import mms_rans_p2p1_keps_tools as k
205
return k.ke(X)</string_value>
208
</boundary_conditions>
209
<tensor_field name="Diffusivity" rank="2">
211
<algorithm name="Internal" material_phase_support="multiple"/>
218
<scalar_field name="Source" rank="0">
220
<algorithm name="Internal" material_phase_support="multiple"/>
226
<include_in_detectors/>
230
<scalar_field name="Absorption" rank="0">
232
<algorithm name="Internal" material_phase_support="multiple"/>
238
<include_in_detectors/>
247
<include_in_convergence/>
250
<exclude_from_detectors/>
253
<exclude_from_steady_state/>
255
<consistent_interpolation/>
258
<scalar_field name="TurbulentDissipation" rank="0">
260
<mesh name="VelocityMesh"/>
261
<equation name="KEpsilon"/>
262
<spatial_discretisation>
263
<continuous_galerkin>
269
</continuous_galerkin>
270
<conservative_advection>
271
<real_value rank="0">1.0</real_value>
272
</conservative_advection>
273
</spatial_discretisation>
274
<temporal_discretisation>
276
<real_value rank="0">0.5</real_value>
278
</temporal_discretisation>
280
<iterative_method name="gmres">
282
<integer_value rank="0">30</integer_value>
285
<preconditioner name="sor"/>
287
<real_value rank="0">1.0e-6</real_value>
290
<real_value rank="0">1e-15</real_value>
293
<integer_value rank="0">1000</integer_value>
295
<never_ignore_solver_failures/>
300
<initial_condition name="WholeMesh">
302
<string_value lines="20" type="code" language="python">def val(X,t):
303
import mms_rans_p2p1_keps_tools as k
304
return k.eps(X)</string_value>
307
<boundary_conditions name="all_sides">
309
<integer_value shape="1" rank="1">1</integer_value>
311
<type name="dirichlet">
313
<string_value lines="20" type="code" language="python">def val(X,t):
314
import mms_rans_p2p1_keps_tools as k
315
return k.eps(X)</string_value>
318
</boundary_conditions>
319
<tensor_field name="Diffusivity" rank="2">
321
<algorithm name="Internal" material_phase_support="multiple"/>
328
<scalar_field name="Source" rank="0">
330
<algorithm name="Internal" material_phase_support="multiple"/>
336
<include_in_detectors/>
340
<scalar_field name="Absorption" rank="0">
342
<algorithm name="Internal" material_phase_support="multiple"/>
348
<include_in_detectors/>
357
<include_in_convergence/>
360
<exclude_from_detectors/>
363
<exclude_from_steady_state/>
365
<consistent_interpolation/>
368
<tensor_field name="BackgroundViscosity" rank="2">
370
<mesh name="VelocityMesh"/>
371
<value name="WholeMesh">
372
<anisotropic_symmetric>
374
<real_value symmetric="true" dim2="dim" shape="2 2" dim1="dim" rank="2">1.0 1.0 1.0 1.0</real_value>
376
</anisotropic_symmetric>
381
<tensor_field name="EddyViscosity" rank="2">
383
<algorithm name="Internal" material_phase_support="multiple"/>
384
<mesh name="VelocityMesh"/>
391
<scalar_field name="ScalarEddyViscosity" rank="0">
393
<algorithm name="Internal" material_phase_support="multiple"/>
394
<mesh name="VelocityMesh"/>
400
<include_in_convergence/>
403
<include_in_detectors/>
406
<exclude_from_steady_state/>
410
<scalar_field name="LengthScale" rank="0">
412
<algorithm name="Internal" material_phase_support="multiple"/>
413
<mesh name="VelocityMesh"/>
419
<include_in_convergence/>
422
<include_in_detectors/>
425
<exclude_from_steady_state/>
429
<scalar_field name="f_1" rank="0">
431
<algorithm name="Internal" material_phase_support="multiple"/>
432
<mesh name="VelocityMesh"/>
438
<include_in_convergence/>
441
<include_in_detectors/>
444
<exclude_from_steady_state/>
448
<scalar_field name="f_2" rank="0">
450
<algorithm name="Internal" material_phase_support="multiple"/>
451
<mesh name="VelocityMesh"/>
457
<include_in_convergence/>
460
<include_in_detectors/>
463
<exclude_from_steady_state/>
467
<scalar_field name="f_mu" rank="0">
469
<algorithm name="Internal" material_phase_support="multiple"/>
470
<mesh name="VelocityMesh"/>
476
<include_in_convergence/>
479
<include_in_detectors/>
482
<exclude_from_steady_state/>
487
<real_value rank="0">10.0</real_value>
490
<real_value rank="0">1.0</real_value>
493
<real_value rank="0">1.0</real_value>
496
<real_value rank="0">1.0</real_value>
499
<real_value rank="0">1.0</real_value>
502
<real_value rank="0">1.0</real_value>
505
<real_value rank="0">1.0</real_value>
507
<time_discretisation>
509
<real_value rank="0">0.5</real_value>
511
<source_term_implementation>
512
<production_term>source</production_term>
513
<destruction_term>absorbtion</destruction_term>
514
<buoyancy_term>source</buoyancy_term>
515
</source_term_implementation>
516
</time_discretisation>
518
<use_consistent_mass_matrix>
520
<iterative_method name="cg"/>
521
<preconditioner name="sor"/>
523
<real_value rank="0">1.0e-10</real_value>
526
<integer_value rank="0">1000</integer_value>
528
<never_ignore_solver_failures/>
533
</use_consistent_mass_matrix>
536
<source_term_output_fields>
537
<scalar_field name="TurbulentKineticEnergy_production_term" rank="0">
539
<algorithm name="Internal" material_phase_support="multiple"/>
540
<mesh name="VelocityMesh"/>
546
<include_in_convergence/>
549
<include_in_detectors/>
552
<exclude_from_steady_state/>
556
<scalar_field name="TurbulentKineticEnergy_destruction_term" rank="0">
558
<algorithm name="Internal" material_phase_support="multiple"/>
559
<mesh name="VelocityMesh"/>
565
<include_in_convergence/>
568
<include_in_detectors/>
571
<exclude_from_steady_state/>
575
<scalar_field name="TurbulentKineticEnergy_buoyancy_term" rank="0">
577
<algorithm name="Internal" material_phase_support="multiple"/>
578
<mesh name="VelocityMesh"/>
584
<include_in_convergence/>
587
<include_in_detectors/>
590
<exclude_from_steady_state/>
594
<scalar_field name="TurbulentDissipation_production_term" rank="0">
596
<algorithm name="Internal" material_phase_support="multiple"/>
597
<mesh name="VelocityMesh"/>
603
<include_in_convergence/>
606
<include_in_detectors/>
609
<exclude_from_steady_state/>
613
<scalar_field name="TurbulentDissipation_destruction_term" rank="0">
615
<algorithm name="Internal" material_phase_support="multiple"/>
616
<mesh name="VelocityMesh"/>
622
<include_in_convergence/>
625
<include_in_detectors/>
628
<exclude_from_steady_state/>
632
<scalar_field name="TurbulentDissipation_buoyancy_term" rank="0">
634
<algorithm name="Internal" material_phase_support="multiple"/>
635
<mesh name="VelocityMesh"/>
641
<include_in_convergence/>
644
<include_in_detectors/>
647
<exclude_from_steady_state/>
651
</source_term_output_fields>
652
<prescribed_source_terms>
653
<scalar_field name="TurbulentKineticEnergyPrescribedSource" rank="0">
655
<mesh name="VelocityMesh"/>
656
<value name="WholeMesh">
658
<string_value lines="20" type="code" language="python">def val(X,t):
659
import mms_rans_p2p1_keps_tools as k
660
return k.forcing_ke(X)</string_value>
668
<exclude_from_detectors/>
672
<scalar_field name="TurbulentDissipationPrescribedSource" rank="0">
674
<mesh name="VelocityMesh"/>
675
<value name="WholeMesh">
677
<string_value lines="20" type="code" language="python">def val(X,t):
678
import mms_rans_p2p1_keps_tools as k
679
return k.forcing_eps(X)</string_value>
687
<exclude_from_detectors/>
691
</prescribed_source_terms>
694
</subgridscale_parameterisations>
695
<scalar_field name="Pressure" rank="0">
697
<mesh name="PressureMesh"/>
698
<spatial_discretisation>
699
<continuous_galerkin>
700
<remove_stabilisation_term/>
701
</continuous_galerkin>
702
</spatial_discretisation>
703
<reference_coordinates>
704
<real_value shape="2" dim1="dim" rank="1">0.0 0.0</real_value>
705
</reference_coordinates>
707
<poisson_pressure_solution>
708
<string_value lines="1">only first timestep</string_value>
709
</poisson_pressure_solution>
710
<use_projection_method/>
713
<iterative_method name="cg"/>
714
<preconditioner name="sor"/>
716
<real_value rank="0">1.0e-6</real_value>
719
<real_value rank="0">1e-15</real_value>
722
<integer_value rank="0">1000</integer_value>
724
<never_ignore_solver_failures/>
730
<include_previous_time_step/>
736
<include_in_convergence/>
739
<exclude_from_detectors/>
742
<exclude_from_steady_state/>
744
<consistent_interpolation/>
747
<scalar_field name="Density" rank="0">
749
<algorithm name="Internal" material_phase_support="multiple"/>
750
<mesh name="VelocityMesh"/>
756
<include_in_convergence/>
759
<include_in_detectors/>
762
<exclude_from_steady_state/>
766
<vector_field name="Velocity" rank="1">
768
<mesh name="VelocityMesh"/>
769
<equation name="Boussinesq"/>
770
<spatial_discretisation>
771
<continuous_galerkin>
782
<partial_stress_form/>
784
</continuous_galerkin>
785
<conservative_advection>
786
<real_value rank="0">1.0</real_value>
787
</conservative_advection>
788
</spatial_discretisation>
789
<temporal_discretisation>
791
<real_value rank="0">0.5</real_value>
794
<real_value rank="0">0.5</real_value>
796
</temporal_discretisation>
798
<iterative_method name="gmres">
800
<integer_value rank="0">30</integer_value>
803
<preconditioner name="sor"/>
805
<real_value rank="0">1e-6</real_value>
808
<real_value rank="0">1e-15</real_value>
811
<integer_value rank="0">1000</integer_value>
813
<never_ignore_solver_failures/>
818
<initial_condition name="WholeMesh">
820
<string_value lines="20" type="code" language="python">def val(X,t):
821
import mms_rans_p2p1_keps_tools as k
822
return k.velocity(X)</string_value>
825
<boundary_conditions name="all_sides">
827
<integer_value shape="1" rank="1">1</integer_value>
829
<type name="dirichlet">
830
<align_bc_with_cartesian>
833
<string_value lines="20" type="code" language="python">def val(X,t):
834
import mms_rans_p2p1_keps_tools as k
835
return k.u(X)</string_value>
840
<string_value lines="20" type="code" language="python">def val(X,t):
841
import mms_rans_p2p1_keps_tools as k
842
return k.v(X)</string_value>
845
</align_bc_with_cartesian>
847
</boundary_conditions>
848
<tensor_field name="Viscosity" rank="2">
850
<algorithm name="Internal" material_phase_support="multiple"/>
857
<vector_field name="Source" rank="1">
859
<value name="WholeMesh">
861
<string_value lines="20" type="code" language="python">def val(X,t):
862
import mms_rans_p2p1_keps_tools as k
863
return k.forcing_velocity(X)</string_value>
871
<exclude_from_detectors/>
880
</previous_time_step>
886
<include_in_convergence/>
889
<include_in_detectors/>
892
<exclude_from_steady_state/>
894
<consistent_interpolation/>
897
<scalar_field name="CFLNumber" rank="0">
899
<algorithm name="Internal" material_phase_support="multiple"/>
900
<mesh name="VelocityMesh"/>
906
<include_in_convergence/>
909
<include_in_detectors/>
912
<exclude_from_steady_state/>
916
<scalar_field name="Temperature" rank="0">
918
<mesh name="VelocityMesh"/>
919
<equation name="AdvectionDiffusion"/>
920
<spatial_discretisation>
921
<continuous_galerkin>
927
</continuous_galerkin>
928
<conservative_advection>
929
<real_value rank="0">1.0</real_value>
930
</conservative_advection>
931
</spatial_discretisation>
932
<temporal_discretisation>
934
<real_value rank="0">0.5</real_value>
936
</temporal_discretisation>
938
<iterative_method name="gmres">
940
<integer_value rank="0">30</integer_value>
943
<preconditioner name="ilu"/>
945
<real_value rank="0">1.0e-6</real_value>
948
<real_value rank="0">1e-15</real_value>
951
<integer_value rank="0">1000</integer_value>
953
<never_ignore_solver_failures/>
958
<initial_condition name="WholeMesh">
960
<string_value lines="20" type="code" language="python">def val(X,t):
961
import mms_rans_p2p1_keps_tools as k
962
return k.rho(X)</string_value>
965
<boundary_conditions name="all_sides">
967
<integer_value shape="1" rank="1">1</integer_value>
969
<type name="dirichlet">
971
<string_value lines="20" type="code" language="python">def val(X,t):
972
import mms_rans_p2p1_keps_tools as k
973
return k.rho(X)</string_value>
976
</boundary_conditions>
977
<subgridscale_parameterisation name="k-epsilon">
978
<background_diffusivity>
979
<real_value rank="0">1.0</real_value>
980
</background_diffusivity>
981
</subgridscale_parameterisation>
982
<tensor_field name="Diffusivity" rank="2">
984
<algorithm name="Internal" material_phase_support="multiple"/>
991
<scalar_field name="Source" rank="0">
993
<value name="WholeMesh">
995
<string_value lines="20" type="code" language="python">def val(X,t):
996
import mms_rans_p2p1_keps_tools as k
997
return k.forcing_rho(X)</string_value>
1002
<exclude_from_stat/>
1005
<exclude_from_detectors/>
1011
<exclude_from_stat/>
1014
<include_in_convergence/>
1017
<include_in_detectors/>
1020
<exclude_from_steady_state/>
1022
<consistent_interpolation/>
1025
<scalar_field name="TemperatureAnalytical" rank="0">
1027
<mesh name="ErrorMesh"/>
1028
<value name="WholeMesh">
1030
<string_value lines="20" type="code" language="python">def val(X,t):
1031
import mms_rans_p2p1_keps_tools as k
1032
return k.rho(X)</string_value>
1037
<exclude_from_stat/>
1040
<exclude_from_detectors/>
1044
<scalar_field name="TemperatureError" rank="0">
1046
<algorithm source_field_2_type="scalar" name="scalar_difference" source_field_1_name="TemperatureAnalytical" source_field_2_name="TemperatureProjection" material_phase_support="single" source_field_1_type="scalar">
1047
<absolute_difference/>
1049
<mesh name="ErrorMesh"/>
1053
<include_in_convergence/>
1056
<include_in_detectors/>
1059
<include_in_steady_state/>
1063
<scalar_field name="TemperatureProjection" rank="0">
1065
<algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="Temperature">
1067
<iterative_method name="cg"/>
1068
<preconditioner name="sor"/>
1070
<real_value rank="0">1e-10</real_value>
1073
<integer_value rank="0">1000</integer_value>
1075
<never_ignore_solver_failures/>
1081
<mesh name="ErrorMesh"/>
1084
<exclude_from_stat/>
1087
<include_in_convergence/>
1090
<include_in_detectors/>
1093
<exclude_from_steady_state/>
1097
<scalar_field name="PressureAnalytical" rank="0">
1099
<mesh name="ErrorMesh"/>
1100
<value name="WholeMesh">
1102
<string_value lines="20" type="code" language="python">def val(X,t):
1103
import mms_rans_p2p1_keps_tools as k
1104
return k.p(X)</string_value>
1109
<exclude_from_stat/>
1112
<exclude_from_detectors/>
1116
<scalar_field name="PressureProjection" rank="0">
1118
<algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="Pressure">
1120
<iterative_method name="cg"/>
1121
<preconditioner name="sor"/>
1123
<real_value rank="0">1e-10</real_value>
1126
<integer_value rank="0">1000</integer_value>
1128
<never_ignore_solver_failures/>
1134
<mesh name="ErrorMesh"/>
1137
<exclude_from_stat/>
1140
<include_in_convergence/>
1143
<include_in_detectors/>
1146
<exclude_from_steady_state/>
1150
<scalar_field name="PressureError" rank="0">
1152
<algorithm source_field_2_type="scalar" name="scalar_difference" source_field_1_name="PressureAnalytical" source_field_2_name="PressureProjection" material_phase_support="single" source_field_1_type="scalar">
1153
<absolute_difference/>
1155
<mesh name="ErrorMesh"/>
1159
<include_in_convergence/>
1162
<include_in_detectors/>
1165
<include_in_steady_state/>
1169
<scalar_field name="TurbulentKineticEnergy_production_termCopy" rank="0">
1171
<algorithm name="scalar_python_diagnostic" material_phase_support="single">
1172
<string_value lines="20" type="code" language="python">E=state.scalar_fields["TurbulentKineticEnergy_production_term"]
1174
for n in range(field.node_count):
1175
field.set(n,E.node_val(n))</string_value>
1177
<mesh name="VelocityMesh"/>
1180
<exclude_from_stat/>
1183
<include_in_convergence/>
1186
<include_in_detectors/>
1189
<exclude_from_steady_state/>
1193
<scalar_field name="TurbulentKineticEnergy_production_termAnalytical" rank="0">
1195
<mesh name="ErrorMesh"/>
1196
<value name="WholeMesh">
1198
<string_value lines="20" type="code" language="python">def val(X,t):
1199
import mms_rans_p2p1_keps_tools as k
1200
return k.P_ke(X)</string_value>
1205
<exclude_from_stat/>
1208
<exclude_from_detectors/>
1212
<scalar_field name="TurbulentKineticEnergy_production_termProjection" rank="0">
1214
<algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentKineticEnergy_production_termCopy">
1216
<iterative_method name="cg"/>
1217
<preconditioner name="sor"/>
1219
<real_value rank="0">1e-10</real_value>
1222
<integer_value rank="0">1000</integer_value>
1224
<never_ignore_solver_failures/>
1230
<mesh name="ErrorMesh"/>
1233
<exclude_from_stat/>
1236
<include_in_convergence/>
1239
<include_in_detectors/>
1242
<exclude_from_steady_state/>
1246
<scalar_field name="TurbulentKineticEnergy_production_termError" rank="0">
1248
<algorithm source_field_2_type="scalar" name="scalar_difference" source_field_1_name="TurbulentKineticEnergy_production_termAnalytical" source_field_2_name="TurbulentKineticEnergy_production_termProjection" material_phase_support="single" source_field_1_type="scalar">
1249
<absolute_difference/>
1251
<mesh name="ErrorMesh"/>
1255
<include_in_convergence/>
1258
<include_in_detectors/>
1261
<include_in_steady_state/>
1265
<scalar_field name="TurbulentKineticEnergy_destruction_termCopy" rank="0">
1267
<algorithm name="scalar_python_diagnostic" material_phase_support="single">
1268
<string_value lines="20" type="code" language="python">E=state.scalar_fields["TurbulentKineticEnergy_destruction_term"]
1270
for n in range(field.node_count):
1271
field.set(n,E.node_val(n))</string_value>
1273
<mesh name="VelocityMesh"/>
1276
<exclude_from_stat/>
1279
<include_in_convergence/>
1282
<include_in_detectors/>
1285
<exclude_from_steady_state/>
1289
<scalar_field name="TurbulentKineticEnergy_destruction_termAnalytical" rank="0">
1291
<mesh name="ErrorMesh"/>
1292
<value name="WholeMesh">
1294
<string_value lines="20" type="code" language="python">def val(X,t):
1295
import mms_rans_p2p1_keps_tools as k
1296
return k.A_ke(X)</string_value>
1301
<exclude_from_stat/>
1304
<exclude_from_detectors/>
1308
<scalar_field name="TurbulentKineticEnergy_destruction_termProjection" rank="0">
1310
<algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentKineticEnergy_destruction_termCopy">
1312
<iterative_method name="cg"/>
1313
<preconditioner name="sor"/>
1315
<real_value rank="0">1e-10</real_value>
1318
<integer_value rank="0">1000</integer_value>
1320
<never_ignore_solver_failures/>
1326
<mesh name="ErrorMesh"/>
1329
<exclude_from_stat/>
1332
<include_in_convergence/>
1335
<include_in_detectors/>
1338
<exclude_from_steady_state/>
1342
<scalar_field name="TurbulentKineticEnergy_destruction_termError" rank="0">
1344
<algorithm source_field_2_type="scalar" name="scalar_difference" source_field_1_name="TurbulentKineticEnergy_destruction_termAnalytical" source_field_2_name="TurbulentKineticEnergy_destruction_termProjection" material_phase_support="single" source_field_1_type="scalar">
1345
<absolute_difference/>
1347
<mesh name="ErrorMesh"/>
1351
<include_in_convergence/>
1354
<include_in_detectors/>
1357
<include_in_steady_state/>
1361
<scalar_field name="TurbulentKineticEnergy_buoyancy_termCopy" rank="0">
1363
<algorithm name="scalar_python_diagnostic" material_phase_support="single">
1364
<string_value lines="20" type="code" language="python">E=state.scalar_fields["TurbulentKineticEnergy_buoyancy_term"]
1366
for n in range(field.node_count):
1367
field.set(n,E.node_val(n))</string_value>
1369
<mesh name="VelocityMesh"/>
1372
<exclude_from_stat/>
1375
<include_in_convergence/>
1378
<include_in_detectors/>
1381
<exclude_from_steady_state/>
1385
<scalar_field name="TurbulentKineticEnergy_buoyancy_termAnalytical" rank="0">
1387
<mesh name="ErrorMesh"/>
1388
<value name="WholeMesh">
1390
<string_value lines="20" type="code" language="python">def val(X,t):
1391
import mms_rans_p2p1_keps_tools as k
1392
return k.B_ke(X)</string_value>
1397
<exclude_from_stat/>
1400
<exclude_from_detectors/>
1404
<scalar_field name="TurbulentKineticEnergy_buoyancy_termProjection" rank="0">
1406
<algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentKineticEnergy_buoyancy_termCopy">
1408
<iterative_method name="cg"/>
1409
<preconditioner name="sor"/>
1411
<real_value rank="0">1e-10</real_value>
1414
<integer_value rank="0">1000</integer_value>
1416
<never_ignore_solver_failures/>
1422
<mesh name="ErrorMesh"/>
1425
<exclude_from_stat/>
1428
<include_in_convergence/>
1431
<include_in_detectors/>
1434
<exclude_from_steady_state/>
1438
<scalar_field name="TurbulentKineticEnergy_buoyancy_termError" rank="0">
1440
<algorithm source_field_2_type="scalar" name="scalar_difference" source_field_1_name="TurbulentKineticEnergy_buoyancy_termAnalytical" source_field_2_name="TurbulentKineticEnergy_buoyancy_termProjection" material_phase_support="single" source_field_1_type="scalar">
1441
<absolute_difference/>
1443
<mesh name="ErrorMesh"/>
1447
<include_in_convergence/>
1450
<include_in_detectors/>
1453
<include_in_steady_state/>
1457
<scalar_field name="TurbulentKineticEnergyCopy" rank="0">
1459
<algorithm name="scalar_python_diagnostic" material_phase_support="single">
1460
<string_value lines="20" type="code" language="python">E=state.scalar_fields["TurbulentKineticEnergy"]
1462
for n in range(field.node_count):
1463
field.set(n,E.node_val(n))</string_value>
1465
<mesh name="VelocityMesh"/>
1468
<exclude_from_stat/>
1471
<include_in_convergence/>
1474
<exclude_from_detectors/>
1477
<exclude_from_steady_state/>
1481
<scalar_field name="TurbulentKineticEnergyAnalytical" rank="0">
1483
<mesh name="ErrorMesh"/>
1484
<value name="WholeMesh">
1486
<string_value lines="20" type="code" language="python">def val(X,t):
1487
import mms_rans_p2p1_keps_tools as k
1488
return k.ke(X)</string_value>
1493
<exclude_from_stat/>
1496
<exclude_from_detectors/>
1500
<scalar_field name="TurbulentKineticEnergyProjection" rank="0">
1502
<algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentKineticEnergyCopy">
1504
<iterative_method name="cg"/>
1505
<preconditioner name="sor"/>
1507
<real_value rank="0">1e-10</real_value>
1510
<integer_value rank="0">1000</integer_value>
1512
<never_ignore_solver_failures/>
1518
<mesh name="ErrorMesh"/>
1521
<exclude_from_stat/>
1524
<include_in_convergence/>
1527
<include_in_detectors/>
1530
<exclude_from_steady_state/>
1534
<scalar_field name="TurbulentKineticEnergyError" rank="0">
1536
<algorithm source_field_2_type="scalar" name="scalar_difference" source_field_1_name="TurbulentKineticEnergyAnalytical" source_field_2_name="TurbulentKineticEnergyProjection" material_phase_support="single" source_field_1_type="scalar">
1537
<absolute_difference/>
1539
<mesh name="ErrorMesh"/>
1543
<include_in_convergence/>
1546
<include_in_detectors/>
1549
<include_in_steady_state/>
1553
<scalar_field name="TurbulentDissipation_production_termCopy" rank="0">
1555
<algorithm name="scalar_python_diagnostic" material_phase_support="single">
1556
<string_value lines="20" type="code" language="python">E=state.scalar_fields["TurbulentDissipation_production_term"]
1558
for n in range(field.node_count):
1559
field.set(n,E.node_val(n))</string_value>
1561
<mesh name="VelocityMesh"/>
1564
<exclude_from_stat/>
1567
<include_in_convergence/>
1570
<include_in_detectors/>
1573
<exclude_from_steady_state/>
1577
<scalar_field name="TurbulentDissipation_production_termAnalytical" rank="0">
1579
<mesh name="ErrorMesh"/>
1580
<value name="WholeMesh">
1582
<string_value lines="20" type="code" language="python">def val(X,t):
1583
import mms_rans_p2p1_keps_tools as k
1584
return k.P_eps(X)</string_value>
1589
<exclude_from_stat/>
1592
<exclude_from_detectors/>
1596
<scalar_field name="TurbulentDissipation_production_termProjection" rank="0">
1598
<algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentDissipation_production_termCopy">
1600
<iterative_method name="cg"/>
1601
<preconditioner name="sor"/>
1603
<real_value rank="0">1e-10</real_value>
1606
<integer_value rank="0">1000</integer_value>
1608
<never_ignore_solver_failures/>
1614
<mesh name="ErrorMesh"/>
1617
<exclude_from_stat/>
1620
<include_in_convergence/>
1623
<include_in_detectors/>
1626
<exclude_from_steady_state/>
1630
<scalar_field name="TurbulentDissipation_production_termError" rank="0">
1632
<algorithm source_field_2_type="scalar" name="scalar_difference" source_field_1_name="TurbulentDissipation_production_termAnalytical" source_field_2_name="TurbulentDissipation_production_termProjection" material_phase_support="single" source_field_1_type="scalar">
1633
<absolute_difference/>
1635
<mesh name="ErrorMesh"/>
1639
<include_in_convergence/>
1642
<include_in_detectors/>
1645
<include_in_steady_state/>
1649
<scalar_field name="TurbulentDissipation_destruction_termCopy" rank="0">
1651
<algorithm name="scalar_python_diagnostic" material_phase_support="single">
1652
<string_value lines="20" type="code" language="python">E=state.scalar_fields["TurbulentDissipation_destruction_term"]
1654
for n in range(field.node_count):
1655
field.set(n,E.node_val(n))</string_value>
1657
<mesh name="VelocityMesh"/>
1660
<exclude_from_stat/>
1663
<include_in_convergence/>
1666
<include_in_detectors/>
1669
<exclude_from_steady_state/>
1673
<scalar_field name="TurbulentDissipation_destruction_termAnalytical" rank="0">
1675
<mesh name="ErrorMesh"/>
1676
<value name="WholeMesh">
1678
<string_value lines="20" type="code" language="python">def val(X,t):
1679
import mms_rans_p2p1_keps_tools as k
1680
return k.A_eps(X)</string_value>
1685
<exclude_from_stat/>
1688
<exclude_from_detectors/>
1692
<scalar_field name="TurbulentDissipation_destruction_termProjection" rank="0">
1694
<algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentDissipation_destruction_termCopy">
1696
<iterative_method name="cg"/>
1697
<preconditioner name="sor"/>
1699
<real_value rank="0">1e-10</real_value>
1702
<integer_value rank="0">1000</integer_value>
1704
<never_ignore_solver_failures/>
1710
<mesh name="ErrorMesh"/>
1713
<exclude_from_stat/>
1716
<include_in_convergence/>
1719
<include_in_detectors/>
1722
<exclude_from_steady_state/>
1726
<scalar_field name="TurbulentDissipation_destruction_termError" rank="0">
1728
<algorithm source_field_2_type="scalar" name="scalar_difference" source_field_1_name="TurbulentDissipation_destruction_termAnalytical" source_field_2_name="TurbulentDissipation_destruction_termProjection" material_phase_support="single" source_field_1_type="scalar">
1729
<absolute_difference/>
1731
<mesh name="ErrorMesh"/>
1735
<include_in_convergence/>
1738
<include_in_detectors/>
1741
<include_in_steady_state/>
1745
<scalar_field name="TurbulentDissipation_buoyancy_termCopy" rank="0">
1747
<algorithm name="scalar_python_diagnostic" material_phase_support="single">
1748
<string_value lines="20" type="code" language="python">E=state.scalar_fields["TurbulentDissipation_buoyancy_term"]
1750
for n in range(field.node_count):
1751
field.set(n,E.node_val(n))</string_value>
1753
<mesh name="VelocityMesh"/>
1756
<exclude_from_stat/>
1759
<include_in_convergence/>
1762
<include_in_detectors/>
1765
<exclude_from_steady_state/>
1769
<scalar_field name="TurbulentDissipation_buoyancy_termAnalytical" rank="0">
1771
<mesh name="ErrorMesh"/>
1772
<value name="WholeMesh">
1774
<string_value lines="20" type="code" language="python">def val(X,t):
1775
import mms_rans_p2p1_keps_tools as k
1776
return k.B_eps(X)</string_value>
1781
<exclude_from_stat/>
1784
<exclude_from_detectors/>
1788
<scalar_field name="TurbulentDissipation_buoyancy_termProjection" rank="0">
1790
<algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentDissipation_buoyancy_termCopy">
1792
<iterative_method name="cg"/>
1793
<preconditioner name="sor"/>
1795
<real_value rank="0">1e-10</real_value>
1798
<integer_value rank="0">1000</integer_value>
1800
<never_ignore_solver_failures/>
1806
<mesh name="ErrorMesh"/>
1809
<exclude_from_stat/>
1812
<include_in_convergence/>
1815
<include_in_detectors/>
1818
<exclude_from_steady_state/>
1822
<scalar_field name="TurbulentDissipation_buoyancy_termError" rank="0">
1824
<algorithm source_field_2_type="scalar" name="scalar_difference" source_field_1_name="TurbulentDissipation_buoyancy_termAnalytical" source_field_2_name="TurbulentDissipation_buoyancy_termProjection" material_phase_support="single" source_field_1_type="scalar">
1825
<absolute_difference/>
1827
<mesh name="ErrorMesh"/>
1831
<include_in_convergence/>
1834
<include_in_detectors/>
1837
<include_in_steady_state/>
1841
<scalar_field name="TurbulentDissipationCopy" rank="0">
1843
<algorithm name="scalar_python_diagnostic" material_phase_support="single">
1844
<string_value lines="20" type="code" language="python">E=state.scalar_fields["TurbulentDissipation"]
1846
for n in range(field.node_count):
1847
field.set(n,E.node_val(n))</string_value>
1849
<mesh name="VelocityMesh"/>
1852
<exclude_from_stat/>
1855
<include_in_convergence/>
1858
<include_in_detectors/>
1861
<exclude_from_steady_state/>
1865
<scalar_field name="TurbulentDissipationAnalytical" rank="0">
1867
<mesh name="ErrorMesh"/>
1868
<value name="WholeMesh">
1870
<string_value lines="20" type="code" language="python">def val(X,t):
1871
import mms_rans_p2p1_keps_tools as k
1872
return k.eps(X)</string_value>
1877
<exclude_from_stat/>
1880
<exclude_from_detectors/>
1884
<scalar_field name="TurbulentDissipationProjection" rank="0">
1886
<algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentDissipationCopy">
1888
<iterative_method name="cg"/>
1889
<preconditioner name="sor"/>
1891
<real_value rank="0">1e-10</real_value>
1894
<integer_value rank="0">1000</integer_value>
1896
<never_ignore_solver_failures/>
1902
<mesh name="ErrorMesh"/>
1905
<exclude_from_stat/>
1908
<include_in_convergence/>
1911
<include_in_detectors/>
1914
<exclude_from_steady_state/>
1918
<scalar_field name="TurbulentDissipationError" rank="0">
1920
<algorithm source_field_2_type="scalar" name="scalar_difference" source_field_1_name="TurbulentDissipationAnalytical" source_field_2_name="TurbulentDissipationProjection" material_phase_support="single" source_field_1_type="scalar">
1921
<absolute_difference/>
1923
<mesh name="ErrorMesh"/>
1927
<include_in_convergence/>
1930
<include_in_detectors/>
1933
<include_in_steady_state/>
1937
<scalar_field name="ScalarEddyViscosityCopy" rank="0">
1939
<algorithm name="scalar_python_diagnostic" material_phase_support="single">
1940
<string_value lines="20" type="code" language="python">E=state.scalar_fields["ScalarEddyViscosity"]
1942
for n in range(field.node_count):
1943
field.set(n,E.node_val(n))</string_value>
1945
<mesh name="VelocityMesh"/>
1948
<exclude_from_stat/>
1951
<include_in_convergence/>
1954
<include_in_detectors/>
1957
<exclude_from_steady_state/>
1961
<scalar_field name="ScalarEddyViscosityAnalytical" rank="0">
1963
<mesh name="ErrorMesh"/>
1964
<value name="WholeMesh">
1966
<string_value lines="20" type="code" language="python">def val(X,t):
1967
import mms_rans_p2p1_keps_tools as k
1968
return k.EV(X)</string_value>
1973
<exclude_from_stat/>
1976
<exclude_from_detectors/>
1980
<scalar_field name="ScalarEddyViscosityProjection" rank="0">
1982
<algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="ScalarEddyViscosityCopy">
1984
<iterative_method name="cg"/>
1985
<preconditioner name="sor"/>
1987
<real_value rank="0">1e-10</real_value>
1990
<integer_value rank="0">1000</integer_value>
1992
<never_ignore_solver_failures/>
1998
<mesh name="ErrorMesh"/>
2001
<exclude_from_stat/>
2004
<include_in_convergence/>
2007
<include_in_detectors/>
2010
<exclude_from_steady_state/>
2014
<scalar_field name="ScalarEddyViscosityError" rank="0">
2016
<algorithm source_field_2_type="scalar" name="scalar_difference" source_field_1_name="ScalarEddyViscosityAnalytical" source_field_2_name="ScalarEddyViscosityProjection" material_phase_support="single" source_field_1_type="scalar">
2017
<absolute_difference/>
2019
<mesh name="ErrorMesh"/>
2023
<include_in_convergence/>
2026
<include_in_detectors/>
2029
<include_in_steady_state/>
2033
<vector_field name="VelocityAnalytical" rank="1">
2035
<mesh name="ErrorMesh"/>
2036
<value name="WholeMesh">
2038
<string_value lines="20" type="code" language="python">def val(X,t):
2039
import mms_rans_p2p1_keps_tools as k
2040
return k.velocity(X)</string_value>
2048
<exclude_from_detectors/>
2052
<vector_field name="VelocityProjection" rank="1">
2054
<algorithm source_field_type="vector" material_phase_support="single" name="vector_galerkin_projection" source_field_name="Velocity">
2056
<iterative_method name="cg"/>
2057
<preconditioner name="sor"/>
2059
<real_value rank="0">1e-10</real_value>
2062
<integer_value rank="0">1000</integer_value>
2064
<never_ignore_solver_failures/>
2070
<mesh name="ErrorMesh"/>
2076
<include_in_convergence/>
2079
<include_in_detectors/>
2082
<exclude_from_steady_state/>
2086
<vector_field name="VelocityError" rank="1">
2088
<algorithm source_field_2_type="vector" name="vector_difference" source_field_1_name="VelocityProjection" source_field_2_name="VelocityAnalytical" material_phase_support="single" source_field_1_type="vector">
2089
<absolute_difference/>
2091
<mesh name="ErrorMesh"/>
2097
<include_in_convergence/>
2100
<include_in_detectors/>
2103
<include_in_steady_state/>