~fluidity-core/fluidity/sea-ice-branch

« back to all changes in this revision

Viewing changes to tests/mms_rans_p2p1_keps/MMS_X.flml

  • Committer: Simon Mouradian
  • Date: 2012-10-19 10:35:59 UTC
  • mfrom: (3520.32.371 fluidity)
  • Revision ID: simon.mouradian06@imperial.ac.uk-20121019103559-y36qa47phc69q8sc
mergeĀ fromĀ trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version='1.0' encoding='utf-8'?>
 
2
<fluidity_options>
 
3
  <simulation_name>
 
4
    <string_value lines="1">MMS_X</string_value>
 
5
  </simulation_name>
 
6
  <problem_type>
 
7
    <string_value lines="1">fluids</string_value>
 
8
  </problem_type>
 
9
  <geometry>
 
10
    <dimension>
 
11
      <integer_value rank="0">2</integer_value>
 
12
    </dimension>
 
13
    <mesh name="CoordinateMesh">
 
14
      <from_file file_name="src/MMS_X">
 
15
        <format name="gmsh"/>
 
16
        <stat>
 
17
          <exclude_from_stat/>
 
18
        </stat>
 
19
      </from_file>
 
20
    </mesh>
 
21
    <mesh name="VelocityMesh">
 
22
      <from_mesh>
 
23
        <mesh name="CoordinateMesh"/>
 
24
        <mesh_shape>
 
25
          <polynomial_degree>
 
26
            <integer_value rank="0">2</integer_value>
 
27
          </polynomial_degree>
 
28
        </mesh_shape>
 
29
        <stat>
 
30
          <exclude_from_stat/>
 
31
        </stat>
 
32
      </from_mesh>
 
33
    </mesh>
 
34
    <mesh name="PressureMesh">
 
35
      <from_mesh>
 
36
        <mesh name="CoordinateMesh"/>
 
37
        <mesh_shape>
 
38
          <polynomial_degree>
 
39
            <integer_value rank="0">1</integer_value>
 
40
          </polynomial_degree>
 
41
        </mesh_shape>
 
42
        <stat>
 
43
          <exclude_from_stat/>
 
44
        </stat>
 
45
      </from_mesh>
 
46
    </mesh>
 
47
    <mesh name="ErrorMesh">
 
48
      <from_mesh>
 
49
        <mesh name="CoordinateMesh"/>
 
50
        <mesh_shape>
 
51
          <polynomial_degree>
 
52
            <integer_value rank="0">4</integer_value>
 
53
          </polynomial_degree>
 
54
        </mesh_shape>
 
55
        <mesh_continuity>
 
56
          <string_value>continuous</string_value>
 
57
        </mesh_continuity>
 
58
        <stat>
 
59
          <exclude_from_stat/>
 
60
        </stat>
 
61
      </from_mesh>
 
62
    </mesh>
 
63
    <quadrature>
 
64
      <degree>
 
65
        <integer_value rank="0">8</integer_value>
 
66
      </degree>
 
67
    </quadrature>
 
68
  </geometry>
 
69
  <io>
 
70
    <dump_format>
 
71
      <string_value>vtk</string_value>
 
72
    </dump_format>
 
73
    <dump_period>
 
74
      <constant>
 
75
        <real_value rank="0">2000</real_value>
 
76
      </constant>
 
77
    </dump_period>
 
78
    <output_mesh name="VelocityMesh"/>
 
79
    <stat/>
 
80
  </io>
 
81
  <timestepping>
 
82
    <current_time>
 
83
      <real_value rank="0">0.0</real_value>
 
84
    </current_time>
 
85
    <timestep>
 
86
      <real_value rank="0">999.9</real_value>
 
87
      <comment>gives a max cfl number of approximately 0.1</comment>
 
88
    </timestep>
 
89
    <finish_time>
 
90
      <real_value rank="0">1000.0</real_value>
 
91
      <comment>10.0</comment>
 
92
    </finish_time>
 
93
    <nonlinear_iterations>
 
94
      <integer_value rank="0">2</integer_value>
 
95
    </nonlinear_iterations>
 
96
    <steady_state>
 
97
      <tolerance>
 
98
        <real_value rank="0">1.E-4</real_value>
 
99
        <infinity_norm/>
 
100
      </tolerance>
 
101
    </steady_state>
 
102
  </timestepping>
 
103
  <physical_parameters>
 
104
    <gravity>
 
105
      <magnitude>
 
106
        <real_value rank="0">1.0</real_value>
 
107
      </magnitude>
 
108
      <vector_field name="GravityDirection" rank="1">
 
109
        <prescribed>
 
110
          <mesh name="CoordinateMesh"/>
 
111
          <value name="WholeMesh">
 
112
            <constant>
 
113
              <real_value shape="2" dim1="dim" rank="1">0.707106781 0.707106781</real_value>
 
114
            </constant>
 
115
          </value>
 
116
          <output/>
 
117
          <stat>
 
118
            <exclude_from_stat/>
 
119
          </stat>
 
120
          <detectors>
 
121
            <exclude_from_detectors/>
 
122
          </detectors>
 
123
        </prescribed>
 
124
      </vector_field>
 
125
    </gravity>
 
126
  </physical_parameters>
 
127
  <material_phase name="NS">
 
128
    <equation_of_state>
 
129
      <fluids>
 
130
        <linear>
 
131
          <reference_density>
 
132
            <real_value rank="0">1.0</real_value>
 
133
          </reference_density>
 
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/>
 
143
        </linear>
 
144
      </fluids>
 
145
    </equation_of_state>
 
146
    <subgridscale_parameterisations>
 
147
      <k-epsilon>
 
148
        <scalar_field name="TurbulentKineticEnergy" rank="0">
 
149
          <prognostic>
 
150
            <mesh name="VelocityMesh"/>
 
151
            <equation name="KEpsilon"/>
 
152
            <spatial_discretisation>
 
153
              <continuous_galerkin>
 
154
                <stabilisation>
 
155
                  <no_stabilisation/>
 
156
                </stabilisation>
 
157
                <advection_terms/>
 
158
                <mass_terms/>
 
159
              </continuous_galerkin>
 
160
              <conservative_advection>
 
161
                <real_value rank="0">1.0</real_value>
 
162
              </conservative_advection>
 
163
            </spatial_discretisation>
 
164
            <temporal_discretisation>
 
165
              <theta>
 
166
                <real_value rank="0">0.5</real_value>
 
167
              </theta>
 
168
            </temporal_discretisation>
 
169
            <solver>
 
170
              <iterative_method name="gmres">
 
171
                <restart>
 
172
                  <integer_value rank="0">30</integer_value>
 
173
                </restart>
 
174
              </iterative_method>
 
175
              <preconditioner name="sor"/>
 
176
              <relative_error>
 
177
                <real_value rank="0">1.0e-6</real_value>
 
178
              </relative_error>
 
179
              <absolute_error>
 
180
                <real_value rank="0">1e-15</real_value>
 
181
              </absolute_error>
 
182
              <max_iterations>
 
183
                <integer_value rank="0">1000</integer_value>
 
184
              </max_iterations>
 
185
              <never_ignore_solver_failures/>
 
186
              <diagnostics>
 
187
                <monitors/>
 
188
              </diagnostics>
 
189
            </solver>
 
190
            <initial_condition name="WholeMesh">
 
191
              <python>
 
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>
 
195
              </python>
 
196
            </initial_condition>
 
197
            <boundary_conditions name="all_sides">
 
198
              <surface_ids>
 
199
                <integer_value shape="1" rank="1">1</integer_value>
 
200
              </surface_ids>
 
201
              <type name="dirichlet">
 
202
                <python>
 
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>
 
206
                </python>
 
207
              </type>
 
208
            </boundary_conditions>
 
209
            <tensor_field name="Diffusivity" rank="2">
 
210
              <diagnostic>
 
211
                <algorithm name="Internal" material_phase_support="multiple"/>
 
212
                <output/>
 
213
                <stat>
 
214
                  <exclude_from_stat/>
 
215
                </stat>
 
216
              </diagnostic>
 
217
            </tensor_field>
 
218
            <scalar_field name="Source" rank="0">
 
219
              <diagnostic>
 
220
                <algorithm name="Internal" material_phase_support="multiple"/>
 
221
                <output/>
 
222
                <stat>
 
223
                  <exclude_from_stat/>
 
224
                </stat>
 
225
                <detectors>
 
226
                  <include_in_detectors/>
 
227
                </detectors>
 
228
              </diagnostic>
 
229
            </scalar_field>
 
230
            <scalar_field name="Absorption" rank="0">
 
231
              <diagnostic>
 
232
                <algorithm name="Internal" material_phase_support="multiple"/>
 
233
                <output/>
 
234
                <stat>
 
235
                  <exclude_from_stat/>
 
236
                </stat>
 
237
                <detectors>
 
238
                  <include_in_detectors/>
 
239
                </detectors>
 
240
              </diagnostic>
 
241
            </scalar_field>
 
242
            <output/>
 
243
            <stat>
 
244
              <exclude_from_stat/>
 
245
            </stat>
 
246
            <convergence>
 
247
              <include_in_convergence/>
 
248
            </convergence>
 
249
            <detectors>
 
250
              <exclude_from_detectors/>
 
251
            </detectors>
 
252
            <steady_state>
 
253
              <exclude_from_steady_state/>
 
254
            </steady_state>
 
255
            <consistent_interpolation/>
 
256
          </prognostic>
 
257
        </scalar_field>
 
258
        <scalar_field name="TurbulentDissipation" rank="0">
 
259
          <prognostic>
 
260
            <mesh name="VelocityMesh"/>
 
261
            <equation name="KEpsilon"/>
 
262
            <spatial_discretisation>
 
263
              <continuous_galerkin>
 
264
                <stabilisation>
 
265
                  <no_stabilisation/>
 
266
                </stabilisation>
 
267
                <advection_terms/>
 
268
                <mass_terms/>
 
269
              </continuous_galerkin>
 
270
              <conservative_advection>
 
271
                <real_value rank="0">1.0</real_value>
 
272
              </conservative_advection>
 
273
            </spatial_discretisation>
 
274
            <temporal_discretisation>
 
275
              <theta>
 
276
                <real_value rank="0">0.5</real_value>
 
277
              </theta>
 
278
            </temporal_discretisation>
 
279
            <solver>
 
280
              <iterative_method name="gmres">
 
281
                <restart>
 
282
                  <integer_value rank="0">30</integer_value>
 
283
                </restart>
 
284
              </iterative_method>
 
285
              <preconditioner name="sor"/>
 
286
              <relative_error>
 
287
                <real_value rank="0">1.0e-6</real_value>
 
288
              </relative_error>
 
289
              <absolute_error>
 
290
                <real_value rank="0">1e-15</real_value>
 
291
              </absolute_error>
 
292
              <max_iterations>
 
293
                <integer_value rank="0">1000</integer_value>
 
294
              </max_iterations>
 
295
              <never_ignore_solver_failures/>
 
296
              <diagnostics>
 
297
                <monitors/>
 
298
              </diagnostics>
 
299
            </solver>
 
300
            <initial_condition name="WholeMesh">
 
301
              <python>
 
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>
 
305
              </python>
 
306
            </initial_condition>
 
307
            <boundary_conditions name="all_sides">
 
308
              <surface_ids>
 
309
                <integer_value shape="1" rank="1">1</integer_value>
 
310
              </surface_ids>
 
311
              <type name="dirichlet">
 
312
                <python>
 
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>
 
316
                </python>
 
317
              </type>
 
318
            </boundary_conditions>
 
319
            <tensor_field name="Diffusivity" rank="2">
 
320
              <diagnostic>
 
321
                <algorithm name="Internal" material_phase_support="multiple"/>
 
322
                <output/>
 
323
                <stat>
 
324
                  <exclude_from_stat/>
 
325
                </stat>
 
326
              </diagnostic>
 
327
            </tensor_field>
 
328
            <scalar_field name="Source" rank="0">
 
329
              <diagnostic>
 
330
                <algorithm name="Internal" material_phase_support="multiple"/>
 
331
                <output/>
 
332
                <stat>
 
333
                  <exclude_from_stat/>
 
334
                </stat>
 
335
                <detectors>
 
336
                  <include_in_detectors/>
 
337
                </detectors>
 
338
              </diagnostic>
 
339
            </scalar_field>
 
340
            <scalar_field name="Absorption" rank="0">
 
341
              <diagnostic>
 
342
                <algorithm name="Internal" material_phase_support="multiple"/>
 
343
                <output/>
 
344
                <stat>
 
345
                  <exclude_from_stat/>
 
346
                </stat>
 
347
                <detectors>
 
348
                  <include_in_detectors/>
 
349
                </detectors>
 
350
              </diagnostic>
 
351
            </scalar_field>
 
352
            <output/>
 
353
            <stat>
 
354
              <exclude_from_stat/>
 
355
            </stat>
 
356
            <convergence>
 
357
              <include_in_convergence/>
 
358
            </convergence>
 
359
            <detectors>
 
360
              <exclude_from_detectors/>
 
361
            </detectors>
 
362
            <steady_state>
 
363
              <exclude_from_steady_state/>
 
364
            </steady_state>
 
365
            <consistent_interpolation/>
 
366
          </prognostic>
 
367
        </scalar_field>
 
368
        <tensor_field name="BackgroundViscosity" rank="2">
 
369
          <prescribed>
 
370
            <mesh name="VelocityMesh"/>
 
371
            <value name="WholeMesh">
 
372
              <anisotropic_symmetric>
 
373
                <constant>
 
374
                  <real_value symmetric="true" dim2="dim" shape="2 2" dim1="dim" rank="2">1.0 1.0 1.0 1.0</real_value>
 
375
                </constant>
 
376
              </anisotropic_symmetric>
 
377
            </value>
 
378
            <output/>
 
379
          </prescribed>
 
380
        </tensor_field>
 
381
        <tensor_field name="EddyViscosity" rank="2">
 
382
          <diagnostic>
 
383
            <algorithm name="Internal" material_phase_support="multiple"/>
 
384
            <mesh name="VelocityMesh"/>
 
385
            <output/>
 
386
            <stat>
 
387
              <exclude_from_stat/>
 
388
            </stat>
 
389
          </diagnostic>
 
390
        </tensor_field>
 
391
        <scalar_field name="ScalarEddyViscosity" rank="0">
 
392
          <diagnostic>
 
393
            <algorithm name="Internal" material_phase_support="multiple"/>
 
394
            <mesh name="VelocityMesh"/>
 
395
            <output/>
 
396
            <stat>
 
397
              <exclude_from_stat/>
 
398
            </stat>
 
399
            <convergence>
 
400
              <include_in_convergence/>
 
401
            </convergence>
 
402
            <detectors>
 
403
              <include_in_detectors/>
 
404
            </detectors>
 
405
            <steady_state>
 
406
              <exclude_from_steady_state/>
 
407
            </steady_state>
 
408
          </diagnostic>
 
409
        </scalar_field>
 
410
        <scalar_field name="LengthScale" rank="0">
 
411
          <diagnostic>
 
412
            <algorithm name="Internal" material_phase_support="multiple"/>
 
413
            <mesh name="VelocityMesh"/>
 
414
            <output/>
 
415
            <stat>
 
416
              <exclude_from_stat/>
 
417
            </stat>
 
418
            <convergence>
 
419
              <include_in_convergence/>
 
420
            </convergence>
 
421
            <detectors>
 
422
              <include_in_detectors/>
 
423
            </detectors>
 
424
            <steady_state>
 
425
              <exclude_from_steady_state/>
 
426
            </steady_state>
 
427
          </diagnostic>
 
428
        </scalar_field>
 
429
        <scalar_field name="f_1" rank="0">
 
430
          <diagnostic>
 
431
            <algorithm name="Internal" material_phase_support="multiple"/>
 
432
            <mesh name="VelocityMesh"/>
 
433
            <output/>
 
434
            <stat>
 
435
              <exclude_from_stat/>
 
436
            </stat>
 
437
            <convergence>
 
438
              <include_in_convergence/>
 
439
            </convergence>
 
440
            <detectors>
 
441
              <include_in_detectors/>
 
442
            </detectors>
 
443
            <steady_state>
 
444
              <exclude_from_steady_state/>
 
445
            </steady_state>
 
446
          </diagnostic>
 
447
        </scalar_field>
 
448
        <scalar_field name="f_2" rank="0">
 
449
          <diagnostic>
 
450
            <algorithm name="Internal" material_phase_support="multiple"/>
 
451
            <mesh name="VelocityMesh"/>
 
452
            <output/>
 
453
            <stat>
 
454
              <exclude_from_stat/>
 
455
            </stat>
 
456
            <convergence>
 
457
              <include_in_convergence/>
 
458
            </convergence>
 
459
            <detectors>
 
460
              <include_in_detectors/>
 
461
            </detectors>
 
462
            <steady_state>
 
463
              <exclude_from_steady_state/>
 
464
            </steady_state>
 
465
          </diagnostic>
 
466
        </scalar_field>
 
467
        <scalar_field name="f_mu" rank="0">
 
468
          <diagnostic>
 
469
            <algorithm name="Internal" material_phase_support="multiple"/>
 
470
            <mesh name="VelocityMesh"/>
 
471
            <output/>
 
472
            <stat>
 
473
              <exclude_from_stat/>
 
474
            </stat>
 
475
            <convergence>
 
476
              <include_in_convergence/>
 
477
            </convergence>
 
478
            <detectors>
 
479
              <include_in_detectors/>
 
480
            </detectors>
 
481
            <steady_state>
 
482
              <exclude_from_steady_state/>
 
483
            </steady_state>
 
484
          </diagnostic>
 
485
        </scalar_field>
 
486
        <max_damping_value>
 
487
          <real_value rank="0">10.0</real_value>
 
488
        </max_damping_value>
 
489
        <C_mu>
 
490
          <real_value rank="0">1.0</real_value>
 
491
        </C_mu>
 
492
        <C_eps_1>
 
493
          <real_value rank="0">1.0</real_value>
 
494
        </C_eps_1>
 
495
        <C_eps_2>
 
496
          <real_value rank="0">1.0</real_value>
 
497
        </C_eps_2>
 
498
        <sigma_k>
 
499
          <real_value rank="0">1.0</real_value>
 
500
        </sigma_k>
 
501
        <sigma_eps>
 
502
          <real_value rank="0">1.0</real_value>
 
503
        </sigma_eps>
 
504
        <sigma_p>
 
505
          <real_value rank="0">1.0</real_value>
 
506
        </sigma_p>
 
507
        <time_discretisation>
 
508
          <theta>
 
509
            <real_value rank="0">0.5</real_value>
 
510
          </theta>
 
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>
 
517
        <mass_terms>
 
518
          <use_consistent_mass_matrix>
 
519
            <solver>
 
520
              <iterative_method name="cg"/>
 
521
              <preconditioner name="sor"/>
 
522
              <relative_error>
 
523
                <real_value rank="0">1.0e-10</real_value>
 
524
              </relative_error>
 
525
              <max_iterations>
 
526
                <integer_value rank="0">1000</integer_value>
 
527
              </max_iterations>
 
528
              <never_ignore_solver_failures/>
 
529
              <diagnostics>
 
530
                <monitors/>
 
531
              </diagnostics>
 
532
            </solver>
 
533
          </use_consistent_mass_matrix>
 
534
        </mass_terms>
 
535
        <debugging_options>
 
536
          <source_term_output_fields>
 
537
            <scalar_field name="TurbulentKineticEnergy_production_term" rank="0">
 
538
              <diagnostic>
 
539
                <algorithm name="Internal" material_phase_support="multiple"/>
 
540
                <mesh name="VelocityMesh"/>
 
541
                <output/>
 
542
                <stat>
 
543
                  <exclude_from_stat/>
 
544
                </stat>
 
545
                <convergence>
 
546
                  <include_in_convergence/>
 
547
                </convergence>
 
548
                <detectors>
 
549
                  <include_in_detectors/>
 
550
                </detectors>
 
551
                <steady_state>
 
552
                  <exclude_from_steady_state/>
 
553
                </steady_state>
 
554
              </diagnostic>
 
555
            </scalar_field>
 
556
            <scalar_field name="TurbulentKineticEnergy_destruction_term" rank="0">
 
557
              <diagnostic>
 
558
                <algorithm name="Internal" material_phase_support="multiple"/>
 
559
                <mesh name="VelocityMesh"/>
 
560
                <output/>
 
561
                <stat>
 
562
                  <exclude_from_stat/>
 
563
                </stat>
 
564
                <convergence>
 
565
                  <include_in_convergence/>
 
566
                </convergence>
 
567
                <detectors>
 
568
                  <include_in_detectors/>
 
569
                </detectors>
 
570
                <steady_state>
 
571
                  <exclude_from_steady_state/>
 
572
                </steady_state>
 
573
              </diagnostic>
 
574
            </scalar_field>
 
575
            <scalar_field name="TurbulentKineticEnergy_buoyancy_term" rank="0">
 
576
              <diagnostic>
 
577
                <algorithm name="Internal" material_phase_support="multiple"/>
 
578
                <mesh name="VelocityMesh"/>
 
579
                <output/>
 
580
                <stat>
 
581
                  <exclude_from_stat/>
 
582
                </stat>
 
583
                <convergence>
 
584
                  <include_in_convergence/>
 
585
                </convergence>
 
586
                <detectors>
 
587
                  <include_in_detectors/>
 
588
                </detectors>
 
589
                <steady_state>
 
590
                  <exclude_from_steady_state/>
 
591
                </steady_state>
 
592
              </diagnostic>
 
593
            </scalar_field>
 
594
            <scalar_field name="TurbulentDissipation_production_term" rank="0">
 
595
              <diagnostic>
 
596
                <algorithm name="Internal" material_phase_support="multiple"/>
 
597
                <mesh name="VelocityMesh"/>
 
598
                <output/>
 
599
                <stat>
 
600
                  <exclude_from_stat/>
 
601
                </stat>
 
602
                <convergence>
 
603
                  <include_in_convergence/>
 
604
                </convergence>
 
605
                <detectors>
 
606
                  <include_in_detectors/>
 
607
                </detectors>
 
608
                <steady_state>
 
609
                  <exclude_from_steady_state/>
 
610
                </steady_state>
 
611
              </diagnostic>
 
612
            </scalar_field>
 
613
            <scalar_field name="TurbulentDissipation_destruction_term" rank="0">
 
614
              <diagnostic>
 
615
                <algorithm name="Internal" material_phase_support="multiple"/>
 
616
                <mesh name="VelocityMesh"/>
 
617
                <output/>
 
618
                <stat>
 
619
                  <exclude_from_stat/>
 
620
                </stat>
 
621
                <convergence>
 
622
                  <include_in_convergence/>
 
623
                </convergence>
 
624
                <detectors>
 
625
                  <include_in_detectors/>
 
626
                </detectors>
 
627
                <steady_state>
 
628
                  <exclude_from_steady_state/>
 
629
                </steady_state>
 
630
              </diagnostic>
 
631
            </scalar_field>
 
632
            <scalar_field name="TurbulentDissipation_buoyancy_term" rank="0">
 
633
              <diagnostic>
 
634
                <algorithm name="Internal" material_phase_support="multiple"/>
 
635
                <mesh name="VelocityMesh"/>
 
636
                <output/>
 
637
                <stat>
 
638
                  <exclude_from_stat/>
 
639
                </stat>
 
640
                <convergence>
 
641
                  <include_in_convergence/>
 
642
                </convergence>
 
643
                <detectors>
 
644
                  <include_in_detectors/>
 
645
                </detectors>
 
646
                <steady_state>
 
647
                  <exclude_from_steady_state/>
 
648
                </steady_state>
 
649
              </diagnostic>
 
650
            </scalar_field>
 
651
          </source_term_output_fields>
 
652
          <prescribed_source_terms>
 
653
            <scalar_field name="TurbulentKineticEnergyPrescribedSource" rank="0">
 
654
              <prescribed>
 
655
                <mesh name="VelocityMesh"/>
 
656
                <value name="WholeMesh">
 
657
                  <python>
 
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>
 
661
                  </python>
 
662
                </value>
 
663
                <output/>
 
664
                <stat>
 
665
                  <exclude_from_stat/>
 
666
                </stat>
 
667
                <detectors>
 
668
                  <exclude_from_detectors/>
 
669
                </detectors>
 
670
              </prescribed>
 
671
            </scalar_field>
 
672
            <scalar_field name="TurbulentDissipationPrescribedSource" rank="0">
 
673
              <prescribed>
 
674
                <mesh name="VelocityMesh"/>
 
675
                <value name="WholeMesh">
 
676
                  <python>
 
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>
 
680
                  </python>
 
681
                </value>
 
682
                <output/>
 
683
                <stat>
 
684
                  <exclude_from_stat/>
 
685
                </stat>
 
686
                <detectors>
 
687
                  <exclude_from_detectors/>
 
688
                </detectors>
 
689
              </prescribed>
 
690
            </scalar_field>
 
691
          </prescribed_source_terms>
 
692
        </debugging_options>
 
693
      </k-epsilon>
 
694
    </subgridscale_parameterisations>
 
695
    <scalar_field name="Pressure" rank="0">
 
696
      <prognostic>
 
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>
 
706
        <scheme>
 
707
          <poisson_pressure_solution>
 
708
            <string_value lines="1">only first timestep</string_value>
 
709
          </poisson_pressure_solution>
 
710
          <use_projection_method/>
 
711
        </scheme>
 
712
        <solver>
 
713
          <iterative_method name="cg"/>
 
714
          <preconditioner name="sor"/>
 
715
          <relative_error>
 
716
            <real_value rank="0">1.0e-6</real_value>
 
717
          </relative_error>
 
718
          <absolute_error>
 
719
            <real_value rank="0">1e-15</real_value>
 
720
          </absolute_error>
 
721
          <max_iterations>
 
722
            <integer_value rank="0">1000</integer_value>
 
723
          </max_iterations>
 
724
          <never_ignore_solver_failures/>
 
725
          <diagnostics>
 
726
            <monitors/>
 
727
          </diagnostics>
 
728
        </solver>
 
729
        <output>
 
730
          <include_previous_time_step/>
 
731
        </output>
 
732
        <stat>
 
733
          <exclude_from_stat/>
 
734
        </stat>
 
735
        <convergence>
 
736
          <include_in_convergence/>
 
737
        </convergence>
 
738
        <detectors>
 
739
          <exclude_from_detectors/>
 
740
        </detectors>
 
741
        <steady_state>
 
742
          <exclude_from_steady_state/>
 
743
        </steady_state>
 
744
        <consistent_interpolation/>
 
745
      </prognostic>
 
746
    </scalar_field>
 
747
    <scalar_field name="Density" rank="0">
 
748
      <diagnostic>
 
749
        <algorithm name="Internal" material_phase_support="multiple"/>
 
750
        <mesh name="VelocityMesh"/>
 
751
        <output/>
 
752
        <stat>
 
753
          <exclude_from_stat/>
 
754
        </stat>
 
755
        <convergence>
 
756
          <include_in_convergence/>
 
757
        </convergence>
 
758
        <detectors>
 
759
          <include_in_detectors/>
 
760
        </detectors>
 
761
        <steady_state>
 
762
          <exclude_from_steady_state/>
 
763
        </steady_state>
 
764
      </diagnostic>
 
765
    </scalar_field>
 
766
    <vector_field name="Velocity" rank="1">
 
767
      <prognostic>
 
768
        <mesh name="VelocityMesh"/>
 
769
        <equation name="Boussinesq"/>
 
770
        <spatial_discretisation>
 
771
          <continuous_galerkin>
 
772
            <stabilisation>
 
773
              <no_stabilisation/>
 
774
            </stabilisation>
 
775
            <mass_terms>
 
776
              <lump_mass_matrix>
 
777
                <use_submesh/>
 
778
              </lump_mass_matrix>
 
779
            </mass_terms>
 
780
            <advection_terms/>
 
781
            <stress_terms>
 
782
              <partial_stress_form/>
 
783
            </stress_terms>
 
784
          </continuous_galerkin>
 
785
          <conservative_advection>
 
786
            <real_value rank="0">1.0</real_value>
 
787
          </conservative_advection>
 
788
        </spatial_discretisation>
 
789
        <temporal_discretisation>
 
790
          <theta>
 
791
            <real_value rank="0">0.5</real_value>
 
792
          </theta>
 
793
          <relaxation>
 
794
            <real_value rank="0">0.5</real_value>
 
795
          </relaxation>
 
796
        </temporal_discretisation>
 
797
        <solver>
 
798
          <iterative_method name="gmres">
 
799
            <restart>
 
800
              <integer_value rank="0">30</integer_value>
 
801
            </restart>
 
802
          </iterative_method>
 
803
          <preconditioner name="sor"/>
 
804
          <relative_error>
 
805
            <real_value rank="0">1e-6</real_value>
 
806
          </relative_error>
 
807
          <absolute_error>
 
808
            <real_value rank="0">1e-15</real_value>
 
809
          </absolute_error>
 
810
          <max_iterations>
 
811
            <integer_value rank="0">1000</integer_value>
 
812
          </max_iterations>
 
813
          <never_ignore_solver_failures/>
 
814
          <diagnostics>
 
815
            <monitors/>
 
816
          </diagnostics>
 
817
        </solver>
 
818
        <initial_condition name="WholeMesh">
 
819
          <python>
 
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>
 
823
          </python>
 
824
        </initial_condition>
 
825
        <boundary_conditions name="all_sides">
 
826
          <surface_ids>
 
827
            <integer_value shape="1" rank="1">1</integer_value>
 
828
          </surface_ids>
 
829
          <type name="dirichlet">
 
830
            <align_bc_with_cartesian>
 
831
              <x_component>
 
832
                <python>
 
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>
 
836
                </python>
 
837
              </x_component>
 
838
              <y_component>
 
839
                <python>
 
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>
 
843
                </python>
 
844
              </y_component>
 
845
            </align_bc_with_cartesian>
 
846
          </type>
 
847
        </boundary_conditions>
 
848
        <tensor_field name="Viscosity" rank="2">
 
849
          <diagnostic>
 
850
            <algorithm name="Internal" material_phase_support="multiple"/>
 
851
            <output/>
 
852
            <stat>
 
853
              <exclude_from_stat/>
 
854
            </stat>
 
855
          </diagnostic>
 
856
        </tensor_field>
 
857
        <vector_field name="Source" rank="1">
 
858
          <prescribed>
 
859
            <value name="WholeMesh">
 
860
              <python>
 
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>
 
864
              </python>
 
865
            </value>
 
866
            <output/>
 
867
            <stat>
 
868
              <exclude_from_stat/>
 
869
            </stat>
 
870
            <detectors>
 
871
              <exclude_from_detectors/>
 
872
            </detectors>
 
873
          </prescribed>
 
874
        </vector_field>
 
875
        <output/>
 
876
        <stat>
 
877
          <exclude_from_stat/>
 
878
          <previous_time_step>
 
879
            <exclude_from_stat/>
 
880
          </previous_time_step>
 
881
          <nonlinear_field>
 
882
            <exclude_from_stat/>
 
883
          </nonlinear_field>
 
884
        </stat>
 
885
        <convergence>
 
886
          <include_in_convergence/>
 
887
        </convergence>
 
888
        <detectors>
 
889
          <include_in_detectors/>
 
890
        </detectors>
 
891
        <steady_state>
 
892
          <exclude_from_steady_state/>
 
893
        </steady_state>
 
894
        <consistent_interpolation/>
 
895
      </prognostic>
 
896
    </vector_field>
 
897
    <scalar_field name="CFLNumber" rank="0">
 
898
      <diagnostic>
 
899
        <algorithm name="Internal" material_phase_support="multiple"/>
 
900
        <mesh name="VelocityMesh"/>
 
901
        <output/>
 
902
        <stat>
 
903
          <exclude_from_stat/>
 
904
        </stat>
 
905
        <convergence>
 
906
          <include_in_convergence/>
 
907
        </convergence>
 
908
        <detectors>
 
909
          <include_in_detectors/>
 
910
        </detectors>
 
911
        <steady_state>
 
912
          <exclude_from_steady_state/>
 
913
        </steady_state>
 
914
      </diagnostic>
 
915
    </scalar_field>
 
916
    <scalar_field name="Temperature" rank="0">
 
917
      <prognostic>
 
918
        <mesh name="VelocityMesh"/>
 
919
        <equation name="AdvectionDiffusion"/>
 
920
        <spatial_discretisation>
 
921
          <continuous_galerkin>
 
922
            <stabilisation>
 
923
              <no_stabilisation/>
 
924
            </stabilisation>
 
925
            <advection_terms/>
 
926
            <mass_terms/>
 
927
          </continuous_galerkin>
 
928
          <conservative_advection>
 
929
            <real_value rank="0">1.0</real_value>
 
930
          </conservative_advection>
 
931
        </spatial_discretisation>
 
932
        <temporal_discretisation>
 
933
          <theta>
 
934
            <real_value rank="0">0.5</real_value>
 
935
          </theta>
 
936
        </temporal_discretisation>
 
937
        <solver>
 
938
          <iterative_method name="gmres">
 
939
            <restart>
 
940
              <integer_value rank="0">30</integer_value>
 
941
            </restart>
 
942
          </iterative_method>
 
943
          <preconditioner name="ilu"/>
 
944
          <relative_error>
 
945
            <real_value rank="0">1.0e-6</real_value>
 
946
          </relative_error>
 
947
          <absolute_error>
 
948
            <real_value rank="0">1e-15</real_value>
 
949
          </absolute_error>
 
950
          <max_iterations>
 
951
            <integer_value rank="0">1000</integer_value>
 
952
          </max_iterations>
 
953
          <never_ignore_solver_failures/>
 
954
          <diagnostics>
 
955
            <monitors/>
 
956
          </diagnostics>
 
957
        </solver>
 
958
        <initial_condition name="WholeMesh">
 
959
          <python>
 
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>
 
963
          </python>
 
964
        </initial_condition>
 
965
        <boundary_conditions name="all_sides">
 
966
          <surface_ids>
 
967
            <integer_value shape="1" rank="1">1</integer_value>
 
968
          </surface_ids>
 
969
          <type name="dirichlet">
 
970
            <python>
 
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>
 
974
            </python>
 
975
          </type>
 
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">
 
983
          <diagnostic>
 
984
            <algorithm name="Internal" material_phase_support="multiple"/>
 
985
            <output/>
 
986
            <stat>
 
987
              <exclude_from_stat/>
 
988
            </stat>
 
989
          </diagnostic>
 
990
        </tensor_field>
 
991
        <scalar_field name="Source" rank="0">
 
992
          <prescribed>
 
993
            <value name="WholeMesh">
 
994
              <python>
 
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>
 
998
              </python>
 
999
            </value>
 
1000
            <output/>
 
1001
            <stat>
 
1002
              <exclude_from_stat/>
 
1003
            </stat>
 
1004
            <detectors>
 
1005
              <exclude_from_detectors/>
 
1006
            </detectors>
 
1007
          </prescribed>
 
1008
        </scalar_field>
 
1009
        <output/>
 
1010
        <stat>
 
1011
          <exclude_from_stat/>
 
1012
        </stat>
 
1013
        <convergence>
 
1014
          <include_in_convergence/>
 
1015
        </convergence>
 
1016
        <detectors>
 
1017
          <include_in_detectors/>
 
1018
        </detectors>
 
1019
        <steady_state>
 
1020
          <exclude_from_steady_state/>
 
1021
        </steady_state>
 
1022
        <consistent_interpolation/>
 
1023
      </prognostic>
 
1024
    </scalar_field>
 
1025
    <scalar_field name="TemperatureAnalytical" rank="0">
 
1026
      <prescribed>
 
1027
        <mesh name="ErrorMesh"/>
 
1028
        <value name="WholeMesh">
 
1029
          <python>
 
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>
 
1033
          </python>
 
1034
        </value>
 
1035
        <output/>
 
1036
        <stat>
 
1037
          <exclude_from_stat/>
 
1038
        </stat>
 
1039
        <detectors>
 
1040
          <exclude_from_detectors/>
 
1041
        </detectors>
 
1042
      </prescribed>
 
1043
    </scalar_field>
 
1044
    <scalar_field name="TemperatureError" rank="0">
 
1045
      <diagnostic>
 
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/>
 
1048
        </algorithm>
 
1049
        <mesh name="ErrorMesh"/>
 
1050
        <output/>
 
1051
        <stat/>
 
1052
        <convergence>
 
1053
          <include_in_convergence/>
 
1054
        </convergence>
 
1055
        <detectors>
 
1056
          <include_in_detectors/>
 
1057
        </detectors>
 
1058
        <steady_state>
 
1059
          <include_in_steady_state/>
 
1060
        </steady_state>
 
1061
      </diagnostic>
 
1062
    </scalar_field>
 
1063
    <scalar_field name="TemperatureProjection" rank="0">
 
1064
      <diagnostic>
 
1065
        <algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="Temperature">
 
1066
          <solver>
 
1067
            <iterative_method name="cg"/>
 
1068
            <preconditioner name="sor"/>
 
1069
            <relative_error>
 
1070
              <real_value rank="0">1e-10</real_value>
 
1071
            </relative_error>
 
1072
            <max_iterations>
 
1073
              <integer_value rank="0">1000</integer_value>
 
1074
            </max_iterations>
 
1075
            <never_ignore_solver_failures/>
 
1076
            <diagnostics>
 
1077
              <monitors/>
 
1078
            </diagnostics>
 
1079
          </solver>
 
1080
        </algorithm>
 
1081
        <mesh name="ErrorMesh"/>
 
1082
        <output/>
 
1083
        <stat>
 
1084
          <exclude_from_stat/>
 
1085
        </stat>
 
1086
        <convergence>
 
1087
          <include_in_convergence/>
 
1088
        </convergence>
 
1089
        <detectors>
 
1090
          <include_in_detectors/>
 
1091
        </detectors>
 
1092
        <steady_state>
 
1093
          <exclude_from_steady_state/>
 
1094
        </steady_state>
 
1095
      </diagnostic>
 
1096
    </scalar_field>
 
1097
    <scalar_field name="PressureAnalytical" rank="0">
 
1098
      <prescribed>
 
1099
        <mesh name="ErrorMesh"/>
 
1100
        <value name="WholeMesh">
 
1101
          <python>
 
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>
 
1105
          </python>
 
1106
        </value>
 
1107
        <output/>
 
1108
        <stat>
 
1109
          <exclude_from_stat/>
 
1110
        </stat>
 
1111
        <detectors>
 
1112
          <exclude_from_detectors/>
 
1113
        </detectors>
 
1114
      </prescribed>
 
1115
    </scalar_field>
 
1116
    <scalar_field name="PressureProjection" rank="0">
 
1117
      <diagnostic>
 
1118
        <algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="Pressure">
 
1119
          <solver>
 
1120
            <iterative_method name="cg"/>
 
1121
            <preconditioner name="sor"/>
 
1122
            <relative_error>
 
1123
              <real_value rank="0">1e-10</real_value>
 
1124
            </relative_error>
 
1125
            <max_iterations>
 
1126
              <integer_value rank="0">1000</integer_value>
 
1127
            </max_iterations>
 
1128
            <never_ignore_solver_failures/>
 
1129
            <diagnostics>
 
1130
              <monitors/>
 
1131
            </diagnostics>
 
1132
          </solver>
 
1133
        </algorithm>
 
1134
        <mesh name="ErrorMesh"/>
 
1135
        <output/>
 
1136
        <stat>
 
1137
          <exclude_from_stat/>
 
1138
        </stat>
 
1139
        <convergence>
 
1140
          <include_in_convergence/>
 
1141
        </convergence>
 
1142
        <detectors>
 
1143
          <include_in_detectors/>
 
1144
        </detectors>
 
1145
        <steady_state>
 
1146
          <exclude_from_steady_state/>
 
1147
        </steady_state>
 
1148
      </diagnostic>
 
1149
    </scalar_field>
 
1150
    <scalar_field name="PressureError" rank="0">
 
1151
      <diagnostic>
 
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/>
 
1154
        </algorithm>
 
1155
        <mesh name="ErrorMesh"/>
 
1156
        <output/>
 
1157
        <stat/>
 
1158
        <convergence>
 
1159
          <include_in_convergence/>
 
1160
        </convergence>
 
1161
        <detectors>
 
1162
          <include_in_detectors/>
 
1163
        </detectors>
 
1164
        <steady_state>
 
1165
          <include_in_steady_state/>
 
1166
        </steady_state>
 
1167
      </diagnostic>
 
1168
    </scalar_field>
 
1169
    <scalar_field name="TurbulentKineticEnergy_production_termCopy" rank="0">
 
1170
      <diagnostic>
 
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"]
 
1173
 
 
1174
for n in range(field.node_count):
 
1175
        field.set(n,E.node_val(n))</string_value>
 
1176
        </algorithm>
 
1177
        <mesh name="VelocityMesh"/>
 
1178
        <output/>
 
1179
        <stat>
 
1180
          <exclude_from_stat/>
 
1181
        </stat>
 
1182
        <convergence>
 
1183
          <include_in_convergence/>
 
1184
        </convergence>
 
1185
        <detectors>
 
1186
          <include_in_detectors/>
 
1187
        </detectors>
 
1188
        <steady_state>
 
1189
          <exclude_from_steady_state/>
 
1190
        </steady_state>
 
1191
      </diagnostic>
 
1192
    </scalar_field>
 
1193
    <scalar_field name="TurbulentKineticEnergy_production_termAnalytical" rank="0">
 
1194
      <prescribed>
 
1195
        <mesh name="ErrorMesh"/>
 
1196
        <value name="WholeMesh">
 
1197
          <python>
 
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>
 
1201
          </python>
 
1202
        </value>
 
1203
        <output/>
 
1204
        <stat>
 
1205
          <exclude_from_stat/>
 
1206
        </stat>
 
1207
        <detectors>
 
1208
          <exclude_from_detectors/>
 
1209
        </detectors>
 
1210
      </prescribed>
 
1211
    </scalar_field>
 
1212
    <scalar_field name="TurbulentKineticEnergy_production_termProjection" rank="0">
 
1213
      <diagnostic>
 
1214
        <algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentKineticEnergy_production_termCopy">
 
1215
          <solver>
 
1216
            <iterative_method name="cg"/>
 
1217
            <preconditioner name="sor"/>
 
1218
            <relative_error>
 
1219
              <real_value rank="0">1e-10</real_value>
 
1220
            </relative_error>
 
1221
            <max_iterations>
 
1222
              <integer_value rank="0">1000</integer_value>
 
1223
            </max_iterations>
 
1224
            <never_ignore_solver_failures/>
 
1225
            <diagnostics>
 
1226
              <monitors/>
 
1227
            </diagnostics>
 
1228
          </solver>
 
1229
        </algorithm>
 
1230
        <mesh name="ErrorMesh"/>
 
1231
        <output/>
 
1232
        <stat>
 
1233
          <exclude_from_stat/>
 
1234
        </stat>
 
1235
        <convergence>
 
1236
          <include_in_convergence/>
 
1237
        </convergence>
 
1238
        <detectors>
 
1239
          <include_in_detectors/>
 
1240
        </detectors>
 
1241
        <steady_state>
 
1242
          <exclude_from_steady_state/>
 
1243
        </steady_state>
 
1244
      </diagnostic>
 
1245
    </scalar_field>
 
1246
    <scalar_field name="TurbulentKineticEnergy_production_termError" rank="0">
 
1247
      <diagnostic>
 
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/>
 
1250
        </algorithm>
 
1251
        <mesh name="ErrorMesh"/>
 
1252
        <output/>
 
1253
        <stat/>
 
1254
        <convergence>
 
1255
          <include_in_convergence/>
 
1256
        </convergence>
 
1257
        <detectors>
 
1258
          <include_in_detectors/>
 
1259
        </detectors>
 
1260
        <steady_state>
 
1261
          <include_in_steady_state/>
 
1262
        </steady_state>
 
1263
      </diagnostic>
 
1264
    </scalar_field>
 
1265
    <scalar_field name="TurbulentKineticEnergy_destruction_termCopy" rank="0">
 
1266
      <diagnostic>
 
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"]
 
1269
 
 
1270
for n in range(field.node_count):
 
1271
        field.set(n,E.node_val(n))</string_value>
 
1272
        </algorithm>
 
1273
        <mesh name="VelocityMesh"/>
 
1274
        <output/>
 
1275
        <stat>
 
1276
          <exclude_from_stat/>
 
1277
        </stat>
 
1278
        <convergence>
 
1279
          <include_in_convergence/>
 
1280
        </convergence>
 
1281
        <detectors>
 
1282
          <include_in_detectors/>
 
1283
        </detectors>
 
1284
        <steady_state>
 
1285
          <exclude_from_steady_state/>
 
1286
        </steady_state>
 
1287
      </diagnostic>
 
1288
    </scalar_field>
 
1289
    <scalar_field name="TurbulentKineticEnergy_destruction_termAnalytical" rank="0">
 
1290
      <prescribed>
 
1291
        <mesh name="ErrorMesh"/>
 
1292
        <value name="WholeMesh">
 
1293
          <python>
 
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>
 
1297
          </python>
 
1298
        </value>
 
1299
        <output/>
 
1300
        <stat>
 
1301
          <exclude_from_stat/>
 
1302
        </stat>
 
1303
        <detectors>
 
1304
          <exclude_from_detectors/>
 
1305
        </detectors>
 
1306
      </prescribed>
 
1307
    </scalar_field>
 
1308
    <scalar_field name="TurbulentKineticEnergy_destruction_termProjection" rank="0">
 
1309
      <diagnostic>
 
1310
        <algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentKineticEnergy_destruction_termCopy">
 
1311
          <solver>
 
1312
            <iterative_method name="cg"/>
 
1313
            <preconditioner name="sor"/>
 
1314
            <relative_error>
 
1315
              <real_value rank="0">1e-10</real_value>
 
1316
            </relative_error>
 
1317
            <max_iterations>
 
1318
              <integer_value rank="0">1000</integer_value>
 
1319
            </max_iterations>
 
1320
            <never_ignore_solver_failures/>
 
1321
            <diagnostics>
 
1322
              <monitors/>
 
1323
            </diagnostics>
 
1324
          </solver>
 
1325
        </algorithm>
 
1326
        <mesh name="ErrorMesh"/>
 
1327
        <output/>
 
1328
        <stat>
 
1329
          <exclude_from_stat/>
 
1330
        </stat>
 
1331
        <convergence>
 
1332
          <include_in_convergence/>
 
1333
        </convergence>
 
1334
        <detectors>
 
1335
          <include_in_detectors/>
 
1336
        </detectors>
 
1337
        <steady_state>
 
1338
          <exclude_from_steady_state/>
 
1339
        </steady_state>
 
1340
      </diagnostic>
 
1341
    </scalar_field>
 
1342
    <scalar_field name="TurbulentKineticEnergy_destruction_termError" rank="0">
 
1343
      <diagnostic>
 
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/>
 
1346
        </algorithm>
 
1347
        <mesh name="ErrorMesh"/>
 
1348
        <output/>
 
1349
        <stat/>
 
1350
        <convergence>
 
1351
          <include_in_convergence/>
 
1352
        </convergence>
 
1353
        <detectors>
 
1354
          <include_in_detectors/>
 
1355
        </detectors>
 
1356
        <steady_state>
 
1357
          <include_in_steady_state/>
 
1358
        </steady_state>
 
1359
      </diagnostic>
 
1360
    </scalar_field>
 
1361
    <scalar_field name="TurbulentKineticEnergy_buoyancy_termCopy" rank="0">
 
1362
      <diagnostic>
 
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"]
 
1365
 
 
1366
for n in range(field.node_count):
 
1367
        field.set(n,E.node_val(n))</string_value>
 
1368
        </algorithm>
 
1369
        <mesh name="VelocityMesh"/>
 
1370
        <output/>
 
1371
        <stat>
 
1372
          <exclude_from_stat/>
 
1373
        </stat>
 
1374
        <convergence>
 
1375
          <include_in_convergence/>
 
1376
        </convergence>
 
1377
        <detectors>
 
1378
          <include_in_detectors/>
 
1379
        </detectors>
 
1380
        <steady_state>
 
1381
          <exclude_from_steady_state/>
 
1382
        </steady_state>
 
1383
      </diagnostic>
 
1384
    </scalar_field>
 
1385
    <scalar_field name="TurbulentKineticEnergy_buoyancy_termAnalytical" rank="0">
 
1386
      <prescribed>
 
1387
        <mesh name="ErrorMesh"/>
 
1388
        <value name="WholeMesh">
 
1389
          <python>
 
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>
 
1393
          </python>
 
1394
        </value>
 
1395
        <output/>
 
1396
        <stat>
 
1397
          <exclude_from_stat/>
 
1398
        </stat>
 
1399
        <detectors>
 
1400
          <exclude_from_detectors/>
 
1401
        </detectors>
 
1402
      </prescribed>
 
1403
    </scalar_field>
 
1404
    <scalar_field name="TurbulentKineticEnergy_buoyancy_termProjection" rank="0">
 
1405
      <diagnostic>
 
1406
        <algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentKineticEnergy_buoyancy_termCopy">
 
1407
          <solver>
 
1408
            <iterative_method name="cg"/>
 
1409
            <preconditioner name="sor"/>
 
1410
            <relative_error>
 
1411
              <real_value rank="0">1e-10</real_value>
 
1412
            </relative_error>
 
1413
            <max_iterations>
 
1414
              <integer_value rank="0">1000</integer_value>
 
1415
            </max_iterations>
 
1416
            <never_ignore_solver_failures/>
 
1417
            <diagnostics>
 
1418
              <monitors/>
 
1419
            </diagnostics>
 
1420
          </solver>
 
1421
        </algorithm>
 
1422
        <mesh name="ErrorMesh"/>
 
1423
        <output/>
 
1424
        <stat>
 
1425
          <exclude_from_stat/>
 
1426
        </stat>
 
1427
        <convergence>
 
1428
          <include_in_convergence/>
 
1429
        </convergence>
 
1430
        <detectors>
 
1431
          <include_in_detectors/>
 
1432
        </detectors>
 
1433
        <steady_state>
 
1434
          <exclude_from_steady_state/>
 
1435
        </steady_state>
 
1436
      </diagnostic>
 
1437
    </scalar_field>
 
1438
    <scalar_field name="TurbulentKineticEnergy_buoyancy_termError" rank="0">
 
1439
      <diagnostic>
 
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/>
 
1442
        </algorithm>
 
1443
        <mesh name="ErrorMesh"/>
 
1444
        <output/>
 
1445
        <stat/>
 
1446
        <convergence>
 
1447
          <include_in_convergence/>
 
1448
        </convergence>
 
1449
        <detectors>
 
1450
          <include_in_detectors/>
 
1451
        </detectors>
 
1452
        <steady_state>
 
1453
          <include_in_steady_state/>
 
1454
        </steady_state>
 
1455
      </diagnostic>
 
1456
    </scalar_field>
 
1457
    <scalar_field name="TurbulentKineticEnergyCopy" rank="0">
 
1458
      <diagnostic>
 
1459
        <algorithm name="scalar_python_diagnostic" material_phase_support="single">
 
1460
          <string_value lines="20" type="code" language="python">E=state.scalar_fields["TurbulentKineticEnergy"]
 
1461
 
 
1462
for n in range(field.node_count):
 
1463
        field.set(n,E.node_val(n))</string_value>
 
1464
        </algorithm>
 
1465
        <mesh name="VelocityMesh"/>
 
1466
        <output/>
 
1467
        <stat>
 
1468
          <exclude_from_stat/>
 
1469
        </stat>
 
1470
        <convergence>
 
1471
          <include_in_convergence/>
 
1472
        </convergence>
 
1473
        <detectors>
 
1474
          <exclude_from_detectors/>
 
1475
        </detectors>
 
1476
        <steady_state>
 
1477
          <exclude_from_steady_state/>
 
1478
        </steady_state>
 
1479
      </diagnostic>
 
1480
    </scalar_field>
 
1481
    <scalar_field name="TurbulentKineticEnergyAnalytical" rank="0">
 
1482
      <prescribed>
 
1483
        <mesh name="ErrorMesh"/>
 
1484
        <value name="WholeMesh">
 
1485
          <python>
 
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>
 
1489
          </python>
 
1490
        </value>
 
1491
        <output/>
 
1492
        <stat>
 
1493
          <exclude_from_stat/>
 
1494
        </stat>
 
1495
        <detectors>
 
1496
          <exclude_from_detectors/>
 
1497
        </detectors>
 
1498
      </prescribed>
 
1499
    </scalar_field>
 
1500
    <scalar_field name="TurbulentKineticEnergyProjection" rank="0">
 
1501
      <diagnostic>
 
1502
        <algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentKineticEnergyCopy">
 
1503
          <solver>
 
1504
            <iterative_method name="cg"/>
 
1505
            <preconditioner name="sor"/>
 
1506
            <relative_error>
 
1507
              <real_value rank="0">1e-10</real_value>
 
1508
            </relative_error>
 
1509
            <max_iterations>
 
1510
              <integer_value rank="0">1000</integer_value>
 
1511
            </max_iterations>
 
1512
            <never_ignore_solver_failures/>
 
1513
            <diagnostics>
 
1514
              <monitors/>
 
1515
            </diagnostics>
 
1516
          </solver>
 
1517
        </algorithm>
 
1518
        <mesh name="ErrorMesh"/>
 
1519
        <output/>
 
1520
        <stat>
 
1521
          <exclude_from_stat/>
 
1522
        </stat>
 
1523
        <convergence>
 
1524
          <include_in_convergence/>
 
1525
        </convergence>
 
1526
        <detectors>
 
1527
          <include_in_detectors/>
 
1528
        </detectors>
 
1529
        <steady_state>
 
1530
          <exclude_from_steady_state/>
 
1531
        </steady_state>
 
1532
      </diagnostic>
 
1533
    </scalar_field>
 
1534
    <scalar_field name="TurbulentKineticEnergyError" rank="0">
 
1535
      <diagnostic>
 
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/>
 
1538
        </algorithm>
 
1539
        <mesh name="ErrorMesh"/>
 
1540
        <output/>
 
1541
        <stat/>
 
1542
        <convergence>
 
1543
          <include_in_convergence/>
 
1544
        </convergence>
 
1545
        <detectors>
 
1546
          <include_in_detectors/>
 
1547
        </detectors>
 
1548
        <steady_state>
 
1549
          <include_in_steady_state/>
 
1550
        </steady_state>
 
1551
      </diagnostic>
 
1552
    </scalar_field>
 
1553
    <scalar_field name="TurbulentDissipation_production_termCopy" rank="0">
 
1554
      <diagnostic>
 
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"]
 
1557
 
 
1558
for n in range(field.node_count):
 
1559
        field.set(n,E.node_val(n))</string_value>
 
1560
        </algorithm>
 
1561
        <mesh name="VelocityMesh"/>
 
1562
        <output/>
 
1563
        <stat>
 
1564
          <exclude_from_stat/>
 
1565
        </stat>
 
1566
        <convergence>
 
1567
          <include_in_convergence/>
 
1568
        </convergence>
 
1569
        <detectors>
 
1570
          <include_in_detectors/>
 
1571
        </detectors>
 
1572
        <steady_state>
 
1573
          <exclude_from_steady_state/>
 
1574
        </steady_state>
 
1575
      </diagnostic>
 
1576
    </scalar_field>
 
1577
    <scalar_field name="TurbulentDissipation_production_termAnalytical" rank="0">
 
1578
      <prescribed>
 
1579
        <mesh name="ErrorMesh"/>
 
1580
        <value name="WholeMesh">
 
1581
          <python>
 
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>
 
1585
          </python>
 
1586
        </value>
 
1587
        <output/>
 
1588
        <stat>
 
1589
          <exclude_from_stat/>
 
1590
        </stat>
 
1591
        <detectors>
 
1592
          <exclude_from_detectors/>
 
1593
        </detectors>
 
1594
      </prescribed>
 
1595
    </scalar_field>
 
1596
    <scalar_field name="TurbulentDissipation_production_termProjection" rank="0">
 
1597
      <diagnostic>
 
1598
        <algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentDissipation_production_termCopy">
 
1599
          <solver>
 
1600
            <iterative_method name="cg"/>
 
1601
            <preconditioner name="sor"/>
 
1602
            <relative_error>
 
1603
              <real_value rank="0">1e-10</real_value>
 
1604
            </relative_error>
 
1605
            <max_iterations>
 
1606
              <integer_value rank="0">1000</integer_value>
 
1607
            </max_iterations>
 
1608
            <never_ignore_solver_failures/>
 
1609
            <diagnostics>
 
1610
              <monitors/>
 
1611
            </diagnostics>
 
1612
          </solver>
 
1613
        </algorithm>
 
1614
        <mesh name="ErrorMesh"/>
 
1615
        <output/>
 
1616
        <stat>
 
1617
          <exclude_from_stat/>
 
1618
        </stat>
 
1619
        <convergence>
 
1620
          <include_in_convergence/>
 
1621
        </convergence>
 
1622
        <detectors>
 
1623
          <include_in_detectors/>
 
1624
        </detectors>
 
1625
        <steady_state>
 
1626
          <exclude_from_steady_state/>
 
1627
        </steady_state>
 
1628
      </diagnostic>
 
1629
    </scalar_field>
 
1630
    <scalar_field name="TurbulentDissipation_production_termError" rank="0">
 
1631
      <diagnostic>
 
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/>
 
1634
        </algorithm>
 
1635
        <mesh name="ErrorMesh"/>
 
1636
        <output/>
 
1637
        <stat/>
 
1638
        <convergence>
 
1639
          <include_in_convergence/>
 
1640
        </convergence>
 
1641
        <detectors>
 
1642
          <include_in_detectors/>
 
1643
        </detectors>
 
1644
        <steady_state>
 
1645
          <include_in_steady_state/>
 
1646
        </steady_state>
 
1647
      </diagnostic>
 
1648
    </scalar_field>
 
1649
    <scalar_field name="TurbulentDissipation_destruction_termCopy" rank="0">
 
1650
      <diagnostic>
 
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"]
 
1653
 
 
1654
for n in range(field.node_count):
 
1655
        field.set(n,E.node_val(n))</string_value>
 
1656
        </algorithm>
 
1657
        <mesh name="VelocityMesh"/>
 
1658
        <output/>
 
1659
        <stat>
 
1660
          <exclude_from_stat/>
 
1661
        </stat>
 
1662
        <convergence>
 
1663
          <include_in_convergence/>
 
1664
        </convergence>
 
1665
        <detectors>
 
1666
          <include_in_detectors/>
 
1667
        </detectors>
 
1668
        <steady_state>
 
1669
          <exclude_from_steady_state/>
 
1670
        </steady_state>
 
1671
      </diagnostic>
 
1672
    </scalar_field>
 
1673
    <scalar_field name="TurbulentDissipation_destruction_termAnalytical" rank="0">
 
1674
      <prescribed>
 
1675
        <mesh name="ErrorMesh"/>
 
1676
        <value name="WholeMesh">
 
1677
          <python>
 
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>
 
1681
          </python>
 
1682
        </value>
 
1683
        <output/>
 
1684
        <stat>
 
1685
          <exclude_from_stat/>
 
1686
        </stat>
 
1687
        <detectors>
 
1688
          <exclude_from_detectors/>
 
1689
        </detectors>
 
1690
      </prescribed>
 
1691
    </scalar_field>
 
1692
    <scalar_field name="TurbulentDissipation_destruction_termProjection" rank="0">
 
1693
      <diagnostic>
 
1694
        <algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentDissipation_destruction_termCopy">
 
1695
          <solver>
 
1696
            <iterative_method name="cg"/>
 
1697
            <preconditioner name="sor"/>
 
1698
            <relative_error>
 
1699
              <real_value rank="0">1e-10</real_value>
 
1700
            </relative_error>
 
1701
            <max_iterations>
 
1702
              <integer_value rank="0">1000</integer_value>
 
1703
            </max_iterations>
 
1704
            <never_ignore_solver_failures/>
 
1705
            <diagnostics>
 
1706
              <monitors/>
 
1707
            </diagnostics>
 
1708
          </solver>
 
1709
        </algorithm>
 
1710
        <mesh name="ErrorMesh"/>
 
1711
        <output/>
 
1712
        <stat>
 
1713
          <exclude_from_stat/>
 
1714
        </stat>
 
1715
        <convergence>
 
1716
          <include_in_convergence/>
 
1717
        </convergence>
 
1718
        <detectors>
 
1719
          <include_in_detectors/>
 
1720
        </detectors>
 
1721
        <steady_state>
 
1722
          <exclude_from_steady_state/>
 
1723
        </steady_state>
 
1724
      </diagnostic>
 
1725
    </scalar_field>
 
1726
    <scalar_field name="TurbulentDissipation_destruction_termError" rank="0">
 
1727
      <diagnostic>
 
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/>
 
1730
        </algorithm>
 
1731
        <mesh name="ErrorMesh"/>
 
1732
        <output/>
 
1733
        <stat/>
 
1734
        <convergence>
 
1735
          <include_in_convergence/>
 
1736
        </convergence>
 
1737
        <detectors>
 
1738
          <include_in_detectors/>
 
1739
        </detectors>
 
1740
        <steady_state>
 
1741
          <include_in_steady_state/>
 
1742
        </steady_state>
 
1743
      </diagnostic>
 
1744
    </scalar_field>
 
1745
    <scalar_field name="TurbulentDissipation_buoyancy_termCopy" rank="0">
 
1746
      <diagnostic>
 
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"]
 
1749
 
 
1750
for n in range(field.node_count):
 
1751
        field.set(n,E.node_val(n))</string_value>
 
1752
        </algorithm>
 
1753
        <mesh name="VelocityMesh"/>
 
1754
        <output/>
 
1755
        <stat>
 
1756
          <exclude_from_stat/>
 
1757
        </stat>
 
1758
        <convergence>
 
1759
          <include_in_convergence/>
 
1760
        </convergence>
 
1761
        <detectors>
 
1762
          <include_in_detectors/>
 
1763
        </detectors>
 
1764
        <steady_state>
 
1765
          <exclude_from_steady_state/>
 
1766
        </steady_state>
 
1767
      </diagnostic>
 
1768
    </scalar_field>
 
1769
    <scalar_field name="TurbulentDissipation_buoyancy_termAnalytical" rank="0">
 
1770
      <prescribed>
 
1771
        <mesh name="ErrorMesh"/>
 
1772
        <value name="WholeMesh">
 
1773
          <python>
 
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>
 
1777
          </python>
 
1778
        </value>
 
1779
        <output/>
 
1780
        <stat>
 
1781
          <exclude_from_stat/>
 
1782
        </stat>
 
1783
        <detectors>
 
1784
          <exclude_from_detectors/>
 
1785
        </detectors>
 
1786
      </prescribed>
 
1787
    </scalar_field>
 
1788
    <scalar_field name="TurbulentDissipation_buoyancy_termProjection" rank="0">
 
1789
      <diagnostic>
 
1790
        <algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentDissipation_buoyancy_termCopy">
 
1791
          <solver>
 
1792
            <iterative_method name="cg"/>
 
1793
            <preconditioner name="sor"/>
 
1794
            <relative_error>
 
1795
              <real_value rank="0">1e-10</real_value>
 
1796
            </relative_error>
 
1797
            <max_iterations>
 
1798
              <integer_value rank="0">1000</integer_value>
 
1799
            </max_iterations>
 
1800
            <never_ignore_solver_failures/>
 
1801
            <diagnostics>
 
1802
              <monitors/>
 
1803
            </diagnostics>
 
1804
          </solver>
 
1805
        </algorithm>
 
1806
        <mesh name="ErrorMesh"/>
 
1807
        <output/>
 
1808
        <stat>
 
1809
          <exclude_from_stat/>
 
1810
        </stat>
 
1811
        <convergence>
 
1812
          <include_in_convergence/>
 
1813
        </convergence>
 
1814
        <detectors>
 
1815
          <include_in_detectors/>
 
1816
        </detectors>
 
1817
        <steady_state>
 
1818
          <exclude_from_steady_state/>
 
1819
        </steady_state>
 
1820
      </diagnostic>
 
1821
    </scalar_field>
 
1822
    <scalar_field name="TurbulentDissipation_buoyancy_termError" rank="0">
 
1823
      <diagnostic>
 
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/>
 
1826
        </algorithm>
 
1827
        <mesh name="ErrorMesh"/>
 
1828
        <output/>
 
1829
        <stat/>
 
1830
        <convergence>
 
1831
          <include_in_convergence/>
 
1832
        </convergence>
 
1833
        <detectors>
 
1834
          <include_in_detectors/>
 
1835
        </detectors>
 
1836
        <steady_state>
 
1837
          <include_in_steady_state/>
 
1838
        </steady_state>
 
1839
      </diagnostic>
 
1840
    </scalar_field>
 
1841
    <scalar_field name="TurbulentDissipationCopy" rank="0">
 
1842
      <diagnostic>
 
1843
        <algorithm name="scalar_python_diagnostic" material_phase_support="single">
 
1844
          <string_value lines="20" type="code" language="python">E=state.scalar_fields["TurbulentDissipation"]
 
1845
 
 
1846
for n in range(field.node_count):
 
1847
        field.set(n,E.node_val(n))</string_value>
 
1848
        </algorithm>
 
1849
        <mesh name="VelocityMesh"/>
 
1850
        <output/>
 
1851
        <stat>
 
1852
          <exclude_from_stat/>
 
1853
        </stat>
 
1854
        <convergence>
 
1855
          <include_in_convergence/>
 
1856
        </convergence>
 
1857
        <detectors>
 
1858
          <include_in_detectors/>
 
1859
        </detectors>
 
1860
        <steady_state>
 
1861
          <exclude_from_steady_state/>
 
1862
        </steady_state>
 
1863
      </diagnostic>
 
1864
    </scalar_field>
 
1865
    <scalar_field name="TurbulentDissipationAnalytical" rank="0">
 
1866
      <prescribed>
 
1867
        <mesh name="ErrorMesh"/>
 
1868
        <value name="WholeMesh">
 
1869
          <python>
 
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>
 
1873
          </python>
 
1874
        </value>
 
1875
        <output/>
 
1876
        <stat>
 
1877
          <exclude_from_stat/>
 
1878
        </stat>
 
1879
        <detectors>
 
1880
          <exclude_from_detectors/>
 
1881
        </detectors>
 
1882
      </prescribed>
 
1883
    </scalar_field>
 
1884
    <scalar_field name="TurbulentDissipationProjection" rank="0">
 
1885
      <diagnostic>
 
1886
        <algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentDissipationCopy">
 
1887
          <solver>
 
1888
            <iterative_method name="cg"/>
 
1889
            <preconditioner name="sor"/>
 
1890
            <relative_error>
 
1891
              <real_value rank="0">1e-10</real_value>
 
1892
            </relative_error>
 
1893
            <max_iterations>
 
1894
              <integer_value rank="0">1000</integer_value>
 
1895
            </max_iterations>
 
1896
            <never_ignore_solver_failures/>
 
1897
            <diagnostics>
 
1898
              <monitors/>
 
1899
            </diagnostics>
 
1900
          </solver>
 
1901
        </algorithm>
 
1902
        <mesh name="ErrorMesh"/>
 
1903
        <output/>
 
1904
        <stat>
 
1905
          <exclude_from_stat/>
 
1906
        </stat>
 
1907
        <convergence>
 
1908
          <include_in_convergence/>
 
1909
        </convergence>
 
1910
        <detectors>
 
1911
          <include_in_detectors/>
 
1912
        </detectors>
 
1913
        <steady_state>
 
1914
          <exclude_from_steady_state/>
 
1915
        </steady_state>
 
1916
      </diagnostic>
 
1917
    </scalar_field>
 
1918
    <scalar_field name="TurbulentDissipationError" rank="0">
 
1919
      <diagnostic>
 
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/>
 
1922
        </algorithm>
 
1923
        <mesh name="ErrorMesh"/>
 
1924
        <output/>
 
1925
        <stat/>
 
1926
        <convergence>
 
1927
          <include_in_convergence/>
 
1928
        </convergence>
 
1929
        <detectors>
 
1930
          <include_in_detectors/>
 
1931
        </detectors>
 
1932
        <steady_state>
 
1933
          <include_in_steady_state/>
 
1934
        </steady_state>
 
1935
      </diagnostic>
 
1936
    </scalar_field>
 
1937
    <scalar_field name="ScalarEddyViscosityCopy" rank="0">
 
1938
      <diagnostic>
 
1939
        <algorithm name="scalar_python_diagnostic" material_phase_support="single">
 
1940
          <string_value lines="20" type="code" language="python">E=state.scalar_fields["ScalarEddyViscosity"]
 
1941
 
 
1942
for n in range(field.node_count):
 
1943
        field.set(n,E.node_val(n))</string_value>
 
1944
        </algorithm>
 
1945
        <mesh name="VelocityMesh"/>
 
1946
        <output/>
 
1947
        <stat>
 
1948
          <exclude_from_stat/>
 
1949
        </stat>
 
1950
        <convergence>
 
1951
          <include_in_convergence/>
 
1952
        </convergence>
 
1953
        <detectors>
 
1954
          <include_in_detectors/>
 
1955
        </detectors>
 
1956
        <steady_state>
 
1957
          <exclude_from_steady_state/>
 
1958
        </steady_state>
 
1959
      </diagnostic>
 
1960
    </scalar_field>
 
1961
    <scalar_field name="ScalarEddyViscosityAnalytical" rank="0">
 
1962
      <prescribed>
 
1963
        <mesh name="ErrorMesh"/>
 
1964
        <value name="WholeMesh">
 
1965
          <python>
 
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>
 
1969
          </python>
 
1970
        </value>
 
1971
        <output/>
 
1972
        <stat>
 
1973
          <exclude_from_stat/>
 
1974
        </stat>
 
1975
        <detectors>
 
1976
          <exclude_from_detectors/>
 
1977
        </detectors>
 
1978
      </prescribed>
 
1979
    </scalar_field>
 
1980
    <scalar_field name="ScalarEddyViscosityProjection" rank="0">
 
1981
      <diagnostic>
 
1982
        <algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="ScalarEddyViscosityCopy">
 
1983
          <solver>
 
1984
            <iterative_method name="cg"/>
 
1985
            <preconditioner name="sor"/>
 
1986
            <relative_error>
 
1987
              <real_value rank="0">1e-10</real_value>
 
1988
            </relative_error>
 
1989
            <max_iterations>
 
1990
              <integer_value rank="0">1000</integer_value>
 
1991
            </max_iterations>
 
1992
            <never_ignore_solver_failures/>
 
1993
            <diagnostics>
 
1994
              <monitors/>
 
1995
            </diagnostics>
 
1996
          </solver>
 
1997
        </algorithm>
 
1998
        <mesh name="ErrorMesh"/>
 
1999
        <output/>
 
2000
        <stat>
 
2001
          <exclude_from_stat/>
 
2002
        </stat>
 
2003
        <convergence>
 
2004
          <include_in_convergence/>
 
2005
        </convergence>
 
2006
        <detectors>
 
2007
          <include_in_detectors/>
 
2008
        </detectors>
 
2009
        <steady_state>
 
2010
          <exclude_from_steady_state/>
 
2011
        </steady_state>
 
2012
      </diagnostic>
 
2013
    </scalar_field>
 
2014
    <scalar_field name="ScalarEddyViscosityError" rank="0">
 
2015
      <diagnostic>
 
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/>
 
2018
        </algorithm>
 
2019
        <mesh name="ErrorMesh"/>
 
2020
        <output/>
 
2021
        <stat/>
 
2022
        <convergence>
 
2023
          <include_in_convergence/>
 
2024
        </convergence>
 
2025
        <detectors>
 
2026
          <include_in_detectors/>
 
2027
        </detectors>
 
2028
        <steady_state>
 
2029
          <include_in_steady_state/>
 
2030
        </steady_state>
 
2031
      </diagnostic>
 
2032
    </scalar_field>
 
2033
    <vector_field name="VelocityAnalytical" rank="1">
 
2034
      <prescribed>
 
2035
        <mesh name="ErrorMesh"/>
 
2036
        <value name="WholeMesh">
 
2037
          <python>
 
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>
 
2041
          </python>
 
2042
        </value>
 
2043
        <output/>
 
2044
        <stat>
 
2045
          <include_in_stat/>
 
2046
        </stat>
 
2047
        <detectors>
 
2048
          <exclude_from_detectors/>
 
2049
        </detectors>
 
2050
      </prescribed>
 
2051
    </vector_field>
 
2052
    <vector_field name="VelocityProjection" rank="1">
 
2053
      <diagnostic>
 
2054
        <algorithm source_field_type="vector" material_phase_support="single" name="vector_galerkin_projection" source_field_name="Velocity">
 
2055
          <solver>
 
2056
            <iterative_method name="cg"/>
 
2057
            <preconditioner name="sor"/>
 
2058
            <relative_error>
 
2059
              <real_value rank="0">1e-10</real_value>
 
2060
            </relative_error>
 
2061
            <max_iterations>
 
2062
              <integer_value rank="0">1000</integer_value>
 
2063
            </max_iterations>
 
2064
            <never_ignore_solver_failures/>
 
2065
            <diagnostics>
 
2066
              <monitors/>
 
2067
            </diagnostics>
 
2068
          </solver>
 
2069
        </algorithm>
 
2070
        <mesh name="ErrorMesh"/>
 
2071
        <output/>
 
2072
        <stat>
 
2073
          <include_in_stat/>
 
2074
        </stat>
 
2075
        <convergence>
 
2076
          <include_in_convergence/>
 
2077
        </convergence>
 
2078
        <detectors>
 
2079
          <include_in_detectors/>
 
2080
        </detectors>
 
2081
        <steady_state>
 
2082
          <exclude_from_steady_state/>
 
2083
        </steady_state>
 
2084
      </diagnostic>
 
2085
    </vector_field>
 
2086
    <vector_field name="VelocityError" rank="1">
 
2087
      <diagnostic>
 
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/>
 
2090
        </algorithm>
 
2091
        <mesh name="ErrorMesh"/>
 
2092
        <output/>
 
2093
        <stat>
 
2094
          <include_in_stat/>
 
2095
        </stat>
 
2096
        <convergence>
 
2097
          <include_in_convergence/>
 
2098
        </convergence>
 
2099
        <detectors>
 
2100
          <include_in_detectors/>
 
2101
        </detectors>
 
2102
        <steady_state>
 
2103
          <include_in_steady_state/>
 
2104
        </steady_state>
 
2105
      </diagnostic>
 
2106
    </vector_field>
 
2107
  </material_phase>
 
2108
</fluidity_options>