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="solvers.rng"/>
8
<include href="stabilisation.rng"/>
9
<include href="reduced_model.rng"/>
10
<include href="mesh_options.rng"/>
11
<include href="physical_parameters.rng"/>
12
<include href="prognostic_field_options.rng"/>
13
<include href="prescribed_field_options.rng"/>
14
<include href="spatial_discretisation.rng"/>
15
<include href="temporal_discretisation.rng"/>
17
<element name="burgers_equation">
18
<a:documentation>The root node of the options dictionary.</a:documentation>
20
<element name="simulation_name">
21
<a:documentation>Model output files are named according to the simulation
22
name, e.g. [simulation_name]_0.vtu. Non-standard
23
characters in the simulation name should be avoided.</a:documentation>
24
<ref name="anystring"/>
26
<ref name="geometry"/>
27
<ref name="timestepping"/>
28
<ref name="material_phase"/>
31
<define name="geometry">
32
<element name="geometry">
33
<a:documentation>Options dealing with the specification of geometry</a:documentation>
34
<element name="dimension">
35
<a:documentation>Dimension of the problem.
36
<b>This can only be set once</b></a:documentation>
37
<attribute name="replaces">
40
<element name="integer_value">
41
<attribute name="rank">
48
<a:documentation>The position mesh</a:documentation>
49
<attribute name="name">
50
<value>CoordinateMesh</value>
52
<ref name="mesh_info_fromfile"/>
55
<a:documentation>The velocity mesh</a:documentation>
56
<attribute name="name">
57
<value>VelocityMesh</value>
59
<ref name="mesh_info_frommesh"/>
61
<element name="quadrature">
62
<a:documentation>Quadrature</a:documentation>
63
<element name="degree">
64
<a:documentation>Quadrature degree
66
note: this specifies the degree of quadrature,
67
not the number of gauss points</a:documentation>
68
<attribute name="replaces">
74
<element name="surface_degree">
75
<a:documentation>Surface quadrature degree
77
note: this specifies the degree of surface
78
quadrature not the number of surface gauss points</a:documentation>
79
<attribute name="replaces">
88
<define name="mesh_choice_coordinate">
90
<attribute name="name">
91
<value>CoordinateMesh</value>
95
<define name="mesh_choice">
98
<attribute name="name">
99
<value>VelocityMesh</value>
102
<element name="mesh">
103
<attribute name="name">
104
<value>CoordinateMesh</value>
109
<define name="mesh_info_fromfile">
110
<element name="from_file">
111
<a:documentation>Read mesh from file.</a:documentation>
113
<element name="format">
114
<a:documentation>Triangle mesh format.
116
Enter the base name without the .edge .ele, .face or
117
.node extensions, and without process numbers.</a:documentation>
118
<attribute name="name">
119
<value>triangle</value>
121
<ref name="comment"/>
123
<element name="format">
124
<a:documentation>Read the mesh from a vtu. Note that the mesh will have no
125
surface or region IDs.</a:documentation>
126
<attribute name="name">
129
<ref name="comment"/>
131
<element name="format">
132
<a:documentation>GMSH mesh format</a:documentation>
133
<attribute name="name">
136
<ref name="comment"/>
139
<attribute name="file_name">
140
<data type="string"/>
142
<ref name="from_file_mesh_stat_options"/>
143
<ref name="comment"/>
146
<define name="mesh_info_frommesh">
147
<element name="from_mesh">
148
<a:documentation>Make mesh from existing mesh. </a:documentation>
149
<ref name="mesh_choice_coordinate"/>
151
<element name="mesh_shape">
153
<element name="polynomial_degree">
154
<ref name="integer"/>
158
<element name="element_type">
159
<element name="string_value">
160
<value>lagrangian</value>
166
<ref name="derived_mesh_stat_options"/>
167
<ref name="comment"/>
170
<define name="timestepping">
171
<element name="timestepping">
172
<a:documentation>Options dealing with time discretisation</a:documentation>
173
<element name="current_time">
174
<a:documentation>Current simulation time. At the start of the simulation this
175
is the start time.</a:documentation>
176
<attribute name="replaces">
177
<value>ACCTIM</value>
181
<element name="timestep">
182
<a:documentation>The time step size. If adaptive time stepping is used
183
then this is the initial time step size.</a:documentation>
184
<attribute name="replaces">
189
<element name="finish_time">
190
<a:documentation>Simulation time at which the simulation should end.</a:documentation>
191
<attribute name="replaces">
197
<element name="final_timestep">
198
<a:documentation>Timestep after which the simulation should end.</a:documentation>
199
<ref name="integer"/>
203
<element name="nonlinear_iterations">
204
<a:documentation>Number of non-linear iterations.
206
Manual suggests 2</a:documentation>
207
<attribute name="replaces">
208
<value>ITINOI</value>
210
<ref name="integer"/>
215
<define name="material_phase">
216
<element name="material_phase">
217
<a:documentation>The material phase options</a:documentation>
218
<attribute name="name">
221
<element name="scalar_field">
222
<attribute name="rank">
225
<attribute name="name">
226
<value>Velocity</value>
228
<element name="prognostic">
229
<element name="mesh">
230
<attribute name="name">
231
<value>VelocityMesh</value>
235
<element name="temporal_discretisation">
236
<a:documentation>Options dealing with the temporal discretisation of velocity</a:documentation>
237
<element name="theta">
238
<a:documentation>The degree of implicitness in the timestepping.
239
0 is fully explicit, 1 is implicit, 0.5 is Crank-Nicolson.
240
Recommended to be 0.5.</a:documentation>
243
<element name="relaxation">
244
<a:documentation>The relaxation term in the nonlinear iterations at each timestep
245
0 means the previous timestep velocity is used to form the advection operator,
246
while 1 means the best guess of the next timestep velocity is used.
247
Recommended to be 0.5.</a:documentation>
252
<element name="solver">
253
<ref name="linear_solver_options_asym"/>
255
<ref name="initial_condition_scalar"/>
257
<ref name="boundary_conditions"/>
259
<element name="viscosity">
262
<element name="stat">
263
<ref name="comment"/>
265
<element name="scalar_field">
266
<attribute name="name">
267
<value>Source</value>
269
<attribute name="rank">
272
<element name="prescribed">
273
<ref name="prescribed_scalar_field_no_adapt"/>
275
<ref name="recalculation_options"/>
282
<element name="scalar_field">
283
<attribute name="rank">
286
<attribute name="name">
287
<data type="string" datatypeLibrary=""/>
290
<element name="prescribed">
291
<ref name="mesh_choice"/>
292
<ref name="prescribed_scalar_field"/>
294
<element name="diagnostic">
295
<ref name="mesh_choice"/>
296
<ref name="diagnostic_scalar_field"/>
303
<define name="boundary_conditions">
304
<element name="boundary_conditions">
305
<a:documentation>Boundary conditions</a:documentation>
306
<attribute name="name">
307
<data type="string" datatypeLibrary=""/>
309
<element name="surface_ids">
310
<a:documentation>Surface id</a:documentation>
311
<ref name="integer_vector"/>
313
<element name="type">
314
<attribute name="name">
315
<value>neumann</value>
317
<ref name="input_choice_real"/>
321
<define name="prescribed_output_options">
324
<define name="prescribed_detector_options">
327
<define name="prescribed_scalar_stat_options">
330
<define name="discrete_properties_algorithm_scalar">
333
<define name="recalculation_options">
334
<element name="do_not_recalculate">
335
<a:documentation>Prevent this field from being recalculated at every timestep.
336
This is cheaper especially if you are enforcing discrete properties on the field.</a:documentation>
340
<define name="diagnostic_scalar_field">
341
<ref name="scalar_python_diagnostic_algorithm"/>
342
<element name="stat">
343
<ref name="comment"/>
346
<ref name="recalculation_options"/>