1
<?xml version="1.0" encoding="UTF-8"?>
2
<grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
3
<include href="spud_base.rng"/>
4
<include href="adaptivity_options.rng"/>
5
<include href="diagnostic_algorithms.rng"/>
6
<include href="input_output.rng"/>
7
<include href="mesh_options.rng"/>
8
<include href="physical_parameters.rng"/>
9
<include href="prescribed_field_options.rng"/>
10
<include href="prognostic_field_options.rng"/>
11
<include href="solvers.rng"/>
12
<include href="spatial_discretisation.rng"/>
13
<include href="stabilisation.rng"/>
14
<include href="temporal_discretisation.rng"/>
16
<element name="shallow_water_options">
17
<a:documentation>The root node of the options dictionary.</a:documentation>
19
<element name="model">
20
<a:documentation>The model type</a:documentation>
21
<element name="string_value">
22
<value>simple_shallow_water</value>
26
<element name="simulation_name">
27
<a:documentation>Model output files are named according to the simulation
28
name, e.g. [simulation_name]_0.vtu. Non-standard
29
characters in the simulation name should be avoided.</a:documentation>
30
<ref name="anystring"/>
32
<element name="problem_type">
33
<a:documentation>Option problem_type does not change the tree. It is just used for options checking.</a:documentation>
34
<element name="string_value">
39
<ref name="geometry"/>
41
<a:documentation>Input/output options</a:documentation>
42
<element name="dump_format">
43
<a:documentation>Format for dump files. Only vtk for now.</a:documentation>
44
<element name="string_value">
49
<element name="dump_period">
50
<a:documentation>Period between dumps in time units.
52
Specifies the period between each dump of the solution to disk.
53
A value of 0.0 indicates that there would be a dump at every timestep.</a:documentation>
55
<element name="constant">
56
<attribute name="replaces">
61
<element name="python">
62
<a:documentation>Python function prescribing real input. Functions should be of the form:
69
<attribute name="replaces">
72
<ref name="python_code"/>
76
<element name="dump_period_in_timesteps">
77
<a:documentation>Dump period, in timesteps.
79
Specifies the number of timesteps between each dump of the solution to disk.
80
A value of 0 indicates a dump at every timestep.</a:documentation>
82
<element name="constant">
85
<element name="python">
86
<a:documentation>Python function prescribing integer input. Functions should be of the form:
93
<ref name="python_code"/>
99
<!-- every CPUDUM seconds write results to disc. -->
100
<element name="cpu_dump_period">
101
<a:documentation>This is usually disabled.</a:documentation>
102
<attribute name="replaces">
103
<value>CPUDUM</value>
109
<element name="wall_time_dump_period">
110
<a:documentation>The period between dumps in walltime seconds. This is usually disabled.</a:documentation>
111
<attribute name="replaces">
112
<value>WTIDUM</value>
118
<element name="output_mesh">
119
<a:documentation>The mesh on to which all the fields will be
120
interpolated for VTK output.</a:documentation>
121
<attribute name="name">
122
<value>VelocityMesh</value>
125
<element name="output_mesh">
126
<a:documentation>The mesh on to which all the fields will be
127
interpolated for VTK output.</a:documentation>
128
<attribute name="name">
129
<value>PressureMesh</value>
132
<element name="output_mesh">
133
<a:documentation>The mesh on to which all the fields will be
134
interpolated for VTK output.</a:documentation>
135
<attribute name="name">
136
<value>CoordinateMesh</value>
139
<element name="output_mesh">
140
<a:documentation>The mesh on to which all the fields will be
141
interpolated for VTK output.</a:documentation>
142
<attribute name="name">
143
<data type="string"/>
148
<element name="checkpointing">
149
<a:documentation>Whether to enable dumping of checkpointing output.
151
See http://amcg.ese.ic.ac.uk/index.php?title=Local:Checkpointing_from_new_options</a:documentation>
152
<element name="checkpoint_period_in_dumps">
153
<a:documentation>Checkpointing period, in dumps. Non-negative value
154
required. A value of zero indicates that checkpoints
155
should be created at every dump. If
156
/io/max_dumpfile_count is exceeded then earlier
157
checkpoints may be overwritten.</a:documentation>
158
<ref name="integer"/>
161
<element name="checkpoint_at_end">
162
<a:documentation>Enable to force a checkpoint at simulation end.</a:documentation>
163
<ref name="comment"/>
166
<ref name="comment"/>
170
<element name="detectors">
171
<a:documentation>Specification of detectors. Note that when running in parallel the detector output is in binary format even if binary_output is not enabled.</a:documentation>
174
<element name="static_detector">
175
<a:documentation>A single static detector</a:documentation>
176
<attribute name="name">
177
<data type="string"/>
180
<element name="location">
181
<ref name="real_dim_vector"/>
183
<element name="from_checkpoint_file">
184
<a:documentation>File containing the detectors positions in binary form</a:documentation>
185
<attribute name="file_name">
186
<data type="string"/>
188
<element name="format">
189
<a:documentation>The format of the input file containing field data.</a:documentation>
190
<element name="string_value">
191
<value>binary</value>
197
<element name="lagrangian_detector">
198
<a:documentation>A single lagrangian detector</a:documentation>
199
<attribute name="name">
200
<data type="string"/>
203
<element name="location">
204
<a:documentation>This is the initial location of a detector that moves with the fluid velocity.</a:documentation>
205
<ref name="real_dim_vector"/>
207
<element name="from_checkpoint_file">
208
<a:documentation>File containing the detectors positions in binary form</a:documentation>
209
<attribute name="file_name">
210
<data type="string"/>
212
<element name="format">
213
<a:documentation>The format of the input file containing field data.</a:documentation>
214
<element name="string_value">
215
<value>binary</value>
221
<element name="detector_array">
222
<a:documentation>Detectors with their locations specified via a python function or from a file. Allows detector arrays to be added.</a:documentation>
223
<attribute name="name">
224
<data type="string"/>
226
<element name="number_of_detectors">
227
<a:documentation>The number of detectors prescribed by the python function.</a:documentation>
228
<ref name="integer"/>
231
<element name="static">
232
<a:documentation>Create fixed detectors.</a:documentation>
235
<element name="lagrangian">
236
<a:documentation>Create detectors which move with the fluid velocity.</a:documentation>
241
<element name="python">
242
<a:documentation>Python function prescribing dimensional vector input. Functions should be of the form:
246
return # Return value
248
The return value must have length number_of_detectors.
250
*** IMPORTANT NOTE ***
252
The t argument is for future use only - currently detector locations are only set at simulation start.</a:documentation>
253
<ref name="python_code"/>
255
<element name="from_file">
256
<a:documentation>File containing the detectors positions in binary form</a:documentation>
257
<attribute name="file_name">
258
<data type="string"/>
260
<element name="format">
261
<a:documentation>The format of the input file containing field data.</a:documentation>
262
<element name="string_value">
263
<value>binary</value>
267
<element name="from_checkpoint_file">
268
<a:documentation>File containing the detectors positions in binary form</a:documentation>
269
<attribute name="file_name">
270
<data type="string"/>
272
<element name="format">
273
<a:documentation>The format of the input file containing field data.</a:documentation>
274
<element name="string_value">
275
<value>binary</value>
284
<element name="binary_output">
285
<a:documentation>Enable to write detector output in binary format</a:documentation>
286
<ref name="comment"/>
292
<element name="log_output">
293
<a:documentation>Options to create even more output in the logs:
295
Note that the main option to control the log output is given on the command line:
297
-v0 only output error and warnings
299
-v1 also give "navigational information", to indicate where in the code we currently are
301
-v2 also give any additional information (mins and maxes of fields, etc.)
304
<element name="memory_diagnostics">
305
<a:documentation>Log all allocates and deallocates done for meshes, fields, sparsities and matrices.
307
NOTE: Requires -v2</a:documentation>
314
<element name="timestepping">
315
<a:documentation>Options dealing with time discretisation</a:documentation>
316
<element name="current_time">
317
<a:documentation>Current simulation time. At the start of the simulation this
318
is the start time.</a:documentation>
319
<attribute name="replaces">
320
<value>ACCTIM</value>
324
<element name="timestep">
325
<a:documentation>The time step size. If adaptive time stepping is used
326
then this is the initial time step size.</a:documentation>
327
<attribute name="replaces">
332
<element name="finish_time">
333
<a:documentation>Simulation time at which the simulation should end.</a:documentation>
334
<attribute name="replaces">
340
<element name="final_timestep">
341
<a:documentation>Timestep after which the simulation should end.</a:documentation>
342
<ref name="integer"/>
346
<element name="cpu_time_limit">
347
<a:documentation>Maximum CPU time (in seconds) before the simulation terminates</a:documentation>
348
<attribute name="replaces">
349
<value>CPULIM</value>
355
<element name="wall_time_limit">
356
<a:documentation>Maximum wall time (secs) taken up before
357
simulation terminates writing results to disc.
359
This is usually disabled.</a:documentation>
360
<attribute name="replaces">
361
<value>WATIME</value>
366
<element name="nonlinear_iterations">
367
<a:documentation>maximum number of non-linear iterations.
369
Manual suggests 2</a:documentation>
370
<attribute name="replaces">
371
<value>ITINOI</value>
373
<ref name="integer"/>
376
<ref name="simple_physical_parameter_options"/>
377
<element name="material_phase">
378
<a:documentation>The material or phase options</a:documentation>
379
<attribute name="name">
383
<element name="vector_field">
384
<a:documentation>Velocity vector and momentum options</a:documentation>
385
<attribute name="rank">
388
<attribute name="name">
389
<value>Velocity</value>
392
<a:documentation>Field type</a:documentation>
393
<element name="prognostic">
394
<ref name="velocity_mesh_choice"/>
395
<ref name="simple_prognostic_velocity_field"/>
399
<element name="scalar_field">
400
<a:documentation>Free surface elevation</a:documentation>
401
<attribute name="rank">
404
<attribute name="name">
405
<value>LayerThickness</value>
407
<element name="prognostic">
408
<ref name="pressure_mesh_choice"/>
409
<ref name="prognostic_layerthickness_field"/>
413
<ref name="scalar_field_choice"/>
416
<ref name="vector_field_choice"/>
419
<ref name="tensor_field_choice"/>
424
<element name="mesh_adaptivity">
425
<ref name="prescribed_adaptivity"/>
430
<!-- Default child of diagnostic scalar field -->
431
<define name="diagnostic_scalar_field">
432
<ref name="diagnostic_output_options"/>
433
<ref name="diagnostic_scalar_stat_options"/>
434
<ref name="diagnostic_detector_options"/>
436
<ref name="recalculation_options"/>
439
<ref name="interpolation_algorithm_scalar"/>
442
<!-- Default child of diagnostic scalar field without adaptivity options -->
443
<define name="diagnostic_scalar_field_no_adapt">
444
<ref name="diagnostic_output_options"/>
445
<ref name="diagnostic_scalar_stat_options"/>
446
<ref name="diagnostic_detector_options"/>
449
Default child of diagnostic vector field
450
Currently, this is empty, but in future this might include
451
options that are general to all diagnostic vector fields
453
<define name="diagnostic_vector_field">
454
<ref name="diagnostic_output_options"/>
455
<ref name="diagnostic_vector_stat_options"/>
456
<ref name="diagnostic_detector_options"/>
458
<ref name="recalculation_options"/>
462
Default child of diagnostic tensor field
463
Currently, this is empty, but in future this might include
464
options that are general to all diagnostic tensor fields
466
<define name="diagnostic_tensor_field">
467
<ref name="diagnostic_output_options"/>
469
<define name="velocity_components_choice">
471
<element name="align_bc_with_surface">
473
<element name="normal_component">
474
<ref name="input_choice_real"/>
478
<element name="tangent_component_1">
479
<ref name="input_choice_real"/>
483
<element name="tangent_component_2">
484
<ref name="input_choice_real"/>
487
<ref name="rotation_matrix_components"/>
489
<element name="debugging_mode">
490
<a:documentation>this will calculate the determinant of the
491
rotation matrix for every boundary node
492
and dump a vtu with the node
493
normals and tangenials 1/2</a:documentation>
498
<element name="align_bc_with_cartesian">
500
<element name="x_component">
501
<ref name="input_choice_real_bc_component"/>
505
<element name="y_component">
506
<ref name="input_choice_real_bc_component"/>
510
<element name="z_component">
511
<ref name="input_choice_real_bc_component"/>
517
<!-- and again for robin b.c.s -->
518
<define name="robin_velocity_components_choice">
520
element align_bc_with_surface {
521
element normal_component {
522
element order_zero_coefficient {
525
element order_one_coefficient {
529
element tangent_component_1 {
530
element order_zero_coefficient {
533
element order_one_coefficient {
537
element tangent_component_2 {
538
element order_zero_coefficient {
541
element order_one_coefficient {
545
rotation_matrix_components
548
<element name="align_bc_with_cartesian">
550
<element name="x_component">
551
<element name="order_zero_coefficient">
552
<ref name="input_choice_real"/>
554
<element name="order_one_coefficient">
555
<ref name="input_choice_real"/>
560
<element name="y_component">
561
<element name="order_zero_coefficient">
562
<ref name="input_choice_real"/>
564
<element name="order_one_coefficient">
565
<ref name="input_choice_real"/>
570
<element name="z_component">
571
<element name="order_zero_coefficient">
572
<ref name="input_choice_real"/>
574
<element name="order_one_coefficient">
575
<ref name="input_choice_real"/>
581
<define name="velocity_boundary_conditions">
582
<element name="type">
583
<a:documentation>A weak no normal flow boundary condition.</a:documentation>
584
<attribute name="name">
585
<value>no_normal_flow</value>
590
<!-- Output options for prognostic fields -->
591
<define name="prognostic_scalar_output_options">
592
<element name="output">
593
<a:documentation>Specify what is written to vtu dump files.</a:documentation>
595
<element name="exclude_from_vtu">
596
<a:documentation>Exclude this field from dump files.</a:documentation>
601
<element name="include_previous_time_step">
602
<a:documentation>Select this option to also write the values of this field
603
on the previous timestep.
604
(included under the name: Old<field_name> )</a:documentation>
610
<!-- Output options for prognostic fields -->
611
<define name="prognostic_vector_output_options">
612
<element name="output">
613
<a:documentation>Specify what is written to dump files.</a:documentation>
615
<element name="exclude_from_vtu">
616
<a:documentation>Exclude this field from dump files.</a:documentation>
621
<element name="include_previous_time_step">
622
<a:documentation>Select this option to also write the values of this field
623
on the previous timestep.
624
(included under the name: Old<field_name> )</a:documentation>
630
<!-- Field output options for all other fields -->
631
<define name="field_output_options">
632
<element name="output">
633
<a:documentation>Specify what is written to dump files.</a:documentation>
635
<element name="exclude_from_vtu">
636
<a:documentation>Exclude this field from dump files.</a:documentation>
637
<ref name="comment"/>
642
<define name="field_output_options_disabled">
643
<element name="output">
644
<a:documentation>Specify what is written to vtu dump files.</a:documentation>
646
<element name="exclude_from_vtu">
647
<a:documentation>Exclude this field from dump files.</a:documentation>
648
<ref name="comment"/>
650
<element name="include_in_vtu">
651
<a:documentation>Include this field in dump files.</a:documentation>
652
<ref name="comment"/>
657
<define name="diagnostic_output_options">
658
<ref name="field_output_options"/>
660
<define name="prescribed_output_options">
661
<ref name="field_output_options"/>
664
Options for inclusion/exclusion of standard field statistics from the .stat
667
<define name="include_stat">
668
<element name="include_in_stat">
669
<a:documentation>Include this field in the .stat file (magnitude and components)</a:documentation>
670
<ref name="comment"/>
673
<define name="exclude_components_from_stat">
674
<element name="exclude_components_from_stat">
675
<a:documentation>Include just the magnitude of this field in the .stat file
676
(excluding the components)</a:documentation>
677
<ref name="comment"/>
680
<define name="exclude_stat">
681
<element name="exclude_from_stat">
682
<a:documentation>Exclude this field from the .stat file.</a:documentation>
683
<ref name="comment"/>
686
<!-- Diagnostic statistics options for prognostic scalar fields -->
687
<define name="prognostic_scalar_stat_options">
688
<element name="stat">
689
<a:documentation>Specify what is added to .stat files</a:documentation>
690
<ref name="prognostic_scalar_stat_options.stat"/>
693
<!-- Diagnostic statistics for all other scalar fields -->
694
<define name="prognostic_scalar_stat_options">
695
<element name="stat">
696
<a:documentation>Specify what is added to .stat files</a:documentation>
698
<ref name="exclude_stat"/>
701
<ref name="cv_stats"/>
704
<ref name="surface_integral_stats_scalar"/>
707
<ref name="mixing_stats"/>
711
<define name="diagnostic_scalar_stat_options">
712
<ref name="prognostic_scalar_stat_options"/>
714
<define name="prescribed_scalar_stat_options">
715
<ref name="prognostic_scalar_stat_options"/>
717
<!-- Diagnostic statistics options for vector fields, with enabled by default -->
718
<define name="vector_field_stat_options_enabled_default">
719
<ref name="include_stat"/>
721
<define name="vector_field_stat_options_enabled_default" combine="choice">
722
<ref name="exclude_components_from_stat"/>
724
<define name="vector_field_stat_options_enabled_default" combine="choice">
725
<ref name="exclude_stat"/>
727
<!-- Diagnostic statistics options for vector fields, with enabled by default -->
728
<define name="vector_field_stat_options_disabled_default">
729
<ref name="exclude_stat"/>
731
<define name="vector_field_stat_options_disabled_default" combine="choice">
732
<ref name="exclude_components_from_stat"/>
734
<define name="vector_field_stat_options_disabled_default" combine="choice">
735
<ref name="include_stat"/>
737
<!-- Diagnostic statistics for prognostic vector fields -->
738
<define name="prognostic_velocity_stat_options">
739
<element name="stat">
740
<a:documentation>Specify what is added to .stat files</a:documentation>
741
<ref name="prognostic_velocity_stat_options.stat"/>
744
<!-- Diagnostic statistics for all other vector fields -->
745
<define name="prognostic_vector_stat_options">
746
<element name="stat">
747
<a:documentation>Specify what is added to .stat files</a:documentation>
748
<ref name="vector_field_stat_options_enabled_default"/>
750
<ref name="surface_integral_stats_vector"/>
754
<define name="diagnostic_vector_stat_options">
755
<ref name="prognostic_vector_stat_options"/>
757
<define name="prescribed_vector_stat_options">
758
<ref name="prognostic_vector_stat_options"/>
760
<!-- Combining of stat elements for vector fields -->
761
<define name="prognostic_velocity_stat_options.stat">
762
<ref name="vector_field_stat_options_enabled_default"/>
764
<ref name="surface_integral_stats_vector"/>
767
<element name="compute_body_forces_on_surfaces">
768
<a:documentation>What surface IDs do you want to do the calculation over?</a:documentation>
770
<element name="output_terms">
771
<a:documentation>Enable to output the pressure and viscous terms separately (as well
772
as the total force)</a:documentation>
773
<ref name="comment"/>
776
<ref name="integer_vector"/>
780
<element name="divergence_stats">
781
<a:documentation>Compute the divergence of this field at the Gauss points
782
and return its stats. This is a direct measure of the
783
divergence at the gauss points rather than a discrete measure
784
at the nodes (provided by several other diagnostic fields).</a:documentation>
789
<element name="calculate_momentum_conservation_error">
790
<a:documentation>Calculate the error in the conservation of momentum
791
IN PROGRESS - Does not include all terms!</a:documentation>
796
<!-- Convergence options for prognostic scalar fields -->
797
<define name="scalar_convergence_options">
800
<!-- Convergence statistics options for prognostic vector fields (velocity) -->
801
<define name="vector_convergence_options">
804
<!-- Steady state options for prognostic scalar fields -->
805
<define name="scalar_steady_state_options">
808
<!-- Steady state statistics options for prognostic vector fields (velocity) -->
809
<define name="vector_steady_state_options">
812
<!-- Options for whether a field is to be included in detector output. -->
813
<define name="detector_options_enabled_default">
814
<element name="detectors">
815
<a:documentation>Specify what is added to detector files</a:documentation>
817
<element name="include_in_detectors">
818
<a:documentation>This field is output at each detector location.</a:documentation>
819
<ref name="comment"/>
821
<element name="exclude_from_detectors">
822
<a:documentation>This field is not output at detector locations.</a:documentation>
823
<ref name="comment"/>
828
<!-- Options for whether a field is to be included in detector output. -->
829
<define name="detector_options_disabled_default">
830
<element name="detectors">
831
<a:documentation>Specify what is added to detector files</a:documentation>
833
<element name="exclude_from_detectors">
834
<a:documentation>This field is not output at detector locations.</a:documentation>
835
<ref name="comment"/>
837
<element name="include_in_detectors">
838
<a:documentation>This field is output at each detector location.</a:documentation>
839
<ref name="comment"/>
845
Detector output defaults on for prognostic and diagnostic fields,
848
<define name="prognostic_detector_options">
849
<ref name="detector_options_enabled_default"/>
851
<define name="diagnostic_detector_options">
852
<ref name="detector_options_enabled_default"/>
854
<define name="prescribed_detector_options">
855
<ref name="detector_options_disabled_default"/>
857
<!-- Most common mesh choices -->
858
<define name="mesh_choice">
860
<element name="mesh">
861
<attribute name="name">
862
<data type="string"/>
865
<element name="mesh">
866
<attribute name="name">
867
<value>CoordinateMesh</value>
870
<element name="mesh">
871
<attribute name="name">
872
<value>VelocityMesh</value>
875
<element name="mesh">
876
<attribute name="name">
877
<value>PressureMesh</value>
882
<!-- Same choices, but with VelocityMesh offered first -->
883
<define name="velocity_mesh_choice">
885
<element name="mesh">
886
<attribute name="name">
887
<value>VelocityMesh</value>
890
<element name="mesh">
891
<attribute name="name">
892
<value>PressureMesh</value>
895
<element name="mesh">
896
<attribute name="name">
897
<value>CoordinateMesh</value>
900
<element name="mesh">
901
<attribute name="name">
902
<data type="string" datatypeLibrary=""/>
907
<!-- Same choices, but with PressureMesh offered first -->
908
<define name="pressure_mesh_choice">
910
<element name="mesh">
911
<attribute name="name">
912
<value>PressureMesh</value>
915
<element name="mesh">
916
<attribute name="name">
917
<value>VelocityMesh</value>
920
<element name="mesh">
921
<attribute name="name">
922
<value>CoordinateMesh</value>
925
<element name="mesh">
926
<attribute name="name">
927
<data type="string" datatypeLibrary=""/>
932
<!-- Same choices, but with CoordinateMesh offered first -->
933
<define name="coordinate_mesh_choice">
935
<element name="mesh">
936
<attribute name="name">
937
<value>CoordinateMesh</value>
940
<element name="mesh">
941
<attribute name="name">
942
<value>VelocityMesh</value>
945
<element name="mesh">
946
<attribute name="name">
947
<value>PressureMesh</value>
950
<element name="mesh">
951
<attribute name="name">
952
<data type="string" datatypeLibrary=""/>
957
<!-- This is the choice of additional scalar field to be solved for -->
958
<define name="scalar_field_choice">
960
The first is a generic field, which may be used for any user-defined field
961
that FLUIDITY knows nothing about, or a generic diagnostic
964
<element name="scalar_field">
965
<attribute name="rank">
968
<attribute name="name">
969
<data type="string"/>
972
<a:documentation>Field type</a:documentation>
973
<element name="prognostic">
974
<ref name="velocity_mesh_choice"/>
975
<ref name="prognostic_scalar_field"/>
977
<element name="prescribed">
978
<ref name="velocity_mesh_choice"/>
979
<ref name="prescribed_scalar_field"/>
981
<element name="diagnostic">
982
<ref name="scalar_diagnostic_algorithms"/>
983
<ref name="velocity_mesh_choice"/>
984
<ref name="diagnostic_scalar_field"/>
988
<element name="___Prognostic_Fields_Below___">
989
<a:documentation>Prognostic scalar fields below this</a:documentation>
993
This is the long list of fields that FLUIDITY knows about
994
- - First is a list of fields that are primarily prognostic,
995
but can be set to prescribed..
996
- - The list is in order of most frequently used.
998
<element name="scalar_field">
999
<a:documentation>Calculate the stream function of 2D incompressible flow. Note
1000
that this *only* makes sense for proper 2D (not pseudo-2D) simulations.
1001
Requires a continuous mesh.</a:documentation>
1002
<attribute name="rank">
1005
<attribute name="name">
1006
<value>StreamFunction</value>
1008
<element name="prognostic">
1009
<ref name="mesh_choice"/>
1010
<ref name="prognostic_stream_function_field"/>
1014
Insert new prognostic scalar fields here using the template:
1015
element scalar_field {
1016
attribute rank { "0" },
1017
attribute name { "NewFieldName" },
1019
element prognostic {
1020
velocity_mesh_choice,
1021
prognostic_scalar_field
1023
element prescribed {
1024
velocity_mesh_choice,
1025
prescribed_scalar_field
1031
- - Second is a list of fields that are primarily prescribed.
1032
- - The list is in order of most frequently used.
1034
<element name="___Prescribed_fields_below___">
1035
<a:documentation>Prescribed scalar fields below this</a:documentation>
1040
Insert new prescribed scalar fields here using the template:
1041
element scalar_field {
1042
attribute rank { "0" },
1043
attribute name { "NewFieldName" },
1045
element prescribed {
1046
velocity_mesh_choice,
1047
prescribed_scalar_field
1052
- - Last is a list of fields that are primarily diagnostic.
1053
- - The list is in order of most frequently used.
1056
<element name="___Diagnostic_Fields_Below___">
1057
<a:documentation>Diagnostic scalar fields below this</a:documentation>
1060
<element name="scalar_field">
1061
<a:documentation>ControlVolumeDivergence:
1065
Divergence of the velocity field where
1066
the divergence operator is defined using
1067
the control volume C^T matrix.
1068
This assumes that the test space is discontinuous
1069
control volumes.</a:documentation>
1070
<attribute name="rank">
1073
<attribute name="name">
1074
<value>ControlVolumeDivergence</value>
1076
<element name="diagnostic">
1077
<ref name="internal_algorithm"/>
1078
<attribute name="field_name">
1079
<data type="string" datatypeLibrary=""/>
1081
<ref name="velocity_mesh_choice"/>
1082
<ref name="diagnostic_cv_divergence_scalar_field"/>
1085
<element name="scalar_field">
1086
<a:documentation>CFLNumber
1088
See http://amcg.ese.ic.ac.uk/index.php?title=Local:Diagnostics#CFL_Number
1090
Adapting to this field is not recommended</a:documentation>
1091
<attribute name="rank">
1094
<attribute name="name">
1095
<value>CFLNumber</value>
1097
<attribute name="replaces">
1098
<value>IDENT = -601</value>
1100
<element name="diagnostic">
1101
<ref name="internal_algorithm"/>
1102
<ref name="velocity_mesh_choice"/>
1103
<ref name="diagnostic_scalar_field"/>
1106
<element name="scalar_field">
1107
<a:documentation>ControlVolumeCFLNumber
1109
Courant Number as defined on a control volume mesh
1111
Adapting to this field is not recommended</a:documentation>
1112
<attribute name="rank">
1115
<attribute name="name">
1116
<value>ControlVolumeCFLNumber</value>
1118
<element name="diagnostic">
1119
<ref name="internal_algorithm"/>
1120
<ref name="velocity_mesh_choice"/>
1121
<ref name="diagnostic_scalar_field"/>
1124
<element name="scalar_field">
1125
<a:documentation>DG_CourantNumber
1127
Courant Number as defined on a DG mesh
1129
Adapting to this field is not recommended</a:documentation>
1130
<attribute name="rank">
1133
<attribute name="name">
1134
<value>DG_CourantNumber</value>
1136
<element name="diagnostic">
1137
<ref name="internal_algorithm"/>
1138
<ref name="velocity_mesh_choice"/>
1139
<ref name="diagnostic_scalar_field"/>
1142
<element name="scalar_field">
1143
<a:documentation>Velocity divergence:
1147
<attribute name="rank">
1150
<attribute name="name">
1151
<value>VelocityDivergence</value>
1153
<element name="diagnostic">
1154
<ref name="internal_algorithm"/>
1155
<ref name="velocity_mesh_choice"/>
1156
<ref name="diagnostic_scalar_field"/>
1159
<element name="scalar_field">
1160
<a:documentation>Vorticity for a 2D field:
1164
dy dx</a:documentation>
1165
<attribute name="rank">
1168
<attribute name="name">
1169
<value>Vorticity2D</value>
1171
<element name="diagnostic">
1172
<ref name="internal_algorithm"/>
1173
<ref name="mesh_choice"/>
1174
<ref name="diagnostic_scalar_field"/>
1177
<element name="scalar_field">
1178
<a:documentation>Kinetic energy density:
1182
where rho_0 is the (reference) density
1185
- The Density, PerturbationDensity, KineticEnergyDensity and Velocity fields must be on the same mesh.</a:documentation>
1186
<attribute name="rank">
1189
<attribute name="name">
1190
<value>KineticEnergyDensity</value>
1192
<element name="diagnostic">
1193
<ref name="internal_algorithm"/>
1194
<ref name="velocity_mesh_choice"/>
1195
<ref name="diagnostic_scalar_field"/>
1198
<element name="scalar_field">
1199
<a:documentation>Local average mesh edge lengths</a:documentation>
1200
<attribute name="rank">
1203
<attribute name="name">
1204
<value>MeshEdgeLengths</value>
1206
<element name="diagnostic">
1207
<ref name="internal_algorithm"/>
1208
<element name="mesh">
1209
<attribute name="name">
1210
<value>CoordinateMesh</value>
1213
<ref name="diagnostic_scalar_field"/>
1216
<element name="scalar_field">
1217
<a:documentation>Speed:
1222
- The Speed and Velocity fields must be on the same mesh.</a:documentation>
1223
<attribute name="rank">
1226
<attribute name="name">
1227
<value>Speed</value>
1229
<element name="diagnostic">
1230
<ref name="internal_algorithm"/>
1231
<ref name="velocity_mesh_choice"/>
1232
<ref name="diagnostic_scalar_field"/>
1235
<element name="scalar_field">
1236
<a:documentation>Absolute Difference between two scalar fields.
1238
Both fields must be in this material_phase.
1239
Assumes both fields are on the same mesh as the AbsoluteDifference field.</a:documentation>
1240
<attribute name="rank">
1243
<attribute name="name">
1244
<value>AbsoluteDifference</value>
1246
<element name="diagnostic">
1247
<ref name="internal_algorithm"/>
1248
<attribute name="field_name_a">
1249
<data type="string" datatypeLibrary=""/>
1251
<attribute name="field_name_b">
1252
<data type="string" datatypeLibrary=""/>
1254
<ref name="mesh_choice"/>
1255
<ref name="diagnostic_scalar_field"/>
1257
<element name="relative_to_average">
1258
<a:documentation>Evaluate the absolute difference once the average difference has been removed?</a:documentation>
1263
<element name="ignore_boundaries">
1264
<a:documentation>Ignore boundary nodes (i.e. zero them when calculating the difference)</a:documentation>
1270
<element name="scalar_field">
1271
<a:documentation>Absolute Difference between two scalar fields.
1273
Both fields must be in this material_phase.
1274
Assumes both fields are on the same mesh as the AbsoluteDifference field.</a:documentation>
1275
<attribute name="rank">
1278
<attribute name="name">
1279
<value>ScalarAbsoluteDifference</value>
1281
<element name="diagnostic">
1282
<ref name="internal_algorithm"/>
1283
<attribute name="field_name_a">
1284
<data type="string" datatypeLibrary=""/>
1286
<attribute name="field_name_b">
1287
<data type="string" datatypeLibrary=""/>
1289
<ref name="mesh_choice"/>
1290
<ref name="diagnostic_scalar_field"/>
1292
<element name="relative_to_average">
1293
<a:documentation>Evaluate the absolute difference once the average difference has been removed?</a:documentation>
1298
<element name="ignore_boundaries">
1299
<a:documentation>Ignore boundary nodes (i.e. zero them when calculating the difference)</a:documentation>
1307
Insert new diagnostic scalar fields here using the template:
1308
element scalar_field {
1309
attribute rank { "0" },
1310
attribute name { "NewFieldName" },
1312
element diagnostic {
1314
velocity_mesh_choice,
1315
diagnostic_scalar_field
1321
<!-- This is the choice of additional vector field to be solved for -->
1322
<define name="vector_field_choice">
1324
The first is a generic field, which may be used for any user-defined field
1325
that FLUIDITY knows nothing about, or a generic diagnostic
1326
Prognostic vector fields are not possible (other than velocity and those known fields below).
1329
<element name="vector_field">
1330
<a:documentation>Generic field variable (vector)</a:documentation>
1331
<attribute name="rank">
1334
<attribute name="name">
1335
<data type="string"/>
1338
<a:documentation>Field type</a:documentation>
1339
<element name="prescribed">
1340
<ref name="mesh_choice"/>
1341
<ref name="prescribed_vector_field"/>
1343
<element name="diagnostic">
1344
<ref name="vector_diagnostic_algorithms"/>
1345
<ref name="velocity_mesh_choice"/>
1346
<ref name="diagnostic_vector_field"/>
1352
- - List of fields that are primarily prognostic.
1353
- - The list is in order of most frequently used.
1356
<element name="___Prognostic_fields_below___">
1357
<a:documentation>Prescribed vector fields below this</a:documentation>
1362
- - List of fields that are primarily prescribed.
1363
- - The list is in order of most frequently used.
1366
<element name="___Prescribed_fields_below___">
1367
<a:documentation>Prescribed vector fields below this</a:documentation>
1372
Insert new prescribed vector fields here using the template:
1373
element vector_field {
1374
attribute rank { "1" },
1375
attribute name { "NewFieldName" },
1377
element prescribed {
1379
prescribed_vector_field
1384
- - Last is a list of fields that are primarily diagnostic.
1385
- - The list is in order of most frequently used.
1388
<element name="___Diagnostic_Fields_Below___">
1389
<a:documentation>Diagnostic vector fields below this</a:documentation>
1392
<element name="vector_field">
1393
<a:documentation>Gradient of a scalar field evaluated using the C gradient
1394
matrix constructed using finite elements.
1395
Field must be in this material_phase.</a:documentation>
1396
<attribute name="rank">
1399
<attribute name="name">
1400
<value>FiniteElementGradient</value>
1402
<element name="diagnostic">
1403
<ref name="internal_algorithm"/>
1404
<attribute name="field_name">
1405
<data type="string" datatypeLibrary=""/>
1407
<ref name="mesh_choice"/>
1409
<element name="integrate_gradient_by_parts">
1413
<ref name="diagnostic_gradient_vector_field"/>
1416
<element name="vector_field">
1417
<a:documentation>Relative vorticity field - curl of the velocity field</a:documentation>
1418
<attribute name="rank">
1421
<attribute name="name">
1422
<value>Vorticity</value>
1424
<element name="diagnostic">
1425
<ref name="vorticity_algorithm"/>
1426
<ref name="velocity_mesh_choice"/>
1427
<ref name="diagnostic_vector_field"/>
1430
<element name="vector_field">
1431
<a:documentation>Planetary vorticity
1434
- Requires geometry dimension of 3.</a:documentation>
1435
<attribute name="rank">
1438
<attribute name="name">
1439
<value>PlanetaryVorticity</value>
1441
<element name="diagnostic">
1442
<ref name="internal_algorithm"/>
1443
<ref name="velocity_mesh_choice"/>
1444
<ref name="diagnostic_vector_field"/>
1447
<element name="vector_field">
1448
<a:documentation>Absolute vorticity:
1453
- Requires a geometry dimension of 3.</a:documentation>
1454
<attribute name="rank">
1457
<attribute name="name">
1458
<value>AbsoluteVorticity</value>
1460
<attribute name="depends">
1461
<value>Velocity</value>
1463
<element name="diagnostic">
1464
<ref name="internal_algorithm"/>
1465
<ref name="velocity_mesh_choice"/>
1466
<ref name="diagnostic_vector_field"/>
1469
<element name="vector_field">
1470
<a:documentation>Gradient of a scalar field evaluated using the transpose
1471
of the C^T matrix constructed using control volumes.
1472
Field must be in this material_phase.</a:documentation>
1473
<attribute name="rank">
1476
<attribute name="name">
1477
<value>ControlVolumeDivergenceTransposed</value>
1479
<element name="diagnostic">
1480
<ref name="internal_algorithm"/>
1481
<attribute name="field_name">
1482
<data type="string" datatypeLibrary=""/>
1484
<ref name="velocity_mesh_choice"/>
1485
<ref name="diagnostic_cv_gradient_vector_field"/>
1488
<element name="vector_field">
1489
<a:documentation>Calculate the control volume auxiliary gradient for a particular field.
1490
The related field must be a scalar field in this material_phase.</a:documentation>
1491
<attribute name="rank">
1494
<attribute name="name">
1495
<value>ControlVolumeAuxiliaryGradient</value>
1497
<element name="diagnostic">
1498
<ref name="internal_algorithm"/>
1499
<ref name="velocity_mesh_choice"/>
1500
<attribute name="gradient_of_field">
1501
<data type="string" datatypeLibrary=""/>
1503
<ref name="diagnostic_vector_field"/>
1506
<element name="vector_field">
1507
<a:documentation>Calculate the dg (Bassi Rebay) auxiliary gradient for a particular field.
1508
The related field must be a scalar field in this material_phase.</a:documentation>
1509
<attribute name="rank">
1512
<attribute name="name">
1513
<value>DGAuxiliaryGradient</value>
1515
<element name="diagnostic">
1516
<ref name="internal_algorithm"/>
1517
<ref name="velocity_mesh_choice"/>
1518
<attribute name="gradient_of_field">
1519
<data type="string" datatypeLibrary=""/>
1521
<ref name="diagnostic_vector_field"/>
1524
<element name="vector_field">
1525
<a:documentation>Absolute Difference between two vector fields.
1527
Both fields must be in this material_phase.
1528
Assumes both fields are on the same mesh as the AbsoluteDifference field.</a:documentation>
1529
<attribute name="rank">
1532
<attribute name="name">
1533
<value>AbsoluteDifference</value>
1535
<element name="diagnostic">
1536
<ref name="internal_algorithm"/>
1537
<attribute name="field_name_a">
1538
<data type="string" datatypeLibrary=""/>
1540
<attribute name="field_name_b">
1541
<data type="string" datatypeLibrary=""/>
1543
<ref name="mesh_choice"/>
1544
<ref name="diagnostic_vector_field"/>
1546
<element name="relative_to_average">
1547
<a:documentation>Evaluate the absolute difference once the average difference has been removed?</a:documentation>
1553
<element name="vector_field">
1554
<a:documentation>Absolute Difference between two vector fields.
1556
Both fields must be in this material_phase.
1557
Assumes both fields are on the same mesh as the AbsoluteDifference field.</a:documentation>
1558
<attribute name="rank">
1561
<attribute name="name">
1562
<value>VectorAbsoluteDifference</value>
1564
<element name="diagnostic">
1565
<ref name="internal_algorithm"/>
1566
<attribute name="field_name_a">
1567
<data type="string" datatypeLibrary=""/>
1569
<attribute name="field_name_b">
1570
<data type="string" datatypeLibrary=""/>
1572
<ref name="mesh_choice"/>
1573
<ref name="diagnostic_vector_field"/>
1575
<element name="relative_to_average">
1576
<a:documentation>Evaluate the absolute difference once the average difference has been removed?</a:documentation>
1582
<element name="vector_field">
1583
<a:documentation>Coordinate field remapped to the mesh of your choice.</a:documentation>
1584
<attribute name="rank">
1587
<attribute name="name">
1588
<value>DiagnosticCoordinate</value>
1590
<element name="diagnostic">
1591
<ref name="internal_algorithm"/>
1592
<ref name="mesh_choice"/>
1593
<ref name="diagnostic_vector_field"/>
1596
<element name="vector_field">
1597
<a:documentation>Displacement</a:documentation>
1598
<attribute name="rank">
1601
<attribute name="name">
1602
<value>Displacement</value>
1604
<element name="diagnostic">
1605
<ref name="internal_algorithm"/>
1606
<ref name="velocity_mesh_choice"/>
1607
<ref name="diagnostic_vector_field"/>
1610
<element name="vector_field">
1611
<a:documentation>Projects the Coriolis term onto the mesh of this diagnostic field.
1612
Note that multiple projection methods are available (under the
1613
algorithm option).</a:documentation>
1614
<attribute name="rank">
1617
<attribute name="name">
1618
<value>Coriolis</value>
1620
<element name="diagnostic">
1621
<ref name="coriolis_algorithm"/>
1622
<ref name="velocity_mesh_choice"/>
1623
<ref name="diagnostic_vector_field"/>
1628
Insert new diagnostic vector field here using the template:
1629
element vector_field {
1630
attribute rank { "1" },
1631
attribute name { "NewFieldName" },
1633
element diagnostic {
1636
diagnostic_vector_field
1642
<!-- This is the choice of additional tensor fields -->
1643
<define name="tensor_field_choice">
1645
The first is a generic field, which may be used for any user-defined field
1646
that FLUIDITY knows nothing about, or a generic diagnostic
1647
Prognostic tensor fields are not possible.
1650
<element name="tensor_field">
1651
<a:documentation>Generic field variable (tensor)</a:documentation>
1652
<attribute name="rank">
1655
<attribute name="name">
1656
<data type="string"/>
1659
<a:documentation>Field type</a:documentation>
1660
<element name="prescribed">
1661
<ref name="mesh_choice"/>
1662
<ref name="prescribed_tensor_field"/>
1664
<element name="diagnostic">
1665
<ref name="tensor_diagnostic_algorithms"/>
1666
<ref name="velocity_mesh_choice"/>
1667
<ref name="diagnostic_tensor_field"/>
1673
- - Second is a list of tensor fields that are primarily prescribed.
1674
- - The list is in order of most frequently used.
1677
<element name="___Prescribed_fields_below___">
1678
<a:documentation>Prescribed scalar fields below this</a:documentation>
1683
Insert new prescribed tensor fields here using the template:
1684
element tensor_field {
1685
attribute rank { "2" },
1686
attribute name { "NewFieldName" },
1688
element prescribed {
1690
prescribed_tensor_field
1695
- - Last is a list of fields that are primarily diagnostic.
1696
- - The list is in order of most frequently used.
1699
<element name="___Diagnostic_Fields_Below___">
1700
<a:documentation>Diagnostic tensor fields below this</a:documentation>
1705
Insert new diagnostic tensor field here using the template:
1706
element tensor_field {
1707
attribute name { "NewFieldName" },
1709
element diagnostic {
1712
diagnostic_tensor_field
1718
<define name="mixing_stats">
1719
<element name="include_mixing_stats">
1720
<a:documentation>Enable to include in the .stat file the fractions of the
1721
scalar field contained in
1722
bins specified by the user. This allows mixing of the field to be quantified.
1723
Replaces and expands upon the old heaviside.dat file</a:documentation>
1724
<attribute name="name">
1725
<data type="string"/>
1727
<attribute name="replaces">
1728
<value>heaviside.dat file</value>
1731
<element name="continuous_galerkin">
1732
<a:documentation>Select whether to evaluate the volume fraction over the finite element
1733
(continuous galerkin) or within the control volume (control_volumes).
1735
NOTE: continuous_galerkin only works with linear tets
1737
NOTE: continuous_galerkin is not fully validated yet</a:documentation>
1739
<element name="normalise">
1740
<a:documentation>if select normalise the volume fractions will be
1741
divided by the total volume of the domain</a:documentation>
1746
<element name="control_volumes">
1747
<a:documentation>Select whether to evaluate the volume fraction over the finite element
1748
(continuous galerkin) or within the control volume (control_volumes).</a:documentation>
1750
<element name="normalise">
1751
<a:documentation>if select normalise the volume fractions will be divided by the total volume of the domain </a:documentation>
1757
<element name="mixing_bin_bounds">
1758
<a:documentation>The values of the bounds of the bins
1759
e.g. the values -1.5 0.0 1.5 2.0 will return 4 bins
1760
and the fraction of the field in each bin with,
1761
-1.5<=field<0.0, 0.0<=field<1.5, 1.5<=field<2.0, 2.0<=field,
1762
will be calculated. </a:documentation>
1764
<element name="constant">
1765
<a:documentation>list of bin bounds</a:documentation>
1766
<ref name="real_vector"/>
1768
<element name="python">
1769
<a:documentation>Python function prescribing bin bounds. Functions should be of the form:
1773
return # Return value that should be an array of reals
1776
<ref name="python_code"/>
1781
<element name="tolerance">
1782
<a:documentation>Define the tolerance beneath the specified bins that should be included.
1783
Defaults to zero at machine tolerance (epsilon(0.0)) if not selected.</a:documentation>
1789
<define name="cv_stats">
1790
<element name="include_cv_stats">
1791
<a:documentation>Include statistics evaluated on the control volume mesh.</a:documentation>
1795
<!-- Options for inclusion of calculations of surface integrals in the .stat file -->
1796
<define name="surface_integral_stats_base.surface_integral">
1797
<attribute name="name">
1798
<data type="string"/>
1801
<element name="surface_ids">
1802
<a:documentation>Surface IDs defining the surface over which to integrate. If disabled, integrates over the whole surface.</a:documentation>
1803
<ref name="integer_vector"/>
1807
<element name="normalise">
1808
<a:documentation>Enable to normalise the integral by dividing by the surface area</a:documentation>
1809
<ref name="comment"/>
1813
<define name="surface_integral_stats_scalar">
1814
<element name="surface_integral">
1815
<a:documentation>Surface integral calculations. The following integral types are available:
1816
value: Integrates the field
1817
gradient_normal: Integrates the normal component of the gradient of the field</a:documentation>
1818
<ref name="surface_integral_stats_scalar.surface_integral"/>
1821
<define name="surface_integral_stats_scalar.surface_integral">
1822
<ref name="surface_integral_stats_base.surface_integral"/>
1824
<define name="surface_integral_stats_scalar.surface_integral" combine="interleave">
1825
<attribute name="type">
1827
<value>value</value>
1828
<value>gradient_normal</value>
1832
<define name="surface_integral_stats_vector">
1833
<element name="surface_integral">
1834
<a:documentation>Surface integral calculations. The following integral types are available:
1835
normal: Integrates the normal component of the field</a:documentation>
1836
<ref name="surface_integral_stats_vector.surface_integral"/>
1839
<define name="surface_integral_stats_vector.surface_integral">
1840
<ref name="surface_integral_stats_base.surface_integral"/>
1842
<define name="surface_integral_stats_vector.surface_integral" combine="interleave">
1843
<attribute name="type">
1844
<value>normal</value>
1847
<define name="recalculation_options">
1848
<element name="do_not_recalculate">
1849
<a:documentation>Prevent this field from being recalculated at every timestep.
1850
This is cheaper especially if you are enforcing discrete properties on the field.</a:documentation>
1854
<define name="discrete_properties_algorithm_scalar">
1857
<define name="discrete_properties_algorithm_vector">
1860
<define name="represcribe_before_interpolation">
1861
<element name="represcribe_before_interpolation">
1862
<a:documentation>Represcribe the field before interpolation.
1864
This means the interpolation will not be conservative from the previous mesh so be careful what you're trying to achieve!</a:documentation>
1868
<define name="geometry">
1869
<element name="geometry">
1870
<a:documentation>Options dealing with the specification of geometry</a:documentation>
1871
<element name="dimension">
1872
<a:documentation>Dimension of the problem.
1873
<b>This can only be set once</b></a:documentation>
1874
<attribute name="replaces">
1877
<element name="integer_value">
1878
<attribute name="rank">
1884
<element name="mesh">
1885
<a:documentation>The position mesh</a:documentation>
1886
<attribute name="name">
1887
<value>CoordinateMesh</value>
1889
<ref name="mesh_info"/>
1892
<element name="mesh">
1893
<a:documentation>The velocity mesh</a:documentation>
1894
<attribute name="name">
1895
<value>VelocityMesh</value>
1897
<ref name="mesh_info"/>
1901
<element name="mesh">
1902
<a:documentation>The pressure mesh</a:documentation>
1903
<attribute name="name">
1904
<value>PressureMesh</value>
1906
<ref name="mesh_info"/>
1910
<element name="mesh">
1911
<attribute name="name">
1912
<data type="string"/>
1914
<ref name="mesh_info"/>
1916
<element name="exclude_from_mesh_adaptivity">
1922
<element name="quadrature">
1923
<a:documentation>Quadrature</a:documentation>
1924
<element name="degree">
1925
<a:documentation>Quadrature degree
1927
note: this specifies the degree of quadrature,
1928
not the number of gauss points</a:documentation>
1929
<attribute name="replaces">
1932
<ref name="integer"/>
1935
<element name="surface_degree">
1936
<a:documentation>Surface quadrature degree
1938
note: this specifies the degree of surface
1939
quadrature not the number of surface gauss points</a:documentation>
1940
<attribute name="replaces">
1943
<ref name="integer"/>
1947
<element name="quadrature_family">
1948
<a:documentation>Select which family of quadrature rules to use.
1949
The default is family_cools.
1950
family_wandzura allows for degree up to 30
1951
on triangular meshes.
1952
family_grundmann_moeller allows for degree up to
1953
29 on simplicial meshes in arbitrary dimension.</a:documentation>
1954
<element name="string_value">
1956
<value>family_cools</value>
1957
<value>family_grundmann_moeller</value>
1958
<value>family_wandzura</value>
1965
<element name="disable_geometric_data_cache">
1966
<a:documentation>This causes the change of variables associated with each element in
1967
the mesh to be stored rather than calculated every time it is used.
1968
This should speed up computations at a cost of some memory.
1970
The cache is automatically regenerated after mesh movement or
1971
adaptivity and is automatically disabled for non-linear positions fields.</a:documentation>
1977
<define name="simple_physical_parameter_options">
1978
<element name="physical_parameters">
1979
<ref name="simple_gravity_options"/>
1980
<ref name="coriolis_options"/>
1983
<define name="simple_gravity_options">
1984
<element name="gravity">
1985
<a:documentation>Set a gravity to be included in the buoyancy term.</a:documentation>
1986
<element name="magnitude">
1987
<a:documentation>Acceleration due to gravity. 9.8 m/s^2 on earth.</a:documentation>
1992
<define name="simple_prognostic_velocity_field">
1993
<element name="spatial_discretisation">
1994
<a:documentation>Spatial discretisation options</a:documentation>
1996
<element name="continuous_galerkin">
1997
<a:documentation>Discontinuous galerkin formulation</a:documentation>
1999
<element name="mass_terms">
2000
<a:documentation>Discretisation options for the mass terms in the velocity equation.</a:documentation>
2002
<element name="lump_mass_matrix">
2003
<a:documentation>Lump the mass matrix</a:documentation>
2005
<element name="use_submesh">
2006
<a:documentation>Lump on the submesh.
2007
This only works for simplex meshes and is only
2008
strictly valid on 2d meshes.</a:documentation>
2018
<element name="coriolis_terms">
2019
<a:documentation>Discretisation options for the Coriolis terms in the velocity equation.</a:documentation>
2021
<!-- Lump the mass matrix. -->
2022
<element name="lump_mass_matrix">
2023
<ref name="comment"/>
2028
<element name="advection_terms">
2029
<a:documentation>Discretisation options for the advection terms.</a:documentation>
2030
<element name="exclude_advection_terms">
2031
<a:documentation>Remove the advection terms from the equation.</a:documentation>
2032
<ref name="comment"/>
2036
<element name="discontinuous_galerkin">
2037
<a:documentation>Discontinuous galerkin formulation</a:documentation>
2038
<attribute name="replaces">
2039
<value>DISOPT</value>
2042
<element name="mass_terms">
2043
<a:documentation>Discretisation options for the mass terms in the velocity equation.</a:documentation>
2045
<element name="lump_mass_matrix">
2046
<a:documentation>Lump the mass matrix</a:documentation>
2048
<element name="use_submesh">
2049
<a:documentation>Lump on the submesh.
2050
This only works for simplex meshes and is only
2051
strictly valid on 2d meshes.</a:documentation>
2061
<element name="coriolis_terms">
2062
<a:documentation>Discretisation options for the Coriolis terms in the velocity equation.</a:documentation>
2064
<!-- Lump the mass matrix. -->
2065
<element name="lump_mass_matrix">
2066
<ref name="comment"/>
2071
<element name="advection_scheme">
2073
<element name="none">
2074
<a:documentation>Disable advection</a:documentation>
2077
<element name="upwind">
2078
<a:documentation>Straightforward upwinding of the nonlinear velocity.</a:documentation>
2086
<element name="conservative_advection">
2087
<a:documentation>Conservative discretisation of momentum equations
2088
BETA=1. -- conservative (divergence form)
2089
BETA=0. -- non-conservative
2090
0. < BETA < 1.
2092
Defaults to 1.0 if not supplied.</a:documentation>
2093
<attribute name="replaces">
2100
<element name="temporal_discretisation">
2101
<a:documentation>Temporal discretisation options</a:documentation>
2103
<element name="relaxation">
2104
<a:documentation>Non-linear relaxation term
2105
=0. -- previous timestep velocity solution used in non-linear terms of momentum equations
2106
=1. -- previous iteration velocity solution used in non-linear terms of momentum equations
2107
0. < ITHETA < 1.
2109
Defaults to 0.5 if not supplied.</a:documentation>
2110
<attribute name="replaces">
2111
<value>ITHETA</value>
2119
<element name="initial_condition">
2120
<a:documentation>Initial condition for WholeMesh
2122
Only specify one condition if not using mesh regions.
2123
Otherwise select other initial_condition option, specify region_ids
2124
and distinct names. Then add extra intial conditions for other regions.</a:documentation>
2125
<attribute name="name">
2126
<value>WholeMesh</value>
2128
<ref name="simple_input_choice_initial_condition_vector"/>
2130
<element name="initial_condition">
2131
<a:documentation>Multiple initial_conditions are allowed if specifying
2132
different values in different
2133
regions of the mesh (defined by region_ids). In this case
2134
each initial_condition
2135
requires a distinct name for the options dictionary.</a:documentation>
2136
<attribute name="name">
2137
<data type="string" datatypeLibrary=""/>
2139
<ref name="region_ids"/>
2140
<ref name="simple_input_choice_initial_condition_vector"/>
2144
<element name="boundary_conditions">
2145
<a:documentation>Boundary conditions</a:documentation>
2146
<attribute name="replaces">
2147
<value>boundary, TMPER1 TMPER2 TMPERI</value>
2149
<attribute name="name">
2150
<value>FreeSlip</value>
2152
<element name="surface_ids">
2153
<a:documentation>Enter all external surface IDs here</a:documentation>
2154
<ref name="integer_vector"/>
2156
<ref name="velocity_boundary_conditions"/>
2158
<ref name="prognostic_vector_output_options"/>
2159
<ref name="prognostic_velocity_stat_options"/>
2160
<ref name="prognostic_detector_options"/>
2161
<ref name="interpolation_algorithm_vector"/>
2163
<define name="prognostic_layerthickness_field">
2164
<element name="spatial_discretisation">
2165
<a:documentation>Spatial discretisation options</a:documentation>
2166
<element name="continuous_galerkin">
2167
<a:documentation>Continuous Galerkin formulation</a:documentation>
2169
<element name="mass_terms">
2170
<a:documentation>Discretisation options for the mass term in the layer thickness equation.</a:documentation>
2172
<element name="lump_mass_matrix">
2173
<a:documentation>Lump the mass matrix</a:documentation>
2175
<element name="use_submesh">
2176
<a:documentation>Lump on the submesh.
2177
This only works for simplex meshes and is only
2178
strictly valid on 2d meshes.</a:documentation>
2187
<element name="advection_terms">
2188
<a:documentation>Discretisation options for the advection terms.</a:documentation>
2189
<element name="exclude_advection_terms">
2190
<a:documentation>Remove the advection terms from the equation.</a:documentation>
2191
<ref name="comment"/>
2194
<ref name="comment"/>
2197
<element name="temporal_discretisation">
2198
<a:documentation>Temporal discretisation options</a:documentation>
2199
<element name="theta">
2200
<a:documentation>Implicit/explicit control (THETA)
2202
=0.5 -- Crank-Nicolson
2203
=1. -- implicit</a:documentation>
2204
<attribute name="replaces">
2205
<value>THETA</value>
2210
<element name="relaxation">
2211
<a:documentation>Non-linear relaxation term
2212
=0. -- previous timestep velocity solution used in non-linear terms of momentum equations
2213
=1. -- previous iteration velocity solution used in non-linear terms of momentum equations
2214
0. < ITHETA < 1.
2216
Defaults to 0.5 if not supplied.</a:documentation>
2217
<attribute name="replaces">
2218
<value>ITHETA</value>
2224
<element name="solver">
2225
<a:documentation>Solver</a:documentation>
2226
<ref name="linear_solver_options_asym"/>
2229
<element name="initial_condition">
2230
<a:documentation>Initial condition for WholeMesh
2232
Only specify one condition if not using mesh regions.
2233
Otherwise select other initial_condition option, specify region_ids
2234
and distinct names. Then add extra intial conditions for other regions.</a:documentation>
2235
<attribute name="name">
2236
<value>WholeMesh</value>
2238
<ref name="input_choice_initial_condition_real"/>
2240
<element name="initial_condition">
2241
<a:documentation>Multiple initial_conditions are allowed if specifying
2242
different values in different
2243
regions of the mesh (defined by region_ids). In this case
2244
each initial_condition
2245
requires a distinct name for the options dictionary.</a:documentation>
2246
<attribute name="name">
2247
<data type="string" datatypeLibrary=""/>
2249
<ref name="region_ids"/>
2250
<ref name="input_choice_initial_condition_real"/>
2253
<element name="mean_layer_thickness">
2254
<a:documentation>Mean value of thickness to use in wave equation solver
2255
Will be replaced by a field in due course</a:documentation>
2258
<ref name="prognostic_scalar_output_options"/>
2259
<ref name="prognostic_scalar_stat_options"/>
2260
<ref name="interpolation_algorithm_scalar"/>
2263
Choice of input method for initial conditions
2264
Note: combine = "choice" should be used here to combine with input_choice_real, but Diamond doesn't support it
2266
<define name="simple_input_choice_initial_condition_vector">
2268
<element name="constant">
2269
<a:documentation>Constant value</a:documentation>
2270
<ref name="real_dim_vector"/>
2272
<element name="python">
2273
<a:documentation>Python function prescribing dimensional vector input. Functions should be of the form:
2277
return # Return value
2279
where X and the return value are tuples of length geometry dimension.</a:documentation>
2280
<ref name="python_code"/>
2282
<element name="from_file">
2283
<a:documentation>Initialise the field from an existing file (indended primarily for use in checkpointing). The file mesh must match the mesh of this field (except for piecewise constant fields which will be remapped back from the discontinuous nodal values).</a:documentation>
2284
<attribute name="file_name">
2285
<data type="string"/>
2287
<ref name="vtu_input_format"/>
2288
<ref name="comment"/>
2290
<element name="NEMO_data">
2291
<a:documentation>Initialize the field from NEMO data. Note that a file path
2292
under '/ocean_forcing/external_data_boundary_conditions' must
2293
be set to use this option.</a:documentation>
2294
<element name="format">
2295
<a:documentation>Currently, only the velocity vector field may be initialised in this manner.</a:documentation>
2296
<element name="string_value">
2297
<value>Velocity</value>
2301
<element name="balanced">
2302
<a:documentation>Set balanced velocity from height field</a:documentation>