~fluidity-core/fluidity/sea-ice-coupling

« back to all changes in this revision

Viewing changes to tests/mms_rans_p2p1_keps/MMS_X.flml

  • Committer: Simon Mouradian
  • Date: 2012-10-09 20:00:15 UTC
  • Revision ID: mouradian@gmail.com-20121009200015-7hztzrng2bkqgz1t
revert last trunk merge, something broke

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>