1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="">
<include href="spud_base.rng"/>
<start>
<element name="ballistics_options">
<element name="simulation_name">
<ref name="filename">
<a:documentation>The name of the simulation.
This will be used as the basename of output files. </a:documentation>
</ref>
</element>
<!--
Timestepping_options is a named pattern defined below.
In this case this is used to reduce clutter and increase readability.
-->
<ref name="timestepping_options"/>
<element name="gravity">
<ref name="real">
<a:documentation>The acceleration due to gravity measured downwards.
e.g. 9.8</a:documentation>
</ref>
</element>
<oneOrMore>
<ref name="projectile"/>
</oneOrMore>
<!-- The + means one or more projectiles. -->
<element name="geometry">
<element name="dimension">
<element name="integer_value">
<a:documentation>Only 2D simulations are suppored by ballistics.</a:documentation>
<attribute name="rank">
<value>0</value>
</attribute>
<value>2</value>
</element>
</element>
</element>
</element>
</start>
<define name="timestepping_options">
<element name="timestepping">
<element name="dt">
<ref name="real">
<a:documentation>The length of each timestep.</a:documentation>
</ref>
</element>
<element name="finish_time">
<ref name="real">
<a:documentation>The time at which the simulation should stop.</a:documentation>
</ref>
</element>
<element name="time_integration_scheme">
<element name="string_value">
<a:documentation>The algorithm which will be used to move the projectiles.
explicit_euler is the first order unstable numeric scheme.
analytic is the analytic solution.</a:documentation>
<!--
Lines is a hint to the gui about the size of the text box.
It is not an enforced limit on string length.
-->
<attribute name="lines">
<value>1</value>
</attribute>
<choice>
<value>explicit_euler</value>
<value>analytic</value>
</choice>
</element>
</element>
</element>
</define>
<define name="projectile">
<element name="projectile">
<attribute name="name">
<a:documentation>An object with a velocity. Projectiles move during the simulation
and are accelerated by gravity.
The projectile name identifies this projectile in the output.</a:documentation>
<data type="string"/>
</attribute>
<element name="initial_velocity">
<ref name="real_dim_vector">
<a:documentation>Velocity of the projectile at launch.</a:documentation>
</ref>
</element>
<element name="launch_position">
<ref name="real_dim_minus_one_vector">
<a:documentation>Position along the x axis at which the projectile begins.</a:documentation>
</ref>
</element>
</element>
</define>
</grammar>
|