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

« back to all changes in this revision

Viewing changes to tests/mms_rans_p2p1_keps/alternative_flmls/MMS_X.flml.prescribed_velocity

  • 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
          <include_in_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="ErrorMesh">
 
35
      <from_mesh>
 
36
        <mesh name="CoordinateMesh"/>
 
37
        <mesh_shape>
 
38
          <polynomial_degree>
 
39
            <integer_value rank="0">4</integer_value>
 
40
          </polynomial_degree>
 
41
        </mesh_shape>
 
42
        <mesh_continuity>
 
43
          <string_value>continuous</string_value>
 
44
        </mesh_continuity>
 
45
        <stat>
 
46
          <exclude_from_stat/>
 
47
        </stat>
 
48
      </from_mesh>
 
49
    </mesh>
 
50
    <quadrature>
 
51
      <degree>
 
52
        <integer_value rank="0">8</integer_value>
 
53
      </degree>
 
54
    </quadrature>
 
55
  </geometry>
 
56
  <io>
 
57
    <dump_format>
 
58
      <string_value>vtk</string_value>
 
59
    </dump_format>
 
60
    <dump_period>
 
61
      <constant>
 
62
        <real_value rank="0">1000.0</real_value>
 
63
      </constant>
 
64
    </dump_period>
 
65
    <output_mesh name="VelocityMesh"/>
 
66
    <stat/>
 
67
  </io>
 
68
  <timestepping>
 
69
    <current_time>
 
70
      <real_value rank="0">0.0</real_value>
 
71
    </current_time>
 
72
    <timestep>
 
73
      <real_value rank="0">999.9</real_value>
 
74
      <comment>gives a max cfl number of approximately 0.1</comment>
 
75
    </timestep>
 
76
    <finish_time>
 
77
      <real_value rank="0">1000.0</real_value>
 
78
      <comment>10.0</comment>
 
79
    </finish_time>
 
80
    <steady_state>
 
81
      <tolerance>
 
82
        <real_value rank="0">1.E-6</real_value>
 
83
        <infinity_norm/>
 
84
      </tolerance>
 
85
    </steady_state>
 
86
  </timestepping>
 
87
  <physical_parameters>
 
88
    <gravity>
 
89
      <magnitude>
 
90
        <real_value rank="0">1.0</real_value>
 
91
      </magnitude>
 
92
      <vector_field name="GravityDirection" rank="1">
 
93
        <prescribed>
 
94
          <mesh name="CoordinateMesh"/>
 
95
          <value name="WholeMesh">
 
96
            <constant>
 
97
              <real_value shape="2" dim1="dim" rank="1">1.0 1.0</real_value>
 
98
            </constant>
 
99
          </value>
 
100
          <output/>
 
101
          <stat>
 
102
            <include_in_stat/>
 
103
          </stat>
 
104
          <detectors>
 
105
            <exclude_from_detectors/>
 
106
          </detectors>
 
107
        </prescribed>
 
108
      </vector_field>
 
109
    </gravity>
 
110
  </physical_parameters>
 
111
  <material_phase name="NS">
 
112
    <subgridscale_parameterisations>
 
113
      <k-epsilon>
 
114
        <scalar_field name="TurbulentKineticEnergy" rank="0">
 
115
          <prognostic>
 
116
            <mesh name="VelocityMesh"/>
 
117
            <equation name="AdvectionDiffusion"/>
 
118
            <spatial_discretisation>
 
119
              <continuous_galerkin>
 
120
                <stabilisation>
 
121
                  <no_stabilisation/>
 
122
                </stabilisation>
 
123
                <advection_terms/>
 
124
                <mass_terms/>
 
125
              </continuous_galerkin>
 
126
              <conservative_advection>
 
127
                <real_value rank="0">1.0</real_value>
 
128
              </conservative_advection>
 
129
            </spatial_discretisation>
 
130
            <temporal_discretisation>
 
131
              <theta>
 
132
                <real_value rank="0">1.0</real_value>
 
133
              </theta>
 
134
            </temporal_discretisation>
 
135
            <solver>
 
136
              <iterative_method name="gmres">
 
137
                <restart>
 
138
                  <integer_value rank="0">30</integer_value>
 
139
                </restart>
 
140
              </iterative_method>
 
141
              <preconditioner name="sor"/>
 
142
              <relative_error>
 
143
                <real_value rank="0">1.0e-6</real_value>
 
144
              </relative_error>
 
145
              <absolute_error>
 
146
                <real_value rank="0">1e-15</real_value>
 
147
              </absolute_error>
 
148
              <max_iterations>
 
149
                <integer_value rank="0">1000</integer_value>
 
150
              </max_iterations>
 
151
              <never_ignore_solver_failures/>
 
152
              <diagnostics>
 
153
                <monitors/>
 
154
              </diagnostics>
 
155
            </solver>
 
156
            <initial_condition name="WholeMesh">
 
157
              <python>
 
158
                <string_value lines="20" type="code" language="python">def val(X,t):
 
159
   import mms_rans_p2p1_keps_tools as k
 
160
   return k.ke(X)</string_value>
 
161
              </python>
 
162
            </initial_condition>
 
163
            <boundary_conditions name="all_sides">
 
164
              <surface_ids>
 
165
                <integer_value shape="1" rank="1">1</integer_value>
 
166
              </surface_ids>
 
167
              <type name="dirichlet">
 
168
                <python>
 
169
                  <string_value lines="20" type="code" language="python">def val(X,t):
 
170
   import mms_rans_p2p1_keps_tools as k
 
171
   return k.ke(X)</string_value>
 
172
                </python>
 
173
              </type>
 
174
            </boundary_conditions>
 
175
            <tensor_field name="Diffusivity" rank="2">
 
176
              <diagnostic>
 
177
                <algorithm name="Internal" material_phase_support="multiple"/>
 
178
                <output/>
 
179
                <stat>
 
180
                  <include_in_stat/>
 
181
                </stat>
 
182
              </diagnostic>
 
183
            </tensor_field>
 
184
            <scalar_field name="Source" rank="0">
 
185
              <diagnostic>
 
186
                <algorithm name="Internal" material_phase_support="multiple"/>
 
187
                <output/>
 
188
                <stat/>
 
189
                <detectors>
 
190
                  <include_in_detectors/>
 
191
                </detectors>
 
192
              </diagnostic>
 
193
            </scalar_field>
 
194
            <scalar_field name="Absorption" rank="0">
 
195
              <diagnostic>
 
196
                <algorithm name="Internal" material_phase_support="multiple"/>
 
197
                <output/>
 
198
                <stat/>
 
199
                <detectors>
 
200
                  <include_in_detectors/>
 
201
                </detectors>
 
202
              </diagnostic>
 
203
            </scalar_field>
 
204
            <output/>
 
205
            <stat/>
 
206
            <convergence>
 
207
              <include_in_convergence/>
 
208
            </convergence>
 
209
            <detectors>
 
210
              <include_in_detectors/>
 
211
            </detectors>
 
212
            <steady_state>
 
213
              <exclude_from_steady_state/>
 
214
            </steady_state>
 
215
            <consistent_interpolation/>
 
216
          </prognostic>
 
217
        </scalar_field>
 
218
        <scalar_field name="TurbulentDissipation" rank="0">
 
219
          <prognostic>
 
220
            <mesh name="VelocityMesh"/>
 
221
            <equation name="AdvectionDiffusion"/>
 
222
            <spatial_discretisation>
 
223
              <continuous_galerkin>
 
224
                <stabilisation>
 
225
                  <no_stabilisation/>
 
226
                </stabilisation>
 
227
                <advection_terms/>
 
228
                <mass_terms/>
 
229
              </continuous_galerkin>
 
230
              <conservative_advection>
 
231
                <real_value rank="0">1.0</real_value>
 
232
              </conservative_advection>
 
233
            </spatial_discretisation>
 
234
            <temporal_discretisation>
 
235
              <theta>
 
236
                <real_value rank="0">1.0</real_value>
 
237
              </theta>
 
238
            </temporal_discretisation>
 
239
            <solver>
 
240
              <iterative_method name="gmres">
 
241
                <restart>
 
242
                  <integer_value rank="0">30</integer_value>
 
243
                </restart>
 
244
              </iterative_method>
 
245
              <preconditioner name="sor"/>
 
246
              <relative_error>
 
247
                <real_value rank="0">1.0e-6</real_value>
 
248
              </relative_error>
 
249
              <absolute_error>
 
250
                <real_value rank="0">1e-15</real_value>
 
251
              </absolute_error>
 
252
              <max_iterations>
 
253
                <integer_value rank="0">1000</integer_value>
 
254
              </max_iterations>
 
255
              <never_ignore_solver_failures/>
 
256
              <diagnostics>
 
257
                <monitors/>
 
258
              </diagnostics>
 
259
            </solver>
 
260
            <initial_condition name="WholeMesh">
 
261
              <python>
 
262
                <string_value lines="20" type="code" language="python">def val(X,t):
 
263
   import mms_rans_p2p1_keps_tools as k
 
264
   return k.eps(X)</string_value>
 
265
              </python>
 
266
            </initial_condition>
 
267
            <boundary_conditions name="all_sides">
 
268
              <surface_ids>
 
269
                <integer_value shape="1" rank="1">1</integer_value>
 
270
              </surface_ids>
 
271
              <type name="dirichlet">
 
272
                <python>
 
273
                  <string_value lines="20" type="code" language="python">def val(X,t):
 
274
   import mms_rans_p2p1_keps_tools as k
 
275
   return k.eps(X)</string_value>
 
276
                </python>
 
277
              </type>
 
278
            </boundary_conditions>
 
279
            <tensor_field name="Diffusivity" rank="2">
 
280
              <diagnostic>
 
281
                <algorithm name="Internal" material_phase_support="multiple"/>
 
282
                <output/>
 
283
                <stat>
 
284
                  <include_in_stat/>
 
285
                </stat>
 
286
              </diagnostic>
 
287
            </tensor_field>
 
288
            <scalar_field name="Source" rank="0">
 
289
              <diagnostic>
 
290
                <algorithm name="Internal" material_phase_support="multiple"/>
 
291
                <output/>
 
292
                <stat/>
 
293
                <detectors>
 
294
                  <include_in_detectors/>
 
295
                </detectors>
 
296
              </diagnostic>
 
297
            </scalar_field>
 
298
            <scalar_field name="Absorption" rank="0">
 
299
              <diagnostic>
 
300
                <algorithm name="Internal" material_phase_support="multiple"/>
 
301
                <output/>
 
302
                <stat/>
 
303
                <detectors>
 
304
                  <include_in_detectors/>
 
305
                </detectors>
 
306
              </diagnostic>
 
307
            </scalar_field>
 
308
            <output/>
 
309
            <stat/>
 
310
            <convergence>
 
311
              <include_in_convergence/>
 
312
            </convergence>
 
313
            <detectors>
 
314
              <include_in_detectors/>
 
315
            </detectors>
 
316
            <steady_state>
 
317
              <exclude_from_steady_state/>
 
318
            </steady_state>
 
319
            <consistent_interpolation/>
 
320
          </prognostic>
 
321
        </scalar_field>
 
322
        <tensor_field name="BackgroundViscosity" rank="2">
 
323
          <prescribed>
 
324
            <mesh name="VelocityMesh"/>
 
325
            <value name="WholeMesh">
 
326
              <isotropic>
 
327
                <constant>
 
328
                  <real_value rank="0">1.0</real_value>
 
329
                </constant>
 
330
              </isotropic>
 
331
            </value>
 
332
            <output/>
 
333
          </prescribed>
 
334
        </tensor_field>
 
335
        <tensor_field name="EddyViscosity" rank="2">
 
336
          <diagnostic>
 
337
            <algorithm name="Internal" material_phase_support="multiple"/>
 
338
            <mesh name="VelocityMesh"/>
 
339
            <output/>
 
340
            <stat>
 
341
              <include_in_stat/>
 
342
            </stat>
 
343
          </diagnostic>
 
344
        </tensor_field>
 
345
        <scalar_field name="ScalarEddyViscosity" rank="0">
 
346
          <diagnostic>
 
347
            <algorithm name="Internal" material_phase_support="multiple"/>
 
348
            <mesh name="VelocityMesh"/>
 
349
            <output/>
 
350
            <stat/>
 
351
            <convergence>
 
352
              <include_in_convergence/>
 
353
            </convergence>
 
354
            <detectors>
 
355
              <include_in_detectors/>
 
356
            </detectors>
 
357
            <steady_state>
 
358
              <exclude_from_steady_state/>
 
359
            </steady_state>
 
360
          </diagnostic>
 
361
        </scalar_field>
 
362
        <scalar_field name="LengthScale" rank="0">
 
363
          <diagnostic>
 
364
            <algorithm name="Internal" material_phase_support="multiple"/>
 
365
            <mesh name="VelocityMesh"/>
 
366
            <output/>
 
367
            <stat/>
 
368
            <convergence>
 
369
              <include_in_convergence/>
 
370
            </convergence>
 
371
            <detectors>
 
372
              <include_in_detectors/>
 
373
            </detectors>
 
374
            <steady_state>
 
375
              <exclude_from_steady_state/>
 
376
            </steady_state>
 
377
          </diagnostic>
 
378
        </scalar_field>
 
379
        <scalar_field name="f_1" rank="0">
 
380
          <diagnostic>
 
381
            <algorithm name="Internal" material_phase_support="multiple"/>
 
382
            <mesh name="VelocityMesh"/>
 
383
            <output/>
 
384
            <stat/>
 
385
            <convergence>
 
386
              <include_in_convergence/>
 
387
            </convergence>
 
388
            <detectors>
 
389
              <include_in_detectors/>
 
390
            </detectors>
 
391
            <steady_state>
 
392
              <exclude_from_steady_state/>
 
393
            </steady_state>
 
394
          </diagnostic>
 
395
        </scalar_field>
 
396
        <scalar_field name="f_2" rank="0">
 
397
          <diagnostic>
 
398
            <algorithm name="Internal" material_phase_support="multiple"/>
 
399
            <mesh name="VelocityMesh"/>
 
400
            <output/>
 
401
            <stat/>
 
402
            <convergence>
 
403
              <include_in_convergence/>
 
404
            </convergence>
 
405
            <detectors>
 
406
              <include_in_detectors/>
 
407
            </detectors>
 
408
            <steady_state>
 
409
              <exclude_from_steady_state/>
 
410
            </steady_state>
 
411
          </diagnostic>
 
412
        </scalar_field>
 
413
        <scalar_field name="f_mu" rank="0">
 
414
          <diagnostic>
 
415
            <algorithm name="Internal" material_phase_support="multiple"/>
 
416
            <mesh name="VelocityMesh"/>
 
417
            <output/>
 
418
            <stat/>
 
419
            <convergence>
 
420
              <include_in_convergence/>
 
421
            </convergence>
 
422
            <detectors>
 
423
              <include_in_detectors/>
 
424
            </detectors>
 
425
            <steady_state>
 
426
              <exclude_from_steady_state/>
 
427
            </steady_state>
 
428
          </diagnostic>
 
429
        </scalar_field>
 
430
        <max_damping_value>
 
431
          <real_value rank="0">10.0</real_value>
 
432
        </max_damping_value>
 
433
        <lengthscale_limit>
 
434
          <real_value rank="0">1e10</real_value>
 
435
        </lengthscale_limit>
 
436
        <C_mu>
 
437
          <real_value rank="0">1.0</real_value>
 
438
        </C_mu>
 
439
        <C_eps_1>
 
440
          <real_value rank="0">1.0</real_value>
 
441
        </C_eps_1>
 
442
        <C_eps_2>
 
443
          <real_value rank="0">1.0</real_value>
 
444
        </C_eps_2>
 
445
        <sigma_k>
 
446
          <real_value rank="0">1.0</real_value>
 
447
        </sigma_k>
 
448
        <sigma_eps>
 
449
          <real_value rank="0">1.0</real_value>
 
450
        </sigma_eps>
 
451
        <mass_lumping_in_diagnostics>
 
452
          <solve_using_mass_matrix>
 
453
            <solver>
 
454
              <iterative_method name="cg"/>
 
455
              <preconditioner name="sor"/>
 
456
              <relative_error>
 
457
                <real_value rank="0">1e-10</real_value>
 
458
              </relative_error>
 
459
              <max_iterations>
 
460
                <integer_value rank="0">1000</integer_value>
 
461
              </max_iterations>
 
462
              <never_ignore_solver_failures/>
 
463
              <diagnostics>
 
464
                <monitors/>
 
465
              </diagnostics>
 
466
            </solver>
 
467
          </solve_using_mass_matrix>
 
468
        </mass_lumping_in_diagnostics>
 
469
        <debugging_options>
 
470
          <source_term_output_fields>
 
471
            <scalar_field name="TurbulentKineticEnergyProduction" rank="0">
 
472
              <diagnostic>
 
473
                <algorithm name="Internal" material_phase_support="multiple"/>
 
474
                <mesh name="VelocityMesh"/>
 
475
                <output/>
 
476
                <stat/>
 
477
                <convergence>
 
478
                  <include_in_convergence/>
 
479
                </convergence>
 
480
                <detectors>
 
481
                  <include_in_detectors/>
 
482
                </detectors>
 
483
                <steady_state>
 
484
                  <exclude_from_steady_state/>
 
485
                </steady_state>
 
486
              </diagnostic>
 
487
            </scalar_field>
 
488
            <scalar_field name="TurbulentKineticEnergyBuoyancyTerm" rank="0">
 
489
              <diagnostic>
 
490
                <algorithm name="Internal" material_phase_support="multiple"/>
 
491
                <mesh name="VelocityMesh"/>
 
492
                <output/>
 
493
                <stat/>
 
494
                <convergence>
 
495
                  <include_in_convergence/>
 
496
                </convergence>
 
497
                <detectors>
 
498
                  <include_in_detectors/>
 
499
                </detectors>
 
500
                <steady_state>
 
501
                  <exclude_from_steady_state/>
 
502
                </steady_state>
 
503
              </diagnostic>
 
504
            </scalar_field>
 
505
            <scalar_field name="TurbulentKineticEnergyDestruction" rank="0">
 
506
              <diagnostic>
 
507
                <algorithm name="Internal" material_phase_support="multiple"/>
 
508
                <mesh name="VelocityMesh"/>
 
509
                <output/>
 
510
                <stat/>
 
511
                <convergence>
 
512
                  <include_in_convergence/>
 
513
                </convergence>
 
514
                <detectors>
 
515
                  <include_in_detectors/>
 
516
                </detectors>
 
517
                <steady_state>
 
518
                  <exclude_from_steady_state/>
 
519
                </steady_state>
 
520
              </diagnostic>
 
521
            </scalar_field>
 
522
            <scalar_field name="TurbulentDissipationProduction" rank="0">
 
523
              <diagnostic>
 
524
                <algorithm name="Internal" material_phase_support="multiple"/>
 
525
                <mesh name="VelocityMesh"/>
 
526
                <output/>
 
527
                <stat/>
 
528
                <convergence>
 
529
                  <include_in_convergence/>
 
530
                </convergence>
 
531
                <detectors>
 
532
                  <include_in_detectors/>
 
533
                </detectors>
 
534
                <steady_state>
 
535
                  <exclude_from_steady_state/>
 
536
                </steady_state>
 
537
              </diagnostic>
 
538
            </scalar_field>
 
539
            <scalar_field name="TurbulentDissipationBuoyancyTerm" rank="0">
 
540
              <diagnostic>
 
541
                <algorithm name="Internal" material_phase_support="multiple"/>
 
542
                <mesh name="VelocityMesh"/>
 
543
                <output/>
 
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="TurbulentDissipationDestruction" rank="0">
 
557
              <diagnostic>
 
558
                <algorithm name="Internal" material_phase_support="multiple"/>
 
559
                <mesh name="VelocityMesh"/>
 
560
                <output/>
 
561
                <stat/>
 
562
                <convergence>
 
563
                  <include_in_convergence/>
 
564
                </convergence>
 
565
                <detectors>
 
566
                  <include_in_detectors/>
 
567
                </detectors>
 
568
                <steady_state>
 
569
                  <exclude_from_steady_state/>
 
570
                </steady_state>
 
571
              </diagnostic>
 
572
            </scalar_field>
 
573
          </source_term_output_fields>
 
574
          <prescribed_source_terms>
 
575
            <scalar_field name="TurbulentKineticEnergyPrescribedSource" rank="0">
 
576
              <prescribed>
 
577
                <mesh name="VelocityMesh"/>
 
578
                <value name="WholeMesh">
 
579
                  <python>
 
580
                    <string_value lines="20" type="code" language="python">def val(X,t):
 
581
   import mms_rans_p2p1_keps_tools as k
 
582
   return k.forcing_ke(X)</string_value>
 
583
                  </python>
 
584
                </value>
 
585
                <output/>
 
586
                <stat/>
 
587
                <detectors>
 
588
                  <exclude_from_detectors/>
 
589
                </detectors>
 
590
              </prescribed>
 
591
            </scalar_field>
 
592
            <scalar_field name="TurbulentDissipationPrescribedSource" rank="0">
 
593
              <prescribed>
 
594
                <mesh name="VelocityMesh"/>
 
595
                <value name="WholeMesh">
 
596
                  <python>
 
597
                    <string_value lines="20" type="code" language="python">def val(X,t):
 
598
   import mms_rans_p2p1_keps_tools as k
 
599
   return k.forcing_eps(X)</string_value>
 
600
                  </python>
 
601
                </value>
 
602
                <output/>
 
603
                <stat/>
 
604
                <detectors>
 
605
                  <exclude_from_detectors/>
 
606
                </detectors>
 
607
              </prescribed>
 
608
            </scalar_field>
 
609
          </prescribed_source_terms>
 
610
          <zero_reynolds_stress_tensor/>
 
611
        </debugging_options>
 
612
      </k-epsilon>
 
613
    </subgridscale_parameterisations>
 
614
    <vector_field name="Velocity" rank="1">
 
615
      <prescribed>
 
616
        <mesh name="VelocityMesh"/>
 
617
        <value name="WholeMesh">
 
618
          <python>
 
619
            <string_value lines="20" type="code" language="python">def val(X,t):
 
620
   import mms_rans_p2p1_keps_tools as k
 
621
   return k.velocity(X)</string_value>
 
622
          </python>
 
623
        </value>
 
624
        <output/>
 
625
        <stat>
 
626
          <include_in_stat/>
 
627
        </stat>
 
628
        <detectors>
 
629
          <exclude_from_detectors/>
 
630
        </detectors>
 
631
      </prescribed>
 
632
    </vector_field>
 
633
    <scalar_field name="CFLNumber" rank="0">
 
634
      <diagnostic>
 
635
        <algorithm name="Internal" material_phase_support="multiple"/>
 
636
        <mesh name="VelocityMesh"/>
 
637
        <output/>
 
638
        <stat/>
 
639
        <convergence>
 
640
          <include_in_convergence/>
 
641
        </convergence>
 
642
        <detectors>
 
643
          <include_in_detectors/>
 
644
        </detectors>
 
645
        <steady_state>
 
646
          <exclude_from_steady_state/>
 
647
        </steady_state>
 
648
      </diagnostic>
 
649
    </scalar_field>
 
650
    <scalar_field name="TurbulentKineticEnergyProductionAnalytical" rank="0">
 
651
      <prescribed>
 
652
        <mesh name="ErrorMesh"/>
 
653
        <value name="WholeMesh">
 
654
          <python>
 
655
            <string_value lines="20" type="code" language="python">def val(X,t):
 
656
   import mms_rans_p2p1_keps_tools as k
 
657
   return k.P(X)</string_value>
 
658
          </python>
 
659
        </value>
 
660
        <output/>
 
661
        <stat/>
 
662
        <detectors>
 
663
          <exclude_from_detectors/>
 
664
        </detectors>
 
665
      </prescribed>
 
666
    </scalar_field>
 
667
    <scalar_field name="TurbulentKineticEnergyProductionProjection" rank="0">
 
668
      <diagnostic>
 
669
        <algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentKineticEnergyProduction">
 
670
          <solver>
 
671
            <iterative_method name="cg"/>
 
672
            <preconditioner name="sor"/>
 
673
            <relative_error>
 
674
              <real_value rank="0">1e-10</real_value>
 
675
            </relative_error>
 
676
            <max_iterations>
 
677
              <integer_value rank="0">1000</integer_value>
 
678
            </max_iterations>
 
679
            <never_ignore_solver_failures/>
 
680
            <diagnostics>
 
681
              <monitors/>
 
682
            </diagnostics>
 
683
          </solver>
 
684
        </algorithm>
 
685
        <mesh name="ErrorMesh"/>
 
686
        <output/>
 
687
        <stat/>
 
688
        <convergence>
 
689
          <include_in_convergence/>
 
690
        </convergence>
 
691
        <detectors>
 
692
          <include_in_detectors/>
 
693
        </detectors>
 
694
        <steady_state>
 
695
          <exclude_from_steady_state/>
 
696
        </steady_state>
 
697
      </diagnostic>
 
698
    </scalar_field>
 
699
    <scalar_field name="TurbulentKineticEnergyProductionError" rank="0">
 
700
      <diagnostic>
 
701
        <algorithm source_field_2_type="scalar" name="scalar_difference" source_field_1_name="TurbulentKineticEnergyProductionAnalytical" source_field_2_name="TurbulentKineticEnergyProductionProjection" material_phase_support="single" source_field_1_type="scalar">
 
702
          <absolute_difference/>
 
703
        </algorithm>
 
704
        <mesh name="ErrorMesh"/>
 
705
        <output/>
 
706
        <stat/>
 
707
        <convergence>
 
708
          <include_in_convergence/>
 
709
        </convergence>
 
710
        <detectors>
 
711
          <include_in_detectors/>
 
712
        </detectors>
 
713
        <steady_state>
 
714
          <include_in_steady_state/>
 
715
        </steady_state>
 
716
      </diagnostic>
 
717
    </scalar_field>
 
718
    <scalar_field name="TurbulentKineticEnergyDestructionAnalytical" rank="0">
 
719
      <prescribed>
 
720
        <mesh name="ErrorMesh"/>
 
721
        <value name="WholeMesh">
 
722
          <python>
 
723
            <string_value lines="20" type="code" language="python">def val(X,t):
 
724
   import mms_rans_p2p1_keps_tools as k
 
725
   return k.A(X)</string_value>
 
726
          </python>
 
727
        </value>
 
728
        <output/>
 
729
        <stat/>
 
730
        <detectors>
 
731
          <exclude_from_detectors/>
 
732
        </detectors>
 
733
      </prescribed>
 
734
    </scalar_field>
 
735
    <scalar_field name="TurbulentKineticEnergyDestructionProjection" rank="0">
 
736
      <diagnostic>
 
737
        <algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentKineticEnergyDestruction">
 
738
          <solver>
 
739
            <iterative_method name="cg"/>
 
740
            <preconditioner name="sor"/>
 
741
            <relative_error>
 
742
              <real_value rank="0">1e-10</real_value>
 
743
            </relative_error>
 
744
            <max_iterations>
 
745
              <integer_value rank="0">1000</integer_value>
 
746
            </max_iterations>
 
747
            <never_ignore_solver_failures/>
 
748
            <diagnostics>
 
749
              <monitors/>
 
750
            </diagnostics>
 
751
          </solver>
 
752
        </algorithm>
 
753
        <mesh name="ErrorMesh"/>
 
754
        <output/>
 
755
        <stat/>
 
756
        <convergence>
 
757
          <include_in_convergence/>
 
758
        </convergence>
 
759
        <detectors>
 
760
          <include_in_detectors/>
 
761
        </detectors>
 
762
        <steady_state>
 
763
          <exclude_from_steady_state/>
 
764
        </steady_state>
 
765
      </diagnostic>
 
766
    </scalar_field>
 
767
    <scalar_field name="TurbulentKineticEnergyDestructionError" rank="0">
 
768
      <diagnostic>
 
769
        <algorithm source_field_2_type="scalar" name="scalar_difference" source_field_1_name="TurbulentKineticEnergyDestructionAnalytical" source_field_2_name="TurbulentKineticEnergyDestructionProjection" material_phase_support="single" source_field_1_type="scalar">
 
770
          <absolute_difference/>
 
771
        </algorithm>
 
772
        <mesh name="ErrorMesh"/>
 
773
        <output/>
 
774
        <stat/>
 
775
        <convergence>
 
776
          <include_in_convergence/>
 
777
        </convergence>
 
778
        <detectors>
 
779
          <include_in_detectors/>
 
780
        </detectors>
 
781
        <steady_state>
 
782
          <include_in_steady_state/>
 
783
        </steady_state>
 
784
      </diagnostic>
 
785
    </scalar_field>
 
786
    <scalar_field name="TurbulentKineticEnergyAnalytical" rank="0">
 
787
      <prescribed>
 
788
        <mesh name="ErrorMesh"/>
 
789
        <value name="WholeMesh">
 
790
          <python>
 
791
            <string_value lines="20" type="code" language="python">def val(X,t):
 
792
   import mms_rans_p2p1_keps_tools as k
 
793
   return k.ke(X)</string_value>
 
794
          </python>
 
795
        </value>
 
796
        <output/>
 
797
        <stat/>
 
798
        <detectors>
 
799
          <exclude_from_detectors/>
 
800
        </detectors>
 
801
      </prescribed>
 
802
    </scalar_field>
 
803
    <scalar_field name="TurbulentKineticEnergyProjection" rank="0">
 
804
      <diagnostic>
 
805
        <algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentKineticEnergy">
 
806
          <solver>
 
807
            <iterative_method name="cg"/>
 
808
            <preconditioner name="sor"/>
 
809
            <relative_error>
 
810
              <real_value rank="0">1e-10</real_value>
 
811
            </relative_error>
 
812
            <max_iterations>
 
813
              <integer_value rank="0">1000</integer_value>
 
814
            </max_iterations>
 
815
            <never_ignore_solver_failures/>
 
816
            <diagnostics>
 
817
              <monitors/>
 
818
            </diagnostics>
 
819
          </solver>
 
820
        </algorithm>
 
821
        <mesh name="ErrorMesh"/>
 
822
        <output/>
 
823
        <stat/>
 
824
        <convergence>
 
825
          <include_in_convergence/>
 
826
        </convergence>
 
827
        <detectors>
 
828
          <include_in_detectors/>
 
829
        </detectors>
 
830
        <steady_state>
 
831
          <exclude_from_steady_state/>
 
832
        </steady_state>
 
833
      </diagnostic>
 
834
    </scalar_field>
 
835
    <scalar_field name="TurbulentKineticEnergyError" rank="0">
 
836
      <diagnostic>
 
837
        <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">
 
838
          <absolute_difference/>
 
839
        </algorithm>
 
840
        <mesh name="ErrorMesh"/>
 
841
        <output/>
 
842
        <stat/>
 
843
        <convergence>
 
844
          <include_in_convergence/>
 
845
        </convergence>
 
846
        <detectors>
 
847
          <include_in_detectors/>
 
848
        </detectors>
 
849
        <steady_state>
 
850
          <include_in_steady_state/>
 
851
        </steady_state>
 
852
      </diagnostic>
 
853
    </scalar_field>
 
854
    <scalar_field name="TurbulentDissipationProductionAnalytical" rank="0">
 
855
      <prescribed>
 
856
        <mesh name="ErrorMesh"/>
 
857
        <value name="WholeMesh">
 
858
          <python>
 
859
            <string_value lines="20" type="code" language="python">def val(X,t):
 
860
   import mms_rans_p2p1_keps_tools as k
 
861
   return k.P_eps(X)</string_value>
 
862
          </python>
 
863
        </value>
 
864
        <output/>
 
865
        <stat/>
 
866
        <detectors>
 
867
          <exclude_from_detectors/>
 
868
        </detectors>
 
869
      </prescribed>
 
870
    </scalar_field>
 
871
    <scalar_field name="TurbulentDissipationProductionProjection" rank="0">
 
872
      <diagnostic>
 
873
        <algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentDissipationProduction">
 
874
          <solver>
 
875
            <iterative_method name="cg"/>
 
876
            <preconditioner name="sor"/>
 
877
            <relative_error>
 
878
              <real_value rank="0">1e-10</real_value>
 
879
            </relative_error>
 
880
            <max_iterations>
 
881
              <integer_value rank="0">1000</integer_value>
 
882
            </max_iterations>
 
883
            <never_ignore_solver_failures/>
 
884
            <diagnostics>
 
885
              <monitors/>
 
886
            </diagnostics>
 
887
          </solver>
 
888
        </algorithm>
 
889
        <mesh name="ErrorMesh"/>
 
890
        <output/>
 
891
        <stat/>
 
892
        <convergence>
 
893
          <include_in_convergence/>
 
894
        </convergence>
 
895
        <detectors>
 
896
          <include_in_detectors/>
 
897
        </detectors>
 
898
        <steady_state>
 
899
          <exclude_from_steady_state/>
 
900
        </steady_state>
 
901
      </diagnostic>
 
902
    </scalar_field>
 
903
    <scalar_field name="TurbulentDissipationProductionError" rank="0">
 
904
      <diagnostic>
 
905
        <algorithm source_field_2_type="scalar" name="scalar_difference" source_field_1_name="TurbulentDissipationProductionAnalytical" source_field_2_name="TurbulentDissipationProductionProjection" material_phase_support="single" source_field_1_type="scalar">
 
906
          <absolute_difference/>
 
907
        </algorithm>
 
908
        <mesh name="ErrorMesh"/>
 
909
        <output/>
 
910
        <stat/>
 
911
        <convergence>
 
912
          <include_in_convergence/>
 
913
        </convergence>
 
914
        <detectors>
 
915
          <include_in_detectors/>
 
916
        </detectors>
 
917
        <steady_state>
 
918
          <include_in_steady_state/>
 
919
        </steady_state>
 
920
      </diagnostic>
 
921
    </scalar_field>
 
922
    <scalar_field name="TurbulentDissipationDestructionAnalytical" rank="0">
 
923
      <prescribed>
 
924
        <mesh name="ErrorMesh"/>
 
925
        <value name="WholeMesh">
 
926
          <python>
 
927
            <string_value lines="20" type="code" language="python">def val(X,t):
 
928
   import mms_rans_p2p1_keps_tools as k
 
929
   return k.A(X)</string_value>
 
930
          </python>
 
931
        </value>
 
932
        <output/>
 
933
        <stat/>
 
934
        <detectors>
 
935
          <exclude_from_detectors/>
 
936
        </detectors>
 
937
      </prescribed>
 
938
    </scalar_field>
 
939
    <scalar_field name="TurbulentDissipationDestructionProjection" rank="0">
 
940
      <diagnostic>
 
941
        <algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentDissipationDestruction">
 
942
          <solver>
 
943
            <iterative_method name="cg"/>
 
944
            <preconditioner name="sor"/>
 
945
            <relative_error>
 
946
              <real_value rank="0">1e-10</real_value>
 
947
            </relative_error>
 
948
            <max_iterations>
 
949
              <integer_value rank="0">1000</integer_value>
 
950
            </max_iterations>
 
951
            <never_ignore_solver_failures/>
 
952
            <diagnostics>
 
953
              <monitors/>
 
954
            </diagnostics>
 
955
          </solver>
 
956
        </algorithm>
 
957
        <mesh name="ErrorMesh"/>
 
958
        <output/>
 
959
        <stat/>
 
960
        <convergence>
 
961
          <include_in_convergence/>
 
962
        </convergence>
 
963
        <detectors>
 
964
          <include_in_detectors/>
 
965
        </detectors>
 
966
        <steady_state>
 
967
          <exclude_from_steady_state/>
 
968
        </steady_state>
 
969
      </diagnostic>
 
970
    </scalar_field>
 
971
    <scalar_field name="TurbulentDissipationDestructionError" rank="0">
 
972
      <diagnostic>
 
973
        <algorithm source_field_2_type="scalar" name="scalar_difference" source_field_1_name="TurbulentDissipationDestructionAnalytical" source_field_2_name="TurbulentDissipationDestructionProjection" material_phase_support="single" source_field_1_type="scalar">
 
974
          <absolute_difference/>
 
975
        </algorithm>
 
976
        <mesh name="ErrorMesh"/>
 
977
        <output/>
 
978
        <stat/>
 
979
        <convergence>
 
980
          <include_in_convergence/>
 
981
        </convergence>
 
982
        <detectors>
 
983
          <include_in_detectors/>
 
984
        </detectors>
 
985
        <steady_state>
 
986
          <include_in_steady_state/>
 
987
        </steady_state>
 
988
      </diagnostic>
 
989
    </scalar_field>
 
990
    <scalar_field name="TurbulentDissipationAnalytical" rank="0">
 
991
      <prescribed>
 
992
        <mesh name="ErrorMesh"/>
 
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.eps(X)</string_value>
 
998
          </python>
 
999
        </value>
 
1000
        <output/>
 
1001
        <stat/>
 
1002
        <detectors>
 
1003
          <exclude_from_detectors/>
 
1004
        </detectors>
 
1005
      </prescribed>
 
1006
    </scalar_field>
 
1007
    <scalar_field name="TurbulentDissipationProjection" rank="0">
 
1008
      <diagnostic>
 
1009
        <algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentDissipation">
 
1010
          <solver>
 
1011
            <iterative_method name="cg"/>
 
1012
            <preconditioner name="sor"/>
 
1013
            <relative_error>
 
1014
              <real_value rank="0">1e-10</real_value>
 
1015
            </relative_error>
 
1016
            <max_iterations>
 
1017
              <integer_value rank="0">1000</integer_value>
 
1018
            </max_iterations>
 
1019
            <never_ignore_solver_failures/>
 
1020
            <diagnostics>
 
1021
              <monitors/>
 
1022
            </diagnostics>
 
1023
          </solver>
 
1024
        </algorithm>
 
1025
        <mesh name="ErrorMesh"/>
 
1026
        <output/>
 
1027
        <stat/>
 
1028
        <convergence>
 
1029
          <include_in_convergence/>
 
1030
        </convergence>
 
1031
        <detectors>
 
1032
          <include_in_detectors/>
 
1033
        </detectors>
 
1034
        <steady_state>
 
1035
          <exclude_from_steady_state/>
 
1036
        </steady_state>
 
1037
      </diagnostic>
 
1038
    </scalar_field>
 
1039
    <scalar_field name="TurbulentDissipationError" rank="0">
 
1040
      <diagnostic>
 
1041
        <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">
 
1042
          <absolute_difference/>
 
1043
        </algorithm>
 
1044
        <mesh name="ErrorMesh"/>
 
1045
        <output/>
 
1046
        <stat/>
 
1047
        <convergence>
 
1048
          <include_in_convergence/>
 
1049
        </convergence>
 
1050
        <detectors>
 
1051
          <include_in_detectors/>
 
1052
        </detectors>
 
1053
        <steady_state>
 
1054
          <include_in_steady_state/>
 
1055
        </steady_state>
 
1056
      </diagnostic>
 
1057
    </scalar_field>
 
1058
    <scalar_field name="ScalarEddyViscosityAnalytical" rank="0">
 
1059
      <prescribed>
 
1060
        <mesh name="ErrorMesh"/>
 
1061
        <value name="WholeMesh">
 
1062
          <python>
 
1063
            <string_value lines="20" type="code" language="python">def val(X,t):
 
1064
   import mms_rans_p2p1_keps_tools as k
 
1065
   return k.EV(X)</string_value>
 
1066
          </python>
 
1067
        </value>
 
1068
        <output/>
 
1069
        <stat/>
 
1070
        <detectors>
 
1071
          <exclude_from_detectors/>
 
1072
        </detectors>
 
1073
      </prescribed>
 
1074
    </scalar_field>
 
1075
    <scalar_field name="ScalarEddyViscosityProjection" rank="0">
 
1076
      <diagnostic>
 
1077
        <algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="ScalarEddyViscosity">
 
1078
          <solver>
 
1079
            <iterative_method name="cg"/>
 
1080
            <preconditioner name="sor"/>
 
1081
            <relative_error>
 
1082
              <real_value rank="0">1e-10</real_value>
 
1083
            </relative_error>
 
1084
            <max_iterations>
 
1085
              <integer_value rank="0">1000</integer_value>
 
1086
            </max_iterations>
 
1087
            <never_ignore_solver_failures/>
 
1088
            <diagnostics>
 
1089
              <monitors/>
 
1090
            </diagnostics>
 
1091
          </solver>
 
1092
        </algorithm>
 
1093
        <mesh name="ErrorMesh"/>
 
1094
        <output/>
 
1095
        <stat/>
 
1096
        <convergence>
 
1097
          <include_in_convergence/>
 
1098
        </convergence>
 
1099
        <detectors>
 
1100
          <include_in_detectors/>
 
1101
        </detectors>
 
1102
        <steady_state>
 
1103
          <exclude_from_steady_state/>
 
1104
        </steady_state>
 
1105
      </diagnostic>
 
1106
    </scalar_field>
 
1107
    <scalar_field name="ScalarEddyViscosityError" rank="0">
 
1108
      <diagnostic>
 
1109
        <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">
 
1110
          <absolute_difference/>
 
1111
        </algorithm>
 
1112
        <mesh name="ErrorMesh"/>
 
1113
        <output/>
 
1114
        <stat/>
 
1115
        <convergence>
 
1116
          <include_in_convergence/>
 
1117
        </convergence>
 
1118
        <detectors>
 
1119
          <include_in_detectors/>
 
1120
        </detectors>
 
1121
        <steady_state>
 
1122
          <include_in_steady_state/>
 
1123
        </steady_state>
 
1124
      </diagnostic>
 
1125
    </scalar_field>
 
1126
    <scalar_field name="BuoyantScalar" rank="0">
 
1127
      <prognostic>
 
1128
        <mesh name="VelocityMesh"/>
 
1129
        <equation name="AdvectionDiffusion"/>
 
1130
        <spatial_discretisation>
 
1131
          <continuous_galerkin>
 
1132
            <stabilisation>
 
1133
              <no_stabilisation/>
 
1134
            </stabilisation>
 
1135
            <advection_terms>
 
1136
              <exclude_advection_terms/>
 
1137
            </advection_terms>
 
1138
            <mass_terms/>
 
1139
          </continuous_galerkin>
 
1140
          <conservative_advection>
 
1141
            <real_value rank="0">1.0</real_value>
 
1142
          </conservative_advection>
 
1143
        </spatial_discretisation>
 
1144
        <temporal_discretisation>
 
1145
          <theta>
 
1146
            <real_value rank="0">1.0</real_value>
 
1147
          </theta>
 
1148
        </temporal_discretisation>
 
1149
        <solver>
 
1150
          <iterative_method name="gmres">
 
1151
            <restart>
 
1152
              <integer_value rank="0">30</integer_value>
 
1153
            </restart>
 
1154
          </iterative_method>
 
1155
          <preconditioner name="sor"/>
 
1156
          <relative_error>
 
1157
            <real_value rank="0">1.0e-6</real_value>
 
1158
          </relative_error>
 
1159
          <absolute_error>
 
1160
            <real_value rank="0">1e-15</real_value>
 
1161
          </absolute_error>
 
1162
          <max_iterations>
 
1163
            <integer_value rank="0">1000</integer_value>
 
1164
          </max_iterations>
 
1165
          <never_ignore_solver_failures/>
 
1166
          <diagnostics>
 
1167
            <monitors/>
 
1168
          </diagnostics>
 
1169
        </solver>
 
1170
        <initial_condition name="WholeMesh">
 
1171
          <python>
 
1172
            <string_value lines="20" type="code" language="python">def val(X,t):
 
1173
   import mms_rans_p2p1_keps_tools as k
 
1174
   return k.rho(X)</string_value>
 
1175
          </python>
 
1176
        </initial_condition>
 
1177
        <subgridscale_parameterisation name="k-epsilon">
 
1178
          <prandtl_schmidt_number>
 
1179
            <real_value rank="0">1.0</real_value>
 
1180
          </prandtl_schmidt_number>
 
1181
          <buoyancy_effects>
 
1182
            <beta>
 
1183
              <real_value rank="0">1.0</real_value>
 
1184
            </beta>
 
1185
          </buoyancy_effects>
 
1186
        </subgridscale_parameterisation>
 
1187
        <output/>
 
1188
        <stat/>
 
1189
        <convergence>
 
1190
          <include_in_convergence/>
 
1191
        </convergence>
 
1192
        <detectors>
 
1193
          <include_in_detectors/>
 
1194
        </detectors>
 
1195
        <steady_state>
 
1196
          <exclude_from_steady_state/>
 
1197
        </steady_state>
 
1198
        <consistent_interpolation/>
 
1199
      </prognostic>
 
1200
    </scalar_field>
 
1201
    <scalar_field name="TurbulentKineticEnergyBuoyancyTermAnalytical" rank="0">
 
1202
      <prescribed>
 
1203
        <mesh name="ErrorMesh"/>
 
1204
        <value name="WholeMesh">
 
1205
          <python>
 
1206
            <string_value lines="20" type="code" language="python">def val(X,t):
 
1207
   import mms_rans_p2p1_keps_tools as k
 
1208
   return k.B(X)</string_value>
 
1209
          </python>
 
1210
        </value>
 
1211
        <output/>
 
1212
        <stat/>
 
1213
        <detectors>
 
1214
          <exclude_from_detectors/>
 
1215
        </detectors>
 
1216
      </prescribed>
 
1217
    </scalar_field>
 
1218
    <scalar_field name="TurbulentKineticEnergyBuoyancyTermProjection" rank="0">
 
1219
      <diagnostic>
 
1220
        <algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentKineticEnergyBuoyancyTerm">
 
1221
          <solver>
 
1222
            <iterative_method name="cg"/>
 
1223
            <preconditioner name="sor"/>
 
1224
            <relative_error>
 
1225
              <real_value rank="0">1e-10</real_value>
 
1226
            </relative_error>
 
1227
            <max_iterations>
 
1228
              <integer_value rank="0">1000</integer_value>
 
1229
            </max_iterations>
 
1230
            <never_ignore_solver_failures/>
 
1231
            <diagnostics>
 
1232
              <monitors/>
 
1233
            </diagnostics>
 
1234
          </solver>
 
1235
        </algorithm>
 
1236
        <mesh name="ErrorMesh"/>
 
1237
        <output/>
 
1238
        <stat/>
 
1239
        <convergence>
 
1240
          <include_in_convergence/>
 
1241
        </convergence>
 
1242
        <detectors>
 
1243
          <include_in_detectors/>
 
1244
        </detectors>
 
1245
        <steady_state>
 
1246
          <exclude_from_steady_state/>
 
1247
        </steady_state>
 
1248
      </diagnostic>
 
1249
    </scalar_field>
 
1250
    <scalar_field name="TurbulentKineticEnergyBuoyancyTermError" rank="0">
 
1251
      <diagnostic>
 
1252
        <algorithm source_field_2_type="scalar" name="scalar_difference" source_field_1_name="TurbulentKineticEnergyBuoyancyTermAnalytical" source_field_2_name="TurbulentKineticEnergyBuoyancyTermProjection" material_phase_support="single" source_field_1_type="scalar">
 
1253
          <absolute_difference/>
 
1254
        </algorithm>
 
1255
        <mesh name="ErrorMesh"/>
 
1256
        <output/>
 
1257
        <stat/>
 
1258
        <convergence>
 
1259
          <include_in_convergence/>
 
1260
        </convergence>
 
1261
        <detectors>
 
1262
          <include_in_detectors/>
 
1263
        </detectors>
 
1264
        <steady_state>
 
1265
          <include_in_steady_state/>
 
1266
        </steady_state>
 
1267
      </diagnostic>
 
1268
    </scalar_field>
 
1269
    <scalar_field name="TurbulentDissipationBuoyancyTermAnalytical" rank="0">
 
1270
      <prescribed>
 
1271
        <mesh name="ErrorMesh"/>
 
1272
        <value name="WholeMesh">
 
1273
          <python>
 
1274
            <string_value lines="20" type="code" language="python">def val(X,t):
 
1275
   import mms_rans_p2p1_keps_tools as k
 
1276
   return k.B_eps(X)</string_value>
 
1277
          </python>
 
1278
        </value>
 
1279
        <output/>
 
1280
        <stat/>
 
1281
        <detectors>
 
1282
          <exclude_from_detectors/>
 
1283
        </detectors>
 
1284
      </prescribed>
 
1285
    </scalar_field>
 
1286
    <scalar_field name="TurbulentDissipationBuoyancyTermProjection" rank="0">
 
1287
      <diagnostic>
 
1288
        <algorithm source_field_type="scalar" material_phase_support="single" name="scalar_galerkin_projection" source_field_name="TurbulentDissipationBuoyancyTerm">
 
1289
          <solver>
 
1290
            <iterative_method name="cg"/>
 
1291
            <preconditioner name="sor"/>
 
1292
            <relative_error>
 
1293
              <real_value rank="0">1e-10</real_value>
 
1294
            </relative_error>
 
1295
            <max_iterations>
 
1296
              <integer_value rank="0">1000</integer_value>
 
1297
            </max_iterations>
 
1298
            <never_ignore_solver_failures/>
 
1299
            <diagnostics>
 
1300
              <monitors/>
 
1301
            </diagnostics>
 
1302
          </solver>
 
1303
        </algorithm>
 
1304
        <mesh name="ErrorMesh"/>
 
1305
        <output/>
 
1306
        <stat/>
 
1307
        <convergence>
 
1308
          <include_in_convergence/>
 
1309
        </convergence>
 
1310
        <detectors>
 
1311
          <include_in_detectors/>
 
1312
        </detectors>
 
1313
        <steady_state>
 
1314
          <exclude_from_steady_state/>
 
1315
        </steady_state>
 
1316
      </diagnostic>
 
1317
    </scalar_field>
 
1318
    <scalar_field name="TurbulentDissipationBuoyancyTermError" rank="0">
 
1319
      <diagnostic>
 
1320
        <algorithm source_field_2_type="scalar" name="scalar_difference" source_field_1_name="TurbulentDissipationBuoyancyTermAnalytical" source_field_2_name="TurbulentDissipationBuoyancyTermProjection" material_phase_support="single" source_field_1_type="scalar">
 
1321
          <absolute_difference/>
 
1322
        </algorithm>
 
1323
        <mesh name="ErrorMesh"/>
 
1324
        <output/>
 
1325
        <stat/>
 
1326
        <convergence>
 
1327
          <include_in_convergence/>
 
1328
        </convergence>
 
1329
        <detectors>
 
1330
          <include_in_detectors/>
 
1331
        </detectors>
 
1332
        <steady_state>
 
1333
          <include_in_steady_state/>
 
1334
        </steady_state>
 
1335
      </diagnostic>
 
1336
    </scalar_field>
 
1337
  </material_phase>
 
1338
</fluidity_options>