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

« back to all changes in this revision

Viewing changes to tests/k-epsilon_mms_cg_p1p1/MMS_A.flml

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

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?xml version='1.0' encoding='utf-8'?>
2
 
<fluidity_options>
3
 
  <simulation_name>
4
 
    <string_value lines="1">MMS_A</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_mesh>
15
 
        <mesh name="InputMesh"/>
16
 
        <stat>
17
 
          <exclude_from_stat/>
18
 
        </stat>
19
 
      </from_mesh>
20
 
    </mesh>
21
 
    <mesh name="VelocityMesh">
22
 
      <from_mesh>
23
 
        <mesh name="InputMesh"/>
24
 
        <stat>
25
 
          <exclude_from_stat/>
26
 
        </stat>
27
 
      </from_mesh>
28
 
    </mesh>
29
 
    <mesh name="PressureMesh">
30
 
      <from_mesh>
31
 
        <mesh name="InputMesh"/>
32
 
        <stat>
33
 
          <exclude_from_stat/>
34
 
        </stat>
35
 
      </from_mesh>
36
 
    </mesh>
37
 
    <mesh name="InputMesh">
38
 
      <from_file file_name="MMS_A">
39
 
        <format name="triangle"/>
40
 
        <stat>
41
 
          <include_in_stat/>
42
 
        </stat>
43
 
      </from_file>
44
 
    </mesh>
45
 
    <quadrature>
46
 
      <degree>
47
 
        <integer_value rank="0">4</integer_value>
48
 
      </degree>
49
 
    </quadrature>
50
 
  </geometry>
51
 
  <io>
52
 
    <dump_format>
53
 
      <string_value>vtk</string_value>
54
 
    </dump_format>
55
 
    <dump_period>
56
 
      <constant>
57
 
        <real_value rank="0">25</real_value>
58
 
      </constant>
59
 
    </dump_period>
60
 
    <output_mesh name="VelocityMesh"/>
61
 
    <stat/>
62
 
  </io>
63
 
  <timestepping>
64
 
    <current_time>
65
 
      <real_value rank="0">0.0</real_value>
66
 
    </current_time>
67
 
    <timestep>
68
 
      <real_value rank="0">0.01</real_value>
69
 
    </timestep>
70
 
    <finish_time>
71
 
      <real_value rank="0">20.0</real_value>
72
 
    </finish_time>
73
 
    <nonlinear_iterations>
74
 
      <integer_value rank="0">1</integer_value>
75
 
    </nonlinear_iterations>
76
 
    <adaptive_timestep>
77
 
      <requested_cfl>
78
 
        <real_value rank="0">2.0</real_value>
79
 
      </requested_cfl>
80
 
      <courant_number name="CFLNumber">
81
 
        <mesh name="VelocityMesh"/>
82
 
      </courant_number>
83
 
    </adaptive_timestep>
84
 
    <steady_state>
85
 
      <tolerance>
86
 
        <real_value rank="0">1.e-6</real_value>
87
 
        <infinity_norm/>
88
 
      </tolerance>
89
 
    </steady_state>
90
 
  </timestepping>
91
 
  <material_phase name="NS">
92
 
    <subgridscale_parameterisations>
93
 
      <k-epsilon>
94
 
        <scalar_field name="TurbulentKineticEnergy" rank="0">
95
 
          <prognostic>
96
 
            <mesh name="VelocityMesh"/>
97
 
            <equation name="AdvectionDiffusion"/>
98
 
            <spatial_discretisation>
99
 
              <continuous_galerkin>
100
 
                <stabilisation>
101
 
                  <no_stabilisation/>
102
 
                </stabilisation>
103
 
                <advection_terms/>
104
 
                <mass_terms/>
105
 
              </continuous_galerkin>
106
 
              <conservative_advection>
107
 
                <real_value rank="0">0</real_value>
108
 
              </conservative_advection>
109
 
            </spatial_discretisation>
110
 
            <temporal_discretisation>
111
 
              <theta>
112
 
                <real_value rank="0">0.5</real_value>
113
 
              </theta>
114
 
            </temporal_discretisation>
115
 
            <solver>
116
 
              <iterative_method name="gmres">
117
 
                <restart>
118
 
                  <integer_value rank="0">30</integer_value>
119
 
                </restart>
120
 
              </iterative_method>
121
 
              <preconditioner name="sor"/>
122
 
              <relative_error>
123
 
                <real_value rank="0">1.e-8</real_value>
124
 
              </relative_error>
125
 
              <max_iterations>
126
 
                <integer_value rank="0">10000</integer_value>
127
 
              </max_iterations>
128
 
              <never_ignore_solver_failures/>
129
 
              <diagnostics>
130
 
                <monitors/>
131
 
              </diagnostics>
132
 
            </solver>
133
 
            <initial_condition name="WholeMesh">
134
 
              <constant>
135
 
                <real_value rank="0">0.0001</real_value>
136
 
              </constant>
137
 
            </initial_condition>
138
 
            <boundary_conditions name="all_sides">
139
 
              <surface_ids>
140
 
                <integer_value shape="4" rank="1">7 8 9 10</integer_value>
141
 
              </surface_ids>
142
 
              <type name="dirichlet">
143
 
                <python>
144
 
                  <string_value lines="20" type="code" language="python">def val(X,t):
145
 
        import k_epsilon_tools as k
146
 
        tke=k.tke(X)
147
 
        return tke</string_value>
148
 
                </python>
149
 
              </type>
150
 
            </boundary_conditions>
151
 
            <tensor_field name="Diffusivity" rank="2">
152
 
              <diagnostic>
153
 
                <algorithm name="Internal" material_phase_support="multiple"/>
154
 
                <output/>
155
 
                <stat>
156
 
                  <exclude_from_stat/>
157
 
                </stat>
158
 
              </diagnostic>
159
 
            </tensor_field>
160
 
            <scalar_field name="Source" rank="0">
161
 
              <prescribed>
162
 
                <value name="WholeMesh">
163
 
                  <python>
164
 
                    <string_value lines="20" type="code" language="python">def val(X,t):
165
 
        import k_epsilon_tools as k
166
 
        return k.forcing_k(X)</string_value>
167
 
                  </python>
168
 
                </value>
169
 
                <output/>
170
 
                <stat/>
171
 
                <detectors>
172
 
                  <exclude_from_detectors/>
173
 
                </detectors>
174
 
              </prescribed>
175
 
            </scalar_field>
176
 
            <scalar_field name="Absorption" rank="0">
177
 
              <diagnostic>
178
 
                <algorithm name="Internal" material_phase_support="multiple"/>
179
 
                <output/>
180
 
                <stat/>
181
 
                <detectors>
182
 
                  <include_in_detectors/>
183
 
                </detectors>
184
 
              </diagnostic>
185
 
            </scalar_field>
186
 
            <output>
187
 
              <include_previous_time_step/>
188
 
            </output>
189
 
            <stat/>
190
 
            <convergence>
191
 
              <include_in_convergence/>
192
 
            </convergence>
193
 
            <detectors>
194
 
              <include_in_detectors/>
195
 
            </detectors>
196
 
            <steady_state>
197
 
              <exclude_from_steady_state/>
198
 
            </steady_state>
199
 
            <consistent_interpolation/>
200
 
          </prognostic>
201
 
        </scalar_field>
202
 
        <scalar_field name="TurbulentDissipation" rank="0">
203
 
          <prognostic>
204
 
            <mesh name="VelocityMesh"/>
205
 
            <equation name="AdvectionDiffusion"/>
206
 
            <spatial_discretisation>
207
 
              <continuous_galerkin>
208
 
                <stabilisation>
209
 
                  <no_stabilisation/>
210
 
                </stabilisation>
211
 
                <advection_terms/>
212
 
                <mass_terms/>
213
 
              </continuous_galerkin>
214
 
              <conservative_advection>
215
 
                <real_value rank="0">0</real_value>
216
 
              </conservative_advection>
217
 
            </spatial_discretisation>
218
 
            <temporal_discretisation>
219
 
              <theta>
220
 
                <real_value rank="0">0.5</real_value>
221
 
              </theta>
222
 
            </temporal_discretisation>
223
 
            <solver>
224
 
              <iterative_method name="gmres">
225
 
                <restart>
226
 
                  <integer_value rank="0">30</integer_value>
227
 
                </restart>
228
 
              </iterative_method>
229
 
              <preconditioner name="sor"/>
230
 
              <relative_error>
231
 
                <real_value rank="0">1.e-8</real_value>
232
 
              </relative_error>
233
 
              <max_iterations>
234
 
                <integer_value rank="0">10000</integer_value>
235
 
              </max_iterations>
236
 
              <never_ignore_solver_failures/>
237
 
              <diagnostics>
238
 
                <monitors/>
239
 
              </diagnostics>
240
 
            </solver>
241
 
            <initial_condition name="WholeMesh">
242
 
              <constant>
243
 
                <real_value rank="0">0.000001</real_value>
244
 
              </constant>
245
 
            </initial_condition>
246
 
            <boundary_conditions name="all_sides">
247
 
              <surface_ids>
248
 
                <integer_value shape="4" rank="1">7 8 9 10</integer_value>
249
 
              </surface_ids>
250
 
              <type name="dirichlet">
251
 
                <python>
252
 
                  <string_value lines="20" type="code" language="python">def val(X,t):
253
 
        import k_epsilon_tools as k
254
 
        eps=k.eps(X)
255
 
        return eps</string_value>
256
 
                </python>
257
 
              </type>
258
 
            </boundary_conditions>
259
 
            <tensor_field name="Diffusivity" rank="2">
260
 
              <diagnostic>
261
 
                <algorithm name="Internal" material_phase_support="multiple"/>
262
 
                <output/>
263
 
                <stat>
264
 
                  <exclude_from_stat/>
265
 
                </stat>
266
 
              </diagnostic>
267
 
            </tensor_field>
268
 
            <scalar_field name="Source" rank="0">
269
 
              <prescribed>
270
 
                <value name="WholeMesh">
271
 
                  <python>
272
 
                    <string_value lines="20" type="code" language="python">def val(X,t):
273
 
        import k_epsilon_tools as k
274
 
        return k.forcing_eps(X)</string_value>
275
 
                  </python>
276
 
                </value>
277
 
                <output/>
278
 
                <stat/>
279
 
                <detectors>
280
 
                  <exclude_from_detectors/>
281
 
                </detectors>
282
 
              </prescribed>
283
 
            </scalar_field>
284
 
            <scalar_field name="Absorption" rank="0">
285
 
              <diagnostic>
286
 
                <algorithm name="Internal" material_phase_support="multiple"/>
287
 
                <output/>
288
 
                <stat/>
289
 
                <detectors>
290
 
                  <include_in_detectors/>
291
 
                </detectors>
292
 
              </diagnostic>
293
 
            </scalar_field>
294
 
            <output>
295
 
              <include_previous_time_step/>
296
 
            </output>
297
 
            <stat/>
298
 
            <convergence>
299
 
              <include_in_convergence/>
300
 
            </convergence>
301
 
            <detectors>
302
 
              <include_in_detectors/>
303
 
            </detectors>
304
 
            <steady_state>
305
 
              <exclude_from_steady_state/>
306
 
            </steady_state>
307
 
            <consistent_interpolation/>
308
 
          </prognostic>
309
 
        </scalar_field>
310
 
        <tensor_field name="BackgroundViscosity" rank="2">
311
 
          <prescribed>
312
 
            <mesh name="VelocityMesh"/>
313
 
            <value name="WholeMesh">
314
 
              <isotropic>
315
 
                <constant>
316
 
                  <real_value rank="0">0.7</real_value>
317
 
                </constant>
318
 
              </isotropic>
319
 
            </value>
320
 
            <output>
321
 
              <exclude_from_vtu/>
322
 
            </output>
323
 
          </prescribed>
324
 
        </tensor_field>
325
 
        <tensor_field name="EddyViscosity" rank="2">
326
 
          <diagnostic>
327
 
            <algorithm name="Internal" material_phase_support="multiple"/>
328
 
            <mesh name="VelocityMesh"/>
329
 
            <output>
330
 
              <exclude_from_vtu/>
331
 
            </output>
332
 
            <stat>
333
 
              <exclude_from_stat/>
334
 
            </stat>
335
 
          </diagnostic>
336
 
        </tensor_field>
337
 
        <scalar_field name="ScalarEddyViscosity" rank="0">
338
 
          <diagnostic>
339
 
            <algorithm name="Internal" material_phase_support="multiple"/>
340
 
            <mesh name="VelocityMesh"/>
341
 
            <output/>
342
 
            <stat/>
343
 
            <convergence>
344
 
              <include_in_convergence/>
345
 
            </convergence>
346
 
            <detectors>
347
 
              <include_in_detectors/>
348
 
            </detectors>
349
 
            <steady_state>
350
 
              <exclude_from_steady_state/>
351
 
            </steady_state>
352
 
          </diagnostic>
353
 
        </scalar_field>
354
 
        <scalar_field name="LengthScale" rank="0">
355
 
          <diagnostic>
356
 
            <algorithm name="Internal" material_phase_support="multiple"/>
357
 
            <mesh name="VelocityMesh"/>
358
 
            <output/>
359
 
            <stat/>
360
 
            <convergence>
361
 
              <include_in_convergence/>
362
 
            </convergence>
363
 
            <detectors>
364
 
              <include_in_detectors/>
365
 
            </detectors>
366
 
            <steady_state>
367
 
              <include_in_steady_state/>
368
 
            </steady_state>
369
 
          </diagnostic>
370
 
        </scalar_field>
371
 
        <source_absorption>
372
 
          <string_value>explicit</string_value>
373
 
        </source_absorption>
374
 
        <lengthscale_limit>
375
 
          <real_value rank="0">3</real_value>
376
 
        </lengthscale_limit>
377
 
        <C_mu>
378
 
          <real_value rank="0">0.09</real_value>
379
 
        </C_mu>
380
 
        <C_eps_1>
381
 
          <real_value rank="0">1.44</real_value>
382
 
        </C_eps_1>
383
 
        <C_eps_2>
384
 
          <real_value rank="0">1.92</real_value>
385
 
        </C_eps_2>
386
 
        <sigma_k>
387
 
          <real_value rank="0">1.0</real_value>
388
 
        </sigma_k>
389
 
        <sigma_eps>
390
 
          <real_value rank="0">1.3</real_value>
391
 
        </sigma_eps>
392
 
      </k-epsilon>
393
 
    </subgridscale_parameterisations>
394
 
    <scalar_field name="Pressure" rank="0">
395
 
      <prognostic>
396
 
        <mesh name="PressureMesh"/>
397
 
        <spatial_discretisation>
398
 
          <continuous_galerkin/>
399
 
        </spatial_discretisation>
400
 
        <reference_node>
401
 
          <integer_value rank="0">1</integer_value>
402
 
        </reference_node>
403
 
        <scheme>
404
 
          <poisson_pressure_solution>
405
 
            <string_value lines="1">never</string_value>
406
 
          </poisson_pressure_solution>
407
 
          <use_projection_method/>
408
 
        </scheme>
409
 
        <solver>
410
 
          <iterative_method name="cg"/>
411
 
          <preconditioner name="sor"/>
412
 
          <relative_error>
413
 
            <real_value rank="0">1.e-8</real_value>
414
 
          </relative_error>
415
 
          <max_iterations>
416
 
            <integer_value rank="0">10000</integer_value>
417
 
          </max_iterations>
418
 
          <never_ignore_solver_failures/>
419
 
          <diagnostics>
420
 
            <monitors/>
421
 
          </diagnostics>
422
 
        </solver>
423
 
        <initial_condition name="WholeMesh">
424
 
          <constant>
425
 
            <real_value rank="0">0.0</real_value>
426
 
          </constant>
427
 
        </initial_condition>
428
 
        <output>
429
 
          <include_previous_time_step/>
430
 
        </output>
431
 
        <stat/>
432
 
        <convergence>
433
 
          <include_in_convergence/>
434
 
        </convergence>
435
 
        <detectors>
436
 
          <exclude_from_detectors/>
437
 
        </detectors>
438
 
        <steady_state>
439
 
          <exclude_from_steady_state/>
440
 
        </steady_state>
441
 
        <no_interpolation/>
442
 
      </prognostic>
443
 
    </scalar_field>
444
 
    <vector_field name="Velocity" rank="1">
445
 
      <prognostic>
446
 
        <mesh name="VelocityMesh"/>
447
 
        <equation name="Boussinesq"/>
448
 
        <spatial_discretisation>
449
 
          <continuous_galerkin>
450
 
            <stabilisation>
451
 
              <no_stabilisation/>
452
 
            </stabilisation>
453
 
            <mass_terms>
454
 
              <lump_mass_matrix/>
455
 
            </mass_terms>
456
 
            <advection_terms/>
457
 
            <stress_terms>
458
 
              <tensor_form/>
459
 
            </stress_terms>
460
 
          </continuous_galerkin>
461
 
          <conservative_advection>
462
 
            <real_value rank="0">0.0</real_value>
463
 
          </conservative_advection>
464
 
        </spatial_discretisation>
465
 
        <temporal_discretisation>
466
 
          <theta>
467
 
            <real_value rank="0">0.5</real_value>
468
 
          </theta>
469
 
          <relaxation>
470
 
            <real_value rank="0">0.5</real_value>
471
 
          </relaxation>
472
 
        </temporal_discretisation>
473
 
        <solver>
474
 
          <iterative_method name="gmres">
475
 
            <restart>
476
 
              <integer_value rank="0">30</integer_value>
477
 
            </restart>
478
 
          </iterative_method>
479
 
          <preconditioner name="sor"/>
480
 
          <relative_error>
481
 
            <real_value rank="0">1.e-7</real_value>
482
 
          </relative_error>
483
 
          <max_iterations>
484
 
            <integer_value rank="0">10000</integer_value>
485
 
          </max_iterations>
486
 
          <never_ignore_solver_failures/>
487
 
          <diagnostics>
488
 
            <monitors/>
489
 
          </diagnostics>
490
 
        </solver>
491
 
        <initial_condition name="WholeMesh">
492
 
          <constant>
493
 
            <real_value shape="2" dim1="dim" rank="1">0.0 0.0</real_value>
494
 
          </constant>
495
 
        </initial_condition>
496
 
        <boundary_conditions name="all_sides">
497
 
          <surface_ids>
498
 
            <integer_value shape="4" rank="1">7 8 9 10</integer_value>
499
 
          </surface_ids>
500
 
          <type name="dirichlet">
501
 
            <align_bc_with_cartesian>
502
 
              <x_component>
503
 
                <python>
504
 
                  <string_value lines="20" type="code" language="python">def val(X,t):
505
 
   import k_epsilon_tools as k
506
 
   # Shear rotation about origin.
507
 
   return k.velocity(X)[0]</string_value>
508
 
                </python>
509
 
              </x_component>
510
 
              <y_component>
511
 
                <python>
512
 
                  <string_value lines="20" type="code" language="python">def val(X,t):
513
 
   import k_epsilon_tools as k
514
 
   # Shear rotation about origin.
515
 
   return k.velocity(X)[1]</string_value>
516
 
                </python>
517
 
              </y_component>
518
 
            </align_bc_with_cartesian>
519
 
          </type>
520
 
        </boundary_conditions>
521
 
        <tensor_field name="Viscosity" rank="2">
522
 
          <diagnostic>
523
 
            <algorithm name="Internal" material_phase_support="multiple"/>
524
 
            <output/>
525
 
            <stat>
526
 
              <include_in_stat/>
527
 
            </stat>
528
 
          </diagnostic>
529
 
        </tensor_field>
530
 
        <vector_field name="Source" rank="1">
531
 
          <prescribed>
532
 
            <value name="WholeMesh">
533
 
              <python>
534
 
                <string_value lines="20" type="code" language="python">def val(X,t):
535
 
   import k_epsilon_tools as k
536
 
   return k.forcing_mom(X)</string_value>
537
 
              </python>
538
 
            </value>
539
 
            <output/>
540
 
            <stat>
541
 
              <include_in_stat/>
542
 
            </stat>
543
 
            <detectors>
544
 
              <exclude_from_detectors/>
545
 
            </detectors>
546
 
          </prescribed>
547
 
        </vector_field>
548
 
        <output>
549
 
          <include_previous_time_step/>
550
 
        </output>
551
 
        <stat>
552
 
          <include_in_stat/>
553
 
          <previous_time_step>
554
 
            <exclude_from_stat/>
555
 
          </previous_time_step>
556
 
          <nonlinear_field>
557
 
            <exclude_from_stat/>
558
 
          </nonlinear_field>
559
 
        </stat>
560
 
        <convergence>
561
 
          <include_in_convergence/>
562
 
        </convergence>
563
 
        <detectors>
564
 
          <include_in_detectors/>
565
 
        </detectors>
566
 
        <steady_state>
567
 
          <exclude_from_steady_state/>
568
 
        </steady_state>
569
 
        <consistent_interpolation/>
570
 
      </prognostic>
571
 
    </vector_field>
572
 
    <scalar_field name="CFLNumber" rank="0">
573
 
      <diagnostic>
574
 
        <algorithm name="Internal" material_phase_support="multiple"/>
575
 
        <mesh name="VelocityMesh"/>
576
 
        <output/>
577
 
        <stat/>
578
 
        <convergence>
579
 
          <include_in_convergence/>
580
 
        </convergence>
581
 
        <detectors>
582
 
          <include_in_detectors/>
583
 
        </detectors>
584
 
        <steady_state>
585
 
          <include_in_steady_state/>
586
 
        </steady_state>
587
 
      </diagnostic>
588
 
    </scalar_field>
589
 
    <scalar_field name="PressureAnalytical" rank="0">
590
 
      <prescribed>
591
 
        <mesh name="PressureMesh"/>
592
 
        <value name="WholeMesh">
593
 
          <python>
594
 
            <string_value lines="20" type="code" language="python">def val(X,t):
595
 
        import k_epsilon_tools as k
596
 
        return k.pressure(X)</string_value>
597
 
          </python>
598
 
        </value>
599
 
        <output/>
600
 
        <stat/>
601
 
        <detectors>
602
 
          <exclude_from_detectors/>
603
 
        </detectors>
604
 
      </prescribed>
605
 
    </scalar_field>
606
 
    <scalar_field name="PressureDifference" rank="0">
607
 
      <diagnostic>
608
 
        <algorithm name="scalar_python_diagnostic" material_phase_support="single">
609
 
          <string_value lines="20" type="code" language="python">E=state.scalar_fields["Pressure"]
610
 
S=state.scalar_fields["PressureAnalytical"]
611
 
 
612
 
for n in range(field.node_count):
613
 
        E_n=E.node_val(n)
614
 
        S_n=S.node_val(n)
615
 
        field.set(n,E_n-S_n)</string_value>
616
 
          <depends>
617
 
            <string_value lines="1">Pressure</string_value>
618
 
          </depends>
619
 
        </algorithm>
620
 
        <mesh name="PressureMesh"/>
621
 
        <output/>
622
 
        <stat/>
623
 
        <convergence>
624
 
          <include_in_convergence/>
625
 
        </convergence>
626
 
        <detectors>
627
 
          <include_in_detectors/>
628
 
        </detectors>
629
 
        <steady_state>
630
 
          <include_in_steady_state/>
631
 
        </steady_state>
632
 
      </diagnostic>
633
 
    </scalar_field>
634
 
    <scalar_field name="EddyViscosityAnalytical" rank="0">
635
 
      <prescribed>
636
 
        <mesh name="VelocityMesh"/>
637
 
        <value name="WholeMesh">
638
 
          <python>
639
 
            <string_value lines="20" type="code" language="python">def val(X,t):
640
 
        import k_epsilon_tools as k
641
 
        nut=k.nut(X)
642
 
        return nut</string_value>
643
 
          </python>
644
 
        </value>
645
 
        <output/>
646
 
        <stat/>
647
 
        <detectors>
648
 
          <exclude_from_detectors/>
649
 
        </detectors>
650
 
      </prescribed>
651
 
    </scalar_field>
652
 
    <scalar_field name="EddyViscosityDifference" rank="0">
653
 
      <diagnostic>
654
 
        <algorithm name="scalar_python_diagnostic" material_phase_support="single">
655
 
          <string_value lines="20" type="code" language="python">E=state.scalar_fields["ScalarEddyViscosity"]
656
 
S=state.scalar_fields["EddyViscosityAnalytical"]
657
 
 
658
 
for n in range(field.node_count):
659
 
        E_n=E.node_val(n)
660
 
        S_n=S.node_val(n)
661
 
        field.set(n,E_n-S_n)</string_value>
662
 
        </algorithm>
663
 
        <mesh name="VelocityMesh"/>
664
 
        <output/>
665
 
        <stat/>
666
 
        <convergence>
667
 
          <include_in_convergence/>
668
 
        </convergence>
669
 
        <detectors>
670
 
          <include_in_detectors/>
671
 
        </detectors>
672
 
        <steady_state>
673
 
          <include_in_steady_state/>
674
 
        </steady_state>
675
 
      </diagnostic>
676
 
    </scalar_field>
677
 
    <scalar_field name="TKEAnalytical" rank="0">
678
 
      <prescribed>
679
 
        <mesh name="VelocityMesh"/>
680
 
        <value name="WholeMesh">
681
 
          <python>
682
 
            <string_value lines="20" type="code" language="python">def val(X,t):
683
 
        import k_epsilon_tools as k
684
 
        tke=k.tke(X)
685
 
        return tke</string_value>
686
 
          </python>
687
 
        </value>
688
 
        <output/>
689
 
        <stat/>
690
 
        <detectors>
691
 
          <exclude_from_detectors/>
692
 
        </detectors>
693
 
      </prescribed>
694
 
    </scalar_field>
695
 
    <scalar_field name="TKEDifference" rank="0">
696
 
      <diagnostic>
697
 
        <algorithm name="scalar_python_diagnostic" material_phase_support="single">
698
 
          <string_value lines="20" type="code" language="python">E=state.scalar_fields["TurbulentKineticEnergy"]
699
 
S=state.scalar_fields["TKEAnalytical"]
700
 
 
701
 
for n in range(field.node_count):
702
 
        E_n=E.node_val(n)
703
 
        S_n=S.node_val(n)
704
 
        field.set(n,E_n-S_n)</string_value>
705
 
        </algorithm>
706
 
        <mesh name="VelocityMesh"/>
707
 
        <output/>
708
 
        <stat/>
709
 
        <convergence>
710
 
          <include_in_convergence/>
711
 
        </convergence>
712
 
        <detectors>
713
 
          <include_in_detectors/>
714
 
        </detectors>
715
 
        <steady_state>
716
 
          <include_in_steady_state/>
717
 
        </steady_state>
718
 
      </diagnostic>
719
 
    </scalar_field>
720
 
    <scalar_field name="EpsilonAnalytical" rank="0">
721
 
      <prescribed>
722
 
        <mesh name="VelocityMesh"/>
723
 
        <value name="WholeMesh">
724
 
          <python>
725
 
            <string_value lines="20" type="code" language="python">def val(X,t):
726
 
        import k_epsilon_tools as k
727
 
        eps=k.eps(X)
728
 
        return eps</string_value>
729
 
          </python>
730
 
        </value>
731
 
        <output/>
732
 
        <stat/>
733
 
        <detectors>
734
 
          <exclude_from_detectors/>
735
 
        </detectors>
736
 
      </prescribed>
737
 
    </scalar_field>
738
 
    <scalar_field name="EpsilonDifference" rank="0">
739
 
      <diagnostic>
740
 
        <algorithm name="scalar_python_diagnostic" material_phase_support="single">
741
 
          <string_value lines="20" type="code" language="python">E=state.scalar_fields["TurbulentDissipation"]
742
 
S=state.scalar_fields["EpsilonAnalytical"]
743
 
 
744
 
for n in range(field.node_count):
745
 
        E_n=E.node_val(n)
746
 
        S_n=S.node_val(n)
747
 
        field.set(n,E_n-S_n)</string_value>
748
 
        </algorithm>
749
 
        <mesh name="VelocityMesh"/>
750
 
        <output/>
751
 
        <stat/>
752
 
        <convergence>
753
 
          <include_in_convergence/>
754
 
        </convergence>
755
 
        <detectors>
756
 
          <include_in_detectors/>
757
 
        </detectors>
758
 
        <steady_state>
759
 
          <include_in_steady_state/>
760
 
        </steady_state>
761
 
      </diagnostic>
762
 
    </scalar_field>
763
 
    <vector_field name="VelocityAnalytical" rank="1">
764
 
      <prescribed>
765
 
        <mesh name="VelocityMesh"/>
766
 
        <value name="WholeMesh">
767
 
          <python>
768
 
            <string_value lines="20" type="code" language="python">def val(X,t):
769
 
        import k_epsilon_tools as k
770
 
        return k.velocity(X)</string_value>
771
 
          </python>
772
 
        </value>
773
 
        <output/>
774
 
        <stat>
775
 
          <include_in_stat/>
776
 
        </stat>
777
 
        <detectors>
778
 
          <exclude_from_detectors/>
779
 
        </detectors>
780
 
      </prescribed>
781
 
    </vector_field>
782
 
    <vector_field name="VelocityDifference" rank="1">
783
 
      <diagnostic>
784
 
        <algorithm source_field_2_type="vector" name="vector_difference" source_field_1_name="Velocity" source_field_2_name="VelocityAnalytical" material_phase_support="single" source_field_1_type="vector"/>
785
 
        <mesh name="VelocityMesh"/>
786
 
        <output/>
787
 
        <stat>
788
 
          <include_in_stat/>
789
 
        </stat>
790
 
        <convergence>
791
 
          <include_in_convergence/>
792
 
        </convergence>
793
 
        <detectors>
794
 
          <include_in_detectors/>
795
 
        </detectors>
796
 
        <steady_state>
797
 
          <include_in_steady_state/>
798
 
        </steady_state>
799
 
      </diagnostic>
800
 
    </vector_field>
801
 
  </material_phase>
802
 
</fluidity_options>