1
<?xml version='1.0' encoding='utf-8'?>
4
<string_value lines="1">MMS_C_structured</string_value>
7
<string_value lines="1">fluids</string_value>
11
<integer_value rank="0">2</integer_value>
13
<mesh name="CoordinateMesh">
15
<mesh name="InputMesh"/>
21
<mesh name="VelocityMesh">
23
<mesh name="InputMesh"/>
26
<integer_value rank="0">1</integer_value>
34
<mesh name="PressureMesh">
36
<mesh name="InputMesh"/>
42
<mesh name="InputMesh">
43
<from_file file_name="MMS_C_structured">
50
<mesh name="ErrorMesh">
52
<mesh name="CoordinateMesh"/>
55
<integer_value rank="0">4</integer_value>
59
<string_value>continuous</string_value>
68
<integer_value rank="0">8</integer_value>
74
<string_value>vtk</string_value>
78
<real_value rank="0">3</real_value>
81
<output_mesh name="VelocityMesh"/>
86
<real_value rank="0">0.0</real_value>
89
<real_value rank="0">0.1</real_value>
92
<real_value rank="0">3</real_value>
94
<nonlinear_iterations>
95
<integer_value rank="0">2</integer_value>
96
</nonlinear_iterations>
99
<real_value rank="0">1.</real_value>
101
<courant_number name="CFLNumber">
102
<mesh name="VelocityMesh"/>
107
<real_value rank="0">1.e-6</real_value>
112
<material_phase name="NS">
113
<scalar_field name="Pressure" rank="0">
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>
123
<poisson_pressure_solution>
124
<string_value lines="1">never</string_value>
125
</poisson_pressure_solution>
126
<use_projection_method/>
129
<iterative_method name="cg"/>
130
<preconditioner name="sor"/>
132
<real_value rank="0">1.e-8</real_value>
135
<integer_value rank="0">10000</integer_value>
137
<never_ignore_solver_failures/>
143
<include_previous_time_step/>
147
<include_in_convergence/>
150
<exclude_from_detectors/>
153
<exclude_from_steady_state/>
158
<vector_field name="Velocity" rank="1">
160
<mesh name="VelocityMesh"/>
161
<equation name="Boussinesq"/>
162
<spatial_discretisation>
163
<continuous_galerkin>
174
</continuous_galerkin>
175
<conservative_advection>
176
<real_value rank="0">0.</real_value>
177
</conservative_advection>
178
</spatial_discretisation>
179
<temporal_discretisation>
181
<real_value rank="0">.5</real_value>
184
<real_value rank="0">.5</real_value>
186
</temporal_discretisation>
188
<iterative_method name="gmres">
190
<integer_value rank="0">30</integer_value>
193
<preconditioner name="sor"/>
195
<real_value rank="0">1.e-7</real_value>
198
<integer_value rank="0">1000</integer_value>
200
<never_ignore_solver_failures/>
205
<initial_condition name="WholeMesh">
207
<real_value shape="2" dim1="dim" rank="1">0. 0.</real_value>
210
<boundary_conditions name="sides">
212
<integer_value shape="4" rank="1">7 8 9 10</integer_value>
214
<type name="dirichlet">
215
<align_bc_with_cartesian>
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>
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>
230
</align_bc_with_cartesian>
232
</boundary_conditions>
233
<tensor_field name="Viscosity" rank="2">
235
<value name="WholeMesh">
236
<anisotropic_symmetric>
238
<real_value symmetric="true" dim2="dim" shape="2 2" dim1="dim" rank="2">0.7 0. 0. 0.7</real_value>
240
</anisotropic_symmetric>
247
<vector_field name="Source" rank="1">
249
<value name="WholeMesh">
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>
261
<exclude_from_detectors/>
270
</previous_time_step>
276
<include_in_convergence/>
279
<include_in_detectors/>
282
<include_in_steady_state/>
284
<consistent_interpolation/>
287
<scalar_field name="Edges" rank="0">
289
<algorithm name="scalar_edge_lengths" material_phase_support="single"/>
290
<mesh name="VelocityMesh"/>
294
<include_in_convergence/>
297
<include_in_detectors/>
300
<exclude_from_steady_state/>
304
<scalar_field name="CFLNumber" rank="0">
306
<algorithm name="Internal" material_phase_support="multiple"/>
307
<mesh name="VelocityMesh"/>
311
<include_in_convergence/>
314
<include_in_detectors/>
317
<exclude_from_steady_state/>
321
<vector_field name="VelocityProjection" rank="1">
323
<algorithm source_field_type="vector" material_phase_support="single" name="vector_galerkin_projection" source_field_name="Velocity">
325
<iterative_method name="cg"/>
326
<preconditioner name="sor"/>
328
<real_value rank="0">1.e-10</real_value>
331
<integer_value rank="0">1000</integer_value>
333
<never_ignore_solver_failures/>
339
<mesh name="ErrorMesh"/>
345
<include_in_convergence/>
348
<include_in_detectors/>
351
<include_in_steady_state/>
355
<vector_field name="AnisoFilteredVelocity" rank="1">
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>
362
<iterative_method name="cg"/>
363
<preconditioner name="sor"/>
365
<real_value rank="0">1.e-5</real_value>
368
<integer_value rank="0">100</integer_value>
370
<never_ignore_solver_failures/>
376
<mesh name="VelocityMesh"/>
382
<include_in_convergence/>
385
<include_in_detectors/>
388
<include_in_steady_state/>
392
<vector_field name="AnisoFilteredVelocityProjection" rank="1">
394
<algorithm source_field_type="vector" material_phase_support="single" name="vector_galerkin_projection" source_field_name="AnisoFilteredVelocity">
396
<iterative_method name="cg"/>
397
<preconditioner name="sor"/>
399
<real_value rank="0">1.e-10</real_value>
402
<integer_value rank="0">1000</integer_value>
404
<never_ignore_solver_failures/>
410
<mesh name="ErrorMesh"/>
416
<include_in_convergence/>
419
<include_in_detectors/>
422
<include_in_steady_state/>
426
<vector_field name="AnisoFilterDifference" rank="1">
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"/>
435
<include_in_convergence/>
438
<include_in_detectors/>
441
<include_in_steady_state/>
445
<vector_field name="IsoFilteredVelocity" rank="1">
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>
452
<iterative_method name="cg"/>
453
<preconditioner name="sor"/>
455
<real_value rank="0">1.e-5</real_value>
458
<integer_value rank="0">100</integer_value>
460
<never_ignore_solver_failures/>
466
<mesh name="VelocityMesh"/>
472
<include_in_convergence/>
475
<include_in_detectors/>
478
<include_in_steady_state/>
482
<vector_field name="IsoFilteredVelocityProjection" rank="1">
484
<algorithm source_field_type="vector" material_phase_support="single" name="vector_galerkin_projection" source_field_name="IsoFilteredVelocity">
486
<iterative_method name="cg"/>
487
<preconditioner name="sor"/>
489
<real_value rank="0">1.e-10</real_value>
492
<integer_value rank="0">1000</integer_value>
494
<never_ignore_solver_failures/>
500
<mesh name="ErrorMesh"/>
506
<include_in_convergence/>
509
<include_in_detectors/>
512
<include_in_steady_state/>
516
<vector_field name="IsoFilterDifference" rank="1">
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"/>
525
<include_in_convergence/>
528
<include_in_detectors/>
531
<include_in_steady_state/>
535
<vector_field name="MLFilteredVelocity" rank="1">
537
<algorithm source_field_type="vector" material_phase_support="single" name="lumped_mass_smoothed_vector" source_field_name="Velocity"/>
538
<mesh name="VelocityMesh"/>
544
<include_in_convergence/>
547
<include_in_detectors/>
550
<include_in_steady_state/>
554
<vector_field name="MLFilteredVelocityProjection" rank="1">
556
<algorithm source_field_type="vector" material_phase_support="single" name="vector_galerkin_projection" source_field_name="MLFilteredVelocity">
558
<iterative_method name="cg"/>
559
<preconditioner name="sor"/>
561
<real_value rank="0">1.e-10</real_value>
564
<integer_value rank="0">1000</integer_value>
566
<never_ignore_solver_failures/>
572
<mesh name="ErrorMesh"/>
578
<include_in_convergence/>
581
<include_in_detectors/>
584
<include_in_steady_state/>
588
<vector_field name="MLFilterDifference" rank="1">
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"/>
597
<include_in_convergence/>
600
<include_in_detectors/>
603
<include_in_steady_state/>
607
<vector_field name="AnalyticalVelocity" rank="1">
609
<mesh name="ErrorMesh"/>
610
<value name="WholeMesh">
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>
622
<exclude_from_detectors/>
626
<vector_field name="AnalyticalDifference" rank="1">
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/>
631
<mesh name="ErrorMesh"/>
637
<include_in_convergence/>
640
<include_in_detectors/>
643
<exclude_from_steady_state/>
647
<vector_field name="GradDelta" rank="1">
649
<algorithm source_field_type="scalar" material_phase_support="single" name="grad" source_field_name="Edges"/>
650
<mesh name="VelocityMesh"/>
656
<include_in_convergence/>
659
<include_in_detectors/>
662
<exclude_from_steady_state/>
666
<vector_field name="ZeroFilteredVelocity" rank="1">
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>
673
<iterative_method name="cg"/>
674
<preconditioner name="sor"/>
676
<real_value rank="0">1.e-7</real_value>
679
<integer_value rank="0">1000</integer_value>
681
<never_ignore_solver_failures/>
687
<mesh name="VelocityMesh"/>
693
<include_in_convergence/>
696
<include_in_detectors/>
699
<include_in_steady_state/>
703
<vector_field name="ZeroFilteredVelocityProjection" rank="1">
705
<algorithm source_field_type="vector" material_phase_support="single" name="vector_galerkin_projection" source_field_name="ZeroFilteredVelocity">
707
<iterative_method name="cg"/>
708
<preconditioner name="sor"/>
710
<real_value rank="0">1.e-10</real_value>
713
<integer_value rank="0">1000</integer_value>
715
<never_ignore_solver_failures/>
721
<mesh name="ErrorMesh"/>
727
<include_in_convergence/>
730
<include_in_detectors/>
733
<include_in_steady_state/>
737
<vector_field name="ZeroFilterDifference" rank="1">
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"/>
746
<include_in_convergence/>
749
<include_in_detectors/>
752
<include_in_steady_state/>
756
<tensor_field name="GradVelocity" rank="2">
758
<algorithm source_field_type="vector" material_phase_support="single " name="grad_vector" source_field_name="Velocity"/>
759
<mesh name="VelocityMesh"/>
762
<exclude_components_from_stat/>
766
<tensor_field name="IsoFilteredGradVelocity" rank="2">
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>
773
<iterative_method name="cg"/>
774
<preconditioner name="sor"/>
776
<real_value rank="0">1.e-7</real_value>
779
<integer_value rank="0">1000</integer_value>
781
<never_ignore_solver_failures/>
787
<mesh name="VelocityMesh"/>
790
<exclude_components_from_stat/>
794
<tensor_field name="AnisoFilteredGradVelocity" rank="2">
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>
801
<iterative_method name="cg"/>
802
<preconditioner name="sor"/>
804
<real_value rank="0">1.e-7</real_value>
807
<integer_value rank="0">1000</integer_value>
809
<never_ignore_solver_failures/>
815
<mesh name="VelocityMesh"/>
818
<exclude_components_from_stat/>
822
<tensor_field name="GradIsoFilteredVelocity" rank="2">
824
<algorithm source_field_type="vector" material_phase_support="single " name="grad_vector" source_field_name="IsoFilteredVelocity"/>
825
<mesh name="VelocityMesh"/>
828
<exclude_components_from_stat/>
832
<tensor_field name="GradAnisoFilteredVelocity" rank="2">
834
<algorithm source_field_type="vector" material_phase_support="single " name="grad_vector" source_field_name="AnisoFilteredVelocity"/>
835
<mesh name="VelocityMesh"/>
838
<exclude_components_from_stat/>
842
<tensor_field name="IsoCommError" rank="2">
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>
853
<mesh name="VelocityMesh"/>
860
<tensor_field name="AnisoCommError" rank="2">
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>
871
<mesh name="VelocityMesh"/>