~fluidity-core/fluidity/bug_1183080

« back to all changes in this revision

Viewing changes to tests/Helmholtz-anisotropic-vector-mms-p1p1cg-structured/MMS_C_structured.flml

  • Committer: Tim Greaves
  • Date: 2013-04-19 11:53:43 UTC
  • mfrom: (3463.2.94 turbulence-clean)
  • Revision ID: tim.greaves@imperial.ac.uk-20130419115343-qq0m21v905aachuy
This merge is a replay of a previous merge which was reviewed in detail by
Christian Jacobs. There have been no changes since this was approved, hence I'm
fast-tracking this through as the concerns that led to the previous uncommit
have been resolved.

This merge brings in general updates from Jonathan Bull to his turbulence codes
and updates the BFS examples and various related tests to reflect this.

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_C_structured</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
        <mesh_shape>
 
25
          <polynomial_degree>
 
26
            <integer_value rank="0">1</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="InputMesh"/>
 
37
        <stat>
 
38
          <exclude_from_stat/>
 
39
        </stat>
 
40
      </from_mesh>
 
41
    </mesh>
 
42
    <mesh name="InputMesh">
 
43
      <from_file file_name="MMS_C_structured">
 
44
        <format name="gmsh"/>
 
45
        <stat>
 
46
          <include_in_stat/>
 
47
        </stat>
 
48
      </from_file>
 
49
    </mesh>
 
50
    <mesh name="ErrorMesh">
 
51
      <from_mesh>
 
52
        <mesh name="CoordinateMesh"/>
 
53
        <mesh_shape>
 
54
          <polynomial_degree>
 
55
            <integer_value rank="0">4</integer_value>
 
56
          </polynomial_degree>
 
57
        </mesh_shape>
 
58
        <mesh_continuity>
 
59
          <string_value>continuous</string_value>
 
60
        </mesh_continuity>
 
61
        <stat>
 
62
          <exclude_from_stat/>
 
63
        </stat>
 
64
      </from_mesh>
 
65
    </mesh>
 
66
    <quadrature>
 
67
      <degree>
 
68
        <integer_value rank="0">8</integer_value>
 
69
      </degree>
 
70
    </quadrature>
 
71
  </geometry>
 
72
  <io>
 
73
    <dump_format>
 
74
      <string_value>vtk</string_value>
 
75
    </dump_format>
 
76
    <dump_period>
 
77
      <constant>
 
78
        <real_value rank="0">3</real_value>
 
79
      </constant>
 
80
    </dump_period>
 
81
    <output_mesh name="VelocityMesh"/>
 
82
    <stat/>
 
83
  </io>
 
84
  <timestepping>
 
85
    <current_time>
 
86
      <real_value rank="0">0.0</real_value>
 
87
    </current_time>
 
88
    <timestep>
 
89
      <real_value rank="0">0.1</real_value>
 
90
    </timestep>
 
91
    <finish_time>
 
92
      <real_value rank="0">3</real_value>
 
93
    </finish_time>
 
94
    <nonlinear_iterations>
 
95
      <integer_value rank="0">2</integer_value>
 
96
    </nonlinear_iterations>
 
97
    <adaptive_timestep>
 
98
      <requested_cfl>
 
99
        <real_value rank="0">1.</real_value>
 
100
      </requested_cfl>
 
101
      <courant_number name="CFLNumber">
 
102
        <mesh name="VelocityMesh"/>
 
103
      </courant_number>
 
104
    </adaptive_timestep>
 
105
    <steady_state>
 
106
      <tolerance>
 
107
        <real_value rank="0">1.e-6</real_value>
 
108
        <infinity_norm/>
 
109
      </tolerance>
 
110
    </steady_state>
 
111
  </timestepping>
 
112
  <material_phase name="NS">
 
113
    <scalar_field name="Pressure" rank="0">
 
114
      <prognostic>
 
115
        <mesh name="PressureMesh"/>
 
116
        <spatial_discretisation>
 
117
          <continuous_galerkin/>
 
118
        </spatial_discretisation>
 
119
        <reference_coordinates>
 
120
          <real_value shape="2" dim1="dim" rank="1">1.57079632679 1.57079632679</real_value>
 
121
        </reference_coordinates>
 
122
        <scheme>
 
123
          <poisson_pressure_solution>
 
124
            <string_value lines="1">never</string_value>
 
125
          </poisson_pressure_solution>
 
126
          <use_projection_method/>
 
127
        </scheme>
 
128
        <solver>
 
129
          <iterative_method name="cg"/>
 
130
          <preconditioner name="sor"/>
 
131
          <relative_error>
 
132
            <real_value rank="0">1.e-8</real_value>
 
133
          </relative_error>
 
134
          <max_iterations>
 
135
            <integer_value rank="0">10000</integer_value>
 
136
          </max_iterations>
 
137
          <never_ignore_solver_failures/>
 
138
          <diagnostics>
 
139
            <monitors/>
 
140
          </diagnostics>
 
141
        </solver>
 
142
        <output>
 
143
          <include_previous_time_step/>
 
144
        </output>
 
145
        <stat/>
 
146
        <convergence>
 
147
          <include_in_convergence/>
 
148
        </convergence>
 
149
        <detectors>
 
150
          <exclude_from_detectors/>
 
151
        </detectors>
 
152
        <steady_state>
 
153
          <exclude_from_steady_state/>
 
154
        </steady_state>
 
155
        <no_interpolation/>
 
156
      </prognostic>
 
157
    </scalar_field>
 
158
    <vector_field name="Velocity" rank="1">
 
159
      <prognostic>
 
160
        <mesh name="VelocityMesh"/>
 
161
        <equation name="Boussinesq"/>
 
162
        <spatial_discretisation>
 
163
          <continuous_galerkin>
 
164
            <stabilisation>
 
165
              <no_stabilisation/>
 
166
            </stabilisation>
 
167
            <mass_terms>
 
168
              <lump_mass_matrix/>
 
169
            </mass_terms>
 
170
            <advection_terms/>
 
171
            <stress_terms>
 
172
              <tensor_form/>
 
173
            </stress_terms>
 
174
          </continuous_galerkin>
 
175
          <conservative_advection>
 
176
            <real_value rank="0">0.</real_value>
 
177
          </conservative_advection>
 
178
        </spatial_discretisation>
 
179
        <temporal_discretisation>
 
180
          <theta>
 
181
            <real_value rank="0">.5</real_value>
 
182
          </theta>
 
183
          <relaxation>
 
184
            <real_value rank="0">.5</real_value>
 
185
          </relaxation>
 
186
        </temporal_discretisation>
 
187
        <solver>
 
188
          <iterative_method name="gmres">
 
189
            <restart>
 
190
              <integer_value rank="0">30</integer_value>
 
191
            </restart>
 
192
          </iterative_method>
 
193
          <preconditioner name="sor"/>
 
194
          <relative_error>
 
195
            <real_value rank="0">1.e-7</real_value>
 
196
          </relative_error>
 
197
          <max_iterations>
 
198
            <integer_value rank="0">1000</integer_value>
 
199
          </max_iterations>
 
200
          <never_ignore_solver_failures/>
 
201
          <diagnostics>
 
202
            <monitors/>
 
203
          </diagnostics>
 
204
        </solver>
 
205
        <initial_condition name="WholeMesh">
 
206
          <constant>
 
207
            <real_value shape="2" dim1="dim" rank="1">0. 0.</real_value>
 
208
          </constant>
 
209
        </initial_condition>
 
210
        <boundary_conditions name="sides">
 
211
          <surface_ids>
 
212
            <integer_value shape="4" rank="1">7 8 9 10</integer_value>
 
213
          </surface_ids>
 
214
          <type name="dirichlet">
 
215
            <align_bc_with_cartesian>
 
216
              <x_component>
 
217
                <python>
 
218
                  <string_value lines="20" type="code" language="python">def val(X,t):
 
219
   import helmholtz_tools as k
 
220
   return k.velocity(X)[0]</string_value>
 
221
                </python>
 
222
              </x_component>
 
223
              <y_component>
 
224
                <python>
 
225
                  <string_value lines="20" type="code" language="python">def val(X,t):
 
226
   import helmholtz_tools as k
 
227
   return k.velocity(X)[1]</string_value>
 
228
                </python>
 
229
              </y_component>
 
230
            </align_bc_with_cartesian>
 
231
          </type>
 
232
        </boundary_conditions>
 
233
        <tensor_field name="Viscosity" rank="2">
 
234
          <prescribed>
 
235
            <value name="WholeMesh">
 
236
              <anisotropic_symmetric>
 
237
                <constant>
 
238
                  <real_value symmetric="true" dim2="dim" shape="2 2" dim1="dim" rank="2">0.7 0. 0. 0.7</real_value>
 
239
                </constant>
 
240
              </anisotropic_symmetric>
 
241
            </value>
 
242
            <output>
 
243
              <exclude_from_vtu/>
 
244
            </output>
 
245
          </prescribed>
 
246
        </tensor_field>
 
247
        <vector_field name="Source" rank="1">
 
248
          <prescribed>
 
249
            <value name="WholeMesh">
 
250
              <python>
 
251
                <string_value lines="20" type="code" language="python">def val(X,t):
 
252
   import helmholtz_tools as k
 
253
   return k.forcing_mom(X)</string_value>
 
254
              </python>
 
255
            </value>
 
256
            <output/>
 
257
            <stat>
 
258
              <include_in_stat/>
 
259
            </stat>
 
260
            <detectors>
 
261
              <exclude_from_detectors/>
 
262
            </detectors>
 
263
          </prescribed>
 
264
        </vector_field>
 
265
        <output/>
 
266
        <stat>
 
267
          <include_in_stat/>
 
268
          <previous_time_step>
 
269
            <exclude_from_stat/>
 
270
          </previous_time_step>
 
271
          <nonlinear_field>
 
272
            <exclude_from_stat/>
 
273
          </nonlinear_field>
 
274
        </stat>
 
275
        <convergence>
 
276
          <include_in_convergence/>
 
277
        </convergence>
 
278
        <detectors>
 
279
          <include_in_detectors/>
 
280
        </detectors>
 
281
        <steady_state>
 
282
          <include_in_steady_state/>
 
283
        </steady_state>
 
284
        <consistent_interpolation/>
 
285
      </prognostic>
 
286
    </vector_field>
 
287
    <scalar_field name="Edges" rank="0">
 
288
      <diagnostic>
 
289
        <algorithm name="scalar_edge_lengths" material_phase_support="single"/>
 
290
        <mesh name="VelocityMesh"/>
 
291
        <output/>
 
292
        <stat/>
 
293
        <convergence>
 
294
          <include_in_convergence/>
 
295
        </convergence>
 
296
        <detectors>
 
297
          <include_in_detectors/>
 
298
        </detectors>
 
299
        <steady_state>
 
300
          <exclude_from_steady_state/>
 
301
        </steady_state>
 
302
      </diagnostic>
 
303
    </scalar_field>
 
304
    <scalar_field name="CFLNumber" rank="0">
 
305
      <diagnostic>
 
306
        <algorithm name="Internal" material_phase_support="multiple"/>
 
307
        <mesh name="VelocityMesh"/>
 
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
      </diagnostic>
 
320
    </scalar_field>
 
321
    <vector_field name="VelocityProjection" rank="1">
 
322
      <diagnostic>
 
323
        <algorithm source_field_type="vector" material_phase_support="single" name="vector_galerkin_projection" source_field_name="Velocity">
 
324
          <solver>
 
325
            <iterative_method name="cg"/>
 
326
            <preconditioner name="sor"/>
 
327
            <relative_error>
 
328
              <real_value rank="0">1.e-10</real_value>
 
329
            </relative_error>
 
330
            <max_iterations>
 
331
              <integer_value rank="0">1000</integer_value>
 
332
            </max_iterations>
 
333
            <never_ignore_solver_failures/>
 
334
            <diagnostics>
 
335
              <monitors/>
 
336
            </diagnostics>
 
337
          </solver>
 
338
        </algorithm>
 
339
        <mesh name="ErrorMesh"/>
 
340
        <output/>
 
341
        <stat>
 
342
          <include_in_stat/>
 
343
        </stat>
 
344
        <convergence>
 
345
          <include_in_convergence/>
 
346
        </convergence>
 
347
        <detectors>
 
348
          <include_in_detectors/>
 
349
        </detectors>
 
350
        <steady_state>
 
351
          <include_in_steady_state/>
 
352
        </steady_state>
 
353
      </diagnostic>
 
354
    </vector_field>
 
355
    <vector_field name="AnisoFilteredVelocity" rank="1">
 
356
      <diagnostic>
 
357
        <algorithm source_field_type="vector" material_phase_support="single" name="helmholtz_anisotropic_smoothed_vector" source_field_name="Velocity">
 
358
          <smoothing_scale_factor>
 
359
            <real_value rank="0">2.0</real_value>
 
360
          </smoothing_scale_factor>
 
361
          <solver>
 
362
            <iterative_method name="cg"/>
 
363
            <preconditioner name="sor"/>
 
364
            <relative_error>
 
365
              <real_value rank="0">1.e-5</real_value>
 
366
            </relative_error>
 
367
            <max_iterations>
 
368
              <integer_value rank="0">100</integer_value>
 
369
            </max_iterations>
 
370
            <never_ignore_solver_failures/>
 
371
            <diagnostics>
 
372
              <monitors/>
 
373
            </diagnostics>
 
374
          </solver>
 
375
        </algorithm>
 
376
        <mesh name="VelocityMesh"/>
 
377
        <output/>
 
378
        <stat>
 
379
          <include_in_stat/>
 
380
        </stat>
 
381
        <convergence>
 
382
          <include_in_convergence/>
 
383
        </convergence>
 
384
        <detectors>
 
385
          <include_in_detectors/>
 
386
        </detectors>
 
387
        <steady_state>
 
388
          <include_in_steady_state/>
 
389
        </steady_state>
 
390
      </diagnostic>
 
391
    </vector_field>
 
392
    <vector_field name="AnisoFilteredVelocityProjection" rank="1">
 
393
      <diagnostic>
 
394
        <algorithm source_field_type="vector" material_phase_support="single" name="vector_galerkin_projection" source_field_name="AnisoFilteredVelocity">
 
395
          <solver>
 
396
            <iterative_method name="cg"/>
 
397
            <preconditioner name="sor"/>
 
398
            <relative_error>
 
399
              <real_value rank="0">1.e-10</real_value>
 
400
            </relative_error>
 
401
            <max_iterations>
 
402
              <integer_value rank="0">1000</integer_value>
 
403
            </max_iterations>
 
404
            <never_ignore_solver_failures/>
 
405
            <diagnostics>
 
406
              <monitors/>
 
407
            </diagnostics>
 
408
          </solver>
 
409
        </algorithm>
 
410
        <mesh name="ErrorMesh"/>
 
411
        <output/>
 
412
        <stat>
 
413
          <include_in_stat/>
 
414
        </stat>
 
415
        <convergence>
 
416
          <include_in_convergence/>
 
417
        </convergence>
 
418
        <detectors>
 
419
          <include_in_detectors/>
 
420
        </detectors>
 
421
        <steady_state>
 
422
          <include_in_steady_state/>
 
423
        </steady_state>
 
424
      </diagnostic>
 
425
    </vector_field>
 
426
    <vector_field name="AnisoFilterDifference" rank="1">
 
427
      <diagnostic>
 
428
        <algorithm source_field_2_type="vector" name="vector_difference" source_field_1_name="VelocityProjection" source_field_2_name="AnisoFilteredVelocityProjection" material_phase_support="single" source_field_1_type="vector"/>
 
429
        <mesh name="ErrorMesh"/>
 
430
        <output/>
 
431
        <stat>
 
432
          <include_in_stat/>
 
433
        </stat>
 
434
        <convergence>
 
435
          <include_in_convergence/>
 
436
        </convergence>
 
437
        <detectors>
 
438
          <include_in_detectors/>
 
439
        </detectors>
 
440
        <steady_state>
 
441
          <include_in_steady_state/>
 
442
        </steady_state>
 
443
      </diagnostic>
 
444
    </vector_field>
 
445
    <vector_field name="IsoFilteredVelocity" rank="1">
 
446
      <diagnostic>
 
447
        <algorithm source_field_type="vector" material_phase_support="single" name="helmholtz_smoothed_vector" source_field_name="Velocity">
 
448
          <smoothing_scale_factor>
 
449
            <real_value rank="0">2.0</real_value>
 
450
          </smoothing_scale_factor>
 
451
          <solver>
 
452
            <iterative_method name="cg"/>
 
453
            <preconditioner name="sor"/>
 
454
            <relative_error>
 
455
              <real_value rank="0">1.e-5</real_value>
 
456
            </relative_error>
 
457
            <max_iterations>
 
458
              <integer_value rank="0">100</integer_value>
 
459
            </max_iterations>
 
460
            <never_ignore_solver_failures/>
 
461
            <diagnostics>
 
462
              <monitors/>
 
463
            </diagnostics>
 
464
          </solver>
 
465
        </algorithm>
 
466
        <mesh name="VelocityMesh"/>
 
467
        <output/>
 
468
        <stat>
 
469
          <include_in_stat/>
 
470
        </stat>
 
471
        <convergence>
 
472
          <include_in_convergence/>
 
473
        </convergence>
 
474
        <detectors>
 
475
          <include_in_detectors/>
 
476
        </detectors>
 
477
        <steady_state>
 
478
          <include_in_steady_state/>
 
479
        </steady_state>
 
480
      </diagnostic>
 
481
    </vector_field>
 
482
    <vector_field name="IsoFilteredVelocityProjection" rank="1">
 
483
      <diagnostic>
 
484
        <algorithm source_field_type="vector" material_phase_support="single" name="vector_galerkin_projection" source_field_name="IsoFilteredVelocity">
 
485
          <solver>
 
486
            <iterative_method name="cg"/>
 
487
            <preconditioner name="sor"/>
 
488
            <relative_error>
 
489
              <real_value rank="0">1.e-10</real_value>
 
490
            </relative_error>
 
491
            <max_iterations>
 
492
              <integer_value rank="0">1000</integer_value>
 
493
            </max_iterations>
 
494
            <never_ignore_solver_failures/>
 
495
            <diagnostics>
 
496
              <monitors/>
 
497
            </diagnostics>
 
498
          </solver>
 
499
        </algorithm>
 
500
        <mesh name="ErrorMesh"/>
 
501
        <output/>
 
502
        <stat>
 
503
          <include_in_stat/>
 
504
        </stat>
 
505
        <convergence>
 
506
          <include_in_convergence/>
 
507
        </convergence>
 
508
        <detectors>
 
509
          <include_in_detectors/>
 
510
        </detectors>
 
511
        <steady_state>
 
512
          <include_in_steady_state/>
 
513
        </steady_state>
 
514
      </diagnostic>
 
515
    </vector_field>
 
516
    <vector_field name="IsoFilterDifference" rank="1">
 
517
      <diagnostic>
 
518
        <algorithm source_field_2_type="vector" name="vector_difference" source_field_1_name="VelocityProjection" source_field_2_name="IsoFilteredVelocityProjection" material_phase_support="single" source_field_1_type="vector"/>
 
519
        <mesh name="ErrorMesh"/>
 
520
        <output/>
 
521
        <stat>
 
522
          <include_in_stat/>
 
523
        </stat>
 
524
        <convergence>
 
525
          <include_in_convergence/>
 
526
        </convergence>
 
527
        <detectors>
 
528
          <include_in_detectors/>
 
529
        </detectors>
 
530
        <steady_state>
 
531
          <include_in_steady_state/>
 
532
        </steady_state>
 
533
      </diagnostic>
 
534
    </vector_field>
 
535
    <vector_field name="MLFilteredVelocity" rank="1">
 
536
      <diagnostic>
 
537
        <algorithm source_field_type="vector" material_phase_support="single" name="lumped_mass_smoothed_vector" source_field_name="Velocity"/>
 
538
        <mesh name="VelocityMesh"/>
 
539
        <output/>
 
540
        <stat>
 
541
          <include_in_stat/>
 
542
        </stat>
 
543
        <convergence>
 
544
          <include_in_convergence/>
 
545
        </convergence>
 
546
        <detectors>
 
547
          <include_in_detectors/>
 
548
        </detectors>
 
549
        <steady_state>
 
550
          <include_in_steady_state/>
 
551
        </steady_state>
 
552
      </diagnostic>
 
553
    </vector_field>
 
554
    <vector_field name="MLFilteredVelocityProjection" rank="1">
 
555
      <diagnostic>
 
556
        <algorithm source_field_type="vector" material_phase_support="single" name="vector_galerkin_projection" source_field_name="MLFilteredVelocity">
 
557
          <solver>
 
558
            <iterative_method name="cg"/>
 
559
            <preconditioner name="sor"/>
 
560
            <relative_error>
 
561
              <real_value rank="0">1.e-10</real_value>
 
562
            </relative_error>
 
563
            <max_iterations>
 
564
              <integer_value rank="0">1000</integer_value>
 
565
            </max_iterations>
 
566
            <never_ignore_solver_failures/>
 
567
            <diagnostics>
 
568
              <monitors/>
 
569
            </diagnostics>
 
570
          </solver>
 
571
        </algorithm>
 
572
        <mesh name="ErrorMesh"/>
 
573
        <output/>
 
574
        <stat>
 
575
          <include_in_stat/>
 
576
        </stat>
 
577
        <convergence>
 
578
          <include_in_convergence/>
 
579
        </convergence>
 
580
        <detectors>
 
581
          <include_in_detectors/>
 
582
        </detectors>
 
583
        <steady_state>
 
584
          <include_in_steady_state/>
 
585
        </steady_state>
 
586
      </diagnostic>
 
587
    </vector_field>
 
588
    <vector_field name="MLFilterDifference" rank="1">
 
589
      <diagnostic>
 
590
        <algorithm source_field_2_type="vector" name="vector_difference" source_field_1_name="VelocityProjection" source_field_2_name="MLFilteredVelocityProjection" material_phase_support="single" source_field_1_type="vector"/>
 
591
        <mesh name="ErrorMesh"/>
 
592
        <output/>
 
593
        <stat>
 
594
          <include_in_stat/>
 
595
        </stat>
 
596
        <convergence>
 
597
          <include_in_convergence/>
 
598
        </convergence>
 
599
        <detectors>
 
600
          <include_in_detectors/>
 
601
        </detectors>
 
602
        <steady_state>
 
603
          <include_in_steady_state/>
 
604
        </steady_state>
 
605
      </diagnostic>
 
606
    </vector_field>
 
607
    <vector_field name="AnalyticalVelocity" rank="1">
 
608
      <prescribed>
 
609
        <mesh name="ErrorMesh"/>
 
610
        <value name="WholeMesh">
 
611
          <python>
 
612
            <string_value lines="20" type="code" language="python">def val(X,t):
 
613
   import helmholtz_tools as k
 
614
   return k.velocity(X)</string_value>
 
615
          </python>
 
616
        </value>
 
617
        <output/>
 
618
        <stat>
 
619
          <include_in_stat/>
 
620
        </stat>
 
621
        <detectors>
 
622
          <exclude_from_detectors/>
 
623
        </detectors>
 
624
      </prescribed>
 
625
    </vector_field>
 
626
    <vector_field name="AnalyticalDifference" rank="1">
 
627
      <diagnostic>
 
628
        <algorithm source_field_2_type="vector" name="vector_difference" source_field_1_name="AnalyticalVelocity" source_field_2_name="VelocityProjection" material_phase_support="single" source_field_1_type="vector">
 
629
          <absolute_difference/>
 
630
        </algorithm>
 
631
        <mesh name="ErrorMesh"/>
 
632
        <output/>
 
633
        <stat>
 
634
          <include_in_stat/>
 
635
        </stat>
 
636
        <convergence>
 
637
          <include_in_convergence/>
 
638
        </convergence>
 
639
        <detectors>
 
640
          <include_in_detectors/>
 
641
        </detectors>
 
642
        <steady_state>
 
643
          <exclude_from_steady_state/>
 
644
        </steady_state>
 
645
      </diagnostic>
 
646
    </vector_field>
 
647
    <vector_field name="GradDelta" rank="1">
 
648
      <diagnostic>
 
649
        <algorithm source_field_type="scalar" material_phase_support="single" name="grad" source_field_name="Edges"/>
 
650
        <mesh name="VelocityMesh"/>
 
651
        <output/>
 
652
        <stat>
 
653
          <include_in_stat/>
 
654
        </stat>
 
655
        <convergence>
 
656
          <include_in_convergence/>
 
657
        </convergence>
 
658
        <detectors>
 
659
          <include_in_detectors/>
 
660
        </detectors>
 
661
        <steady_state>
 
662
          <exclude_from_steady_state/>
 
663
        </steady_state>
 
664
      </diagnostic>
 
665
    </vector_field>
 
666
    <vector_field name="ZeroFilteredVelocity" rank="1">
 
667
      <diagnostic>
 
668
        <algorithm source_field_type="vector" material_phase_support="single" name="helmholtz_anisotropic_smoothed_vector" source_field_name="Velocity">
 
669
          <smoothing_scale_factor>
 
670
            <real_value rank="0">0.0</real_value>
 
671
          </smoothing_scale_factor>
 
672
          <solver>
 
673
            <iterative_method name="cg"/>
 
674
            <preconditioner name="sor"/>
 
675
            <relative_error>
 
676
              <real_value rank="0">1.e-7</real_value>
 
677
            </relative_error>
 
678
            <max_iterations>
 
679
              <integer_value rank="0">1000</integer_value>
 
680
            </max_iterations>
 
681
            <never_ignore_solver_failures/>
 
682
            <diagnostics>
 
683
              <monitors/>
 
684
            </diagnostics>
 
685
          </solver>
 
686
        </algorithm>
 
687
        <mesh name="VelocityMesh"/>
 
688
        <output/>
 
689
        <stat>
 
690
          <include_in_stat/>
 
691
        </stat>
 
692
        <convergence>
 
693
          <include_in_convergence/>
 
694
        </convergence>
 
695
        <detectors>
 
696
          <include_in_detectors/>
 
697
        </detectors>
 
698
        <steady_state>
 
699
          <include_in_steady_state/>
 
700
        </steady_state>
 
701
      </diagnostic>
 
702
    </vector_field>
 
703
    <vector_field name="ZeroFilteredVelocityProjection" rank="1">
 
704
      <diagnostic>
 
705
        <algorithm source_field_type="vector" material_phase_support="single" name="vector_galerkin_projection" source_field_name="ZeroFilteredVelocity">
 
706
          <solver>
 
707
            <iterative_method name="cg"/>
 
708
            <preconditioner name="sor"/>
 
709
            <relative_error>
 
710
              <real_value rank="0">1.e-10</real_value>
 
711
            </relative_error>
 
712
            <max_iterations>
 
713
              <integer_value rank="0">1000</integer_value>
 
714
            </max_iterations>
 
715
            <never_ignore_solver_failures/>
 
716
            <diagnostics>
 
717
              <monitors/>
 
718
            </diagnostics>
 
719
          </solver>
 
720
        </algorithm>
 
721
        <mesh name="ErrorMesh"/>
 
722
        <output/>
 
723
        <stat>
 
724
          <include_in_stat/>
 
725
        </stat>
 
726
        <convergence>
 
727
          <include_in_convergence/>
 
728
        </convergence>
 
729
        <detectors>
 
730
          <include_in_detectors/>
 
731
        </detectors>
 
732
        <steady_state>
 
733
          <include_in_steady_state/>
 
734
        </steady_state>
 
735
      </diagnostic>
 
736
    </vector_field>
 
737
    <vector_field name="ZeroFilterDifference" rank="1">
 
738
      <diagnostic>
 
739
        <algorithm source_field_2_type="vector" name="vector_difference" source_field_1_name="VelocityProjection" source_field_2_name="ZeroFilteredVelocityProjection" material_phase_support="single" source_field_1_type="vector"/>
 
740
        <mesh name="ErrorMesh"/>
 
741
        <output/>
 
742
        <stat>
 
743
          <include_in_stat/>
 
744
        </stat>
 
745
        <convergence>
 
746
          <include_in_convergence/>
 
747
        </convergence>
 
748
        <detectors>
 
749
          <include_in_detectors/>
 
750
        </detectors>
 
751
        <steady_state>
 
752
          <include_in_steady_state/>
 
753
        </steady_state>
 
754
      </diagnostic>
 
755
    </vector_field>
 
756
    <tensor_field name="GradVelocity" rank="2">
 
757
      <diagnostic>
 
758
        <algorithm source_field_type="vector" material_phase_support="single " name="grad_vector" source_field_name="Velocity"/>
 
759
        <mesh name="VelocityMesh"/>
 
760
        <output/>
 
761
        <stat>
 
762
          <exclude_components_from_stat/>
 
763
        </stat>
 
764
      </diagnostic>
 
765
    </tensor_field>
 
766
    <tensor_field name="IsoFilteredGradVelocity" rank="2">
 
767
      <diagnostic>
 
768
        <algorithm source_field_type="tensor" material_phase_support="single" name="helmholtz_smoothed_tensor" source_field_name="GradVelocity">
 
769
          <smoothing_scale_factor>
 
770
            <real_value rank="0">2.0</real_value>
 
771
          </smoothing_scale_factor>
 
772
          <solver>
 
773
            <iterative_method name="cg"/>
 
774
            <preconditioner name="sor"/>
 
775
            <relative_error>
 
776
              <real_value rank="0">1.e-7</real_value>
 
777
            </relative_error>
 
778
            <max_iterations>
 
779
              <integer_value rank="0">1000</integer_value>
 
780
            </max_iterations>
 
781
            <never_ignore_solver_failures/>
 
782
            <diagnostics>
 
783
              <monitors/>
 
784
            </diagnostics>
 
785
          </solver>
 
786
        </algorithm>
 
787
        <mesh name="VelocityMesh"/>
 
788
        <output/>
 
789
        <stat>
 
790
          <exclude_components_from_stat/>
 
791
        </stat>
 
792
      </diagnostic>
 
793
    </tensor_field>
 
794
    <tensor_field name="AnisoFilteredGradVelocity" rank="2">
 
795
      <diagnostic>
 
796
        <algorithm source_field_type="tensor" material_phase_support="single" name="helmholtz_anisotropic_smoothed_tensor" source_field_name="GradVelocity">
 
797
          <smoothing_scale_factor>
 
798
            <real_value rank="0">2.0</real_value>
 
799
          </smoothing_scale_factor>
 
800
          <solver>
 
801
            <iterative_method name="cg"/>
 
802
            <preconditioner name="sor"/>
 
803
            <relative_error>
 
804
              <real_value rank="0">1.e-7</real_value>
 
805
            </relative_error>
 
806
            <max_iterations>
 
807
              <integer_value rank="0">1000</integer_value>
 
808
            </max_iterations>
 
809
            <never_ignore_solver_failures/>
 
810
            <diagnostics>
 
811
              <monitors/>
 
812
            </diagnostics>
 
813
          </solver>
 
814
        </algorithm>
 
815
        <mesh name="VelocityMesh"/>
 
816
        <output/>
 
817
        <stat>
 
818
          <exclude_components_from_stat/>
 
819
        </stat>
 
820
      </diagnostic>
 
821
    </tensor_field>
 
822
    <tensor_field name="GradIsoFilteredVelocity" rank="2">
 
823
      <diagnostic>
 
824
        <algorithm source_field_type="vector" material_phase_support="single " name="grad_vector" source_field_name="IsoFilteredVelocity"/>
 
825
        <mesh name="VelocityMesh"/>
 
826
        <output/>
 
827
        <stat>
 
828
          <exclude_components_from_stat/>
 
829
        </stat>
 
830
      </diagnostic>
 
831
    </tensor_field>
 
832
    <tensor_field name="GradAnisoFilteredVelocity" rank="2">
 
833
      <diagnostic>
 
834
        <algorithm source_field_type="vector" material_phase_support="single " name="grad_vector" source_field_name="AnisoFilteredVelocity"/>
 
835
        <mesh name="VelocityMesh"/>
 
836
        <output/>
 
837
        <stat>
 
838
          <exclude_components_from_stat/>
 
839
        </stat>
 
840
      </diagnostic>
 
841
    </tensor_field>
 
842
    <tensor_field name="IsoCommError" rank="2">
 
843
      <diagnostic>
 
844
        <algorithm name="tensor_python_diagnostic" material_phase_support="single">
 
845
          <string_value lines="20" type="code" language="python">f1 = state.tensor_fields["IsoFilteredGradVelocity"]
 
846
f2 = state.tensor_fields["GradIsoFilteredVelocity"]
 
847
assert(f1.node_count == field.node_count)
 
848
assert(f2.node_count == field.node_count)
 
849
for i in range(field.node_count):
 
850
  err=abs(f1.node_val(i)-f2.node_val(i))
 
851
  field.set(i, err)</string_value>
 
852
        </algorithm>
 
853
        <mesh name="VelocityMesh"/>
 
854
        <output/>
 
855
        <stat>
 
856
          <include_in_stat/>
 
857
        </stat>
 
858
      </diagnostic>
 
859
    </tensor_field>
 
860
    <tensor_field name="AnisoCommError" rank="2">
 
861
      <diagnostic>
 
862
        <algorithm name="tensor_python_diagnostic" material_phase_support="single">
 
863
          <string_value lines="20" type="code" language="python">f1 = state.tensor_fields["AnisoFilteredGradVelocity"]
 
864
f2 = state.tensor_fields["GradAnisoFilteredVelocity"]
 
865
assert(f1.node_count == field.node_count)
 
866
assert(f2.node_count == field.node_count)
 
867
for i in range(field.node_count):
 
868
  err=abs(f1.node_val(i)-f2.node_val(i))
 
869
  field.set(i, err)</string_value>
 
870
        </algorithm>
 
871
        <mesh name="VelocityMesh"/>
 
872
        <output/>
 
873
        <stat>
 
874
          <include_in_stat/>
 
875
        </stat>
 
876
      </diagnostic>
 
877
    </tensor_field>
 
878
  </material_phase>
 
879
</fluidity_options>