SMS:Dynamic Model Interface Schema: Difference between revisions
No edit summary |
No edit summary |
||
Line 782: | Line 782: | ||
===Elements D-H=== | ===Elements D-H=== | ||
--> | |||
<!--obsolete | <!--obsolete | ||
{{XML entry | {{XML entry | ||
Line 796: | Line 797: | ||
</control_dataset> | </control_dataset> | ||
}}--> | }}--> | ||
<!-- | |||
{{XML entry | {{XML entry | ||
| name = declare_coverage | | name = declare_coverage |
Revision as of 15:58, 4 March 2019
<group> | |
---|---|
Info: | Tree group item that contains one or more items or groups. |
Version(s): | 1 |
Attributes: | text |
Children: | item, dependency, text_style, contains |
Used by: | <contains> |
Example: | <group text = "Timing">
<contains> <item> … tree item stuff </item> </contains> </group> |
Elements I-O
<input_file> | |
---|---|
Info: | Defines a file to be used for input for an executable. |
Version(s): | 2 |
Attributes: | none |
Children: | use_file, export_location, process_each_row, process_each_coverage, process_each_material, declare_parameter |
Used by: | input_files |
Example: | See executable example. |
<input_files> | |
---|---|
Info: | A container to place all of the input files into for a simulation. |
Version(s): | 3 |
Attributes: | none |
Children: | input_file |
Used by: | simulation |
Example: |
<item> | |
---|---|
Info: | Tree item contains one or more widgets (combo_box, text_box, edit_box, etc). |
Version(s): | 1 |
Attributes: | text |
Children: | dependency, text_box, edit_box, check_box, combo_box, table, any element starting with "control", text_style, new_line |
Used by: | contains |
Example: | <item>
<text>Transport Time Step</text> <edit_box>…. </edit_box> <card>…</card> |
<location> | |
---|---|
Info: | Used to specify which point locations to export. Point locations are defined as: "corner", "mid", "center", "disjoint" and "all". Point locations can have a slightly different meaning based on their context as described below.
Exporting coverage arc points:
Exporting coverage polygon points:
Exporting grid/quad points:
Exporting mesh points:
|
Version(s): | 3 |
Attributes: | none |
Children: | none |
Used by: | process_each_point, [SMS:Dynamic Model Interface Schema#Element <process_model> |
Example: | // writes out snapped coordinates of the 2 end points of each arc
<process_each_coverage> <use_parameter>myCov</use_parameter> <process_each_arc source = "snap"> <process_each_point source = "snap"> <location>corner</location> <export_format>"%Lf %Lf %Lf\n", #point_x, #point_y, #point_z </export_format> </process_each_point> </process_each_arc> </process_each_coverage> // writes out all points of each arc <process_each_coverage> <use_parameter>myCov</use_parameter> <process_each_arc source = "snap"> <process_each_point source = "snap"> <location>corner</location> <location>mid</location> <export_format>"%Lf %Lf %Lf\n", #point_x, #point_y, #point_z </export_format> </process_each_point> </process_each_arc> </process_each_coverage> // writes disjoint nodes in a mesh <process_each_geometry> <use_parameter>myMesh</use_parameter> <process_each_point source = "geometry"> <location>disjoint</location> <export_format>"%Lf %Lf %Lf\n", #point_x, #point_y, #point_z </export_format> </process_each_point> </process_each_geometry> // writes all midpoints in a grid <process_each_geometry> <use_parameter>myGrid</use_parameter> <process_each_point source = "geometry"> <location>mid</location> <export_format>"%Lf %Lf %Lf\n", #point_x, #point_y, #point_z </export_format> </process_each_point> </process_each_geometry> |
<material_att> | |
---|---|
Info: | Used to specify what attributes should be used for materials of a coverage. |
Version(s): | 2 |
Attributes: | use_dialog |
Children: | none |
Used by: | declare_coverage |
Example: | See coverage example. |
<menu_item> | |
---|---|
Info: | Item to be placed in a menu. The text is the text displayed in the menu, use_dialog describes the dialog to be launched, dependency describes what needs to be true in order for the menu item to appear.
The double_click attribute (if true) indicates that this is the menu item to be launched on a double click event. For example, if a menu_item is in an arc_att, and has double_click = "true", then when an arc is double clicked, the dialog specified by the menu item is launched. |
Version(s): | 2 |
Attributes: | double_click, |
Children: | dependency |
Used by: | simulation, declare_coverage, point_att, arc_att, polygon_att |
Example: | See the model example. |
<model> | |
---|---|
Info: | Defines the model interface that is being created. |
Version(s): | 2 |
Attributes: | name, version |
Children: | simulation, declare_coverage, declare_dialogs, declare_files |
Used by: | dynamic_model |
Example: | A simple model that has one coverage type, one dialog, and one file definition. This interfaces with version 4 of "MyModel".
<dynamic_model filetype="dynamic model"> version="2"> <model name="MyModel" version="4"> <simulation> … </simulation> <declare_coverage name= "MyCov">l</coverage> ... </coverage> <declare_dialogs> … </declare_dialogs> <file_def> … |
<model_check> | |
---|---|
Info: | Used to validate data of multiple combinations when the OK button is clicked. Displays an error message if the logic in the <condition> is false. Can use AND, OR, LESS_THAN, GREATER_THAN, EQUALS and NOT. |
Version(s): | 1 |
Attributes: | problem_text, description_text, fix_text |
Children: | process_each_coverage, process_each_geometry, declare_counter, model_check_condition |
Used by: | model_checks |
Example: | < table >
<column text="A"> <edit_box unique_name="colA"> </edit_box> </column> …// other columns also defined < /table > <model_check problem_text = "Column D or E is required." description_text = "This model requires column D." fix_text = "To fix do the following: …... "> <condition>( (colA EQUALS 0.0 OR colB EQUALS 0.0) AND NOT(colD EQUALS 0.0 OR colE EQUALS 0.0))</condition> </model_check> |
<model_checks> | |
---|---|
Info: | Contains all model checks |
Version(s): | 2 |
Attributes: | none |
Children: | model_check |
Used by: | model |
Example: | .
<declare_dialogs> <declare_dialog> ... < table > <column text="A"> <edit_box unique_name="colA"> </edit_box> </column> …// other columns also defined < /table > ... <declare_dialog> <declare_dialogs> <model_checks> <model_check problem_text = "Column D or E is required." description_text = "This model requires column D." fix_text = "To fix do the following: …... "> <condition>( (colA EQUALS 0.0 OR colB EQUALS 0.0) AND NOT(colD EQUALS 0.0 OR colE EQUALS 0.0))</condition> </model_check> <model_checks> |
<model_check_condition> | |
---|---|
Info: | |
Version(s): | 3 |
Attributes: | none |
Children: | none |
Used by: | |
Example: |
<new_line> | |
---|---|
Info: | Creates a new line before adding the next widget in a tree item. |
Version(s): | 1 |
Attributes: | none |
Children: | none |
Used by: | item |
Example: | In the dialog there would be:
Breaking Efficency: [edit box] (new_line called) Friction Efficency: <item> <text>Non-cohesive bedload entrainment</text> <text_box> <text>Breaking Efficency:</text> </text_box> <edit_box unique_name="edtBreakingEff"> </edit_box> <new_line></new_line> <text_box text="Friction Efficency:"> </text_box> |
<option> | |
---|---|
Info: | Widget that displays list of options. Only 1 can be selected. |
Version(s): | 1 |
Attributes: | default, text, unit_keyword, export_text, display_options_hide |
Children: | dependency, text_style |
Used by: | combo_box, any element that starts with "control_" and has units |
Example: | Creates a combo box with hours, minutes and seconds. Minutes is the default item.
<combo_box unique_name="cbxTransportUnits"> <option text="hours"> </option> <option text="minutes" default> </option> <option text="seconds"> </option> <dependency>…</dependency>… </ combo_box > |
<output_file> | |
---|---|
Info: | Defines a file to be created by the executable. |
Version(s): | 1 |
Attributes: | none |
Children: | export_location, declare_parameter, use_file, anything starting with "process_" |
Used by: | output_files |
Example: | See executable example. |
<output_files> | |
---|---|
Info: | A container to place all of the output files into for a simulation. |
Version(s): | 3 |
Attributes: | none |
Children: | output_file |
Used by: | simulation |
Example: | See executable example. |
Elements P-S
<point_att> | |
---|---|
Info: | Used to specify what attributes should be used for the points of a coverage. |
Version(s): | 2 |
Attributes: | none |
Children: | menu_item, snap |
Used by: | declare_coverage |
Example: |
<polygon_att> | |
---|---|
Info: | Used to specify what attributes should be used for the polygon of a coverage. |
Version(s): | 2 |
Attributes: | none |
Children: | menu_item, snap |
Used by: | declare_coverage |
Example: |
<process_dataset> | |
---|---|
Info: | Indicator to loop through each dataset in the given context. |
Version(s): | 3 |
Attributes: | ignore_on_read, ignore_on_write, null_value, widget |
Children: | |
Used by: | |
Example: |
<process_each_arc> | |
---|---|
Info: | Indicator to loop through each arc in the given context. |
Version(s): | 2 |
Attributes: | ignore_on_read, ignore_on_write, order, i_order, j_order, source |
Children: | card_name, export_format, separator, process_each_point, end_card, use_parameter, declare_parameter, executable_command, section, export_group, export_optional, process_on_condition, process_each_neighbor, xmdf_dataset, xmdf_data, xmdf_group, xmdf_geometry |
Used by: | card, process_each_coverage, process_each_polygon |
Example: |
<process_each_coverage> | |
---|---|
Info: | Indicator to loop through each coverage in the given context. |
Version(s): | 2 |
Attributes: | ignore_on_read, ignore_on_write, order, i_order, j_order, source |
Children: | card_name, export_format, separator, process_each_point, process_each_polygon, process_each_arc, end_card, use_parameter, declare_parameter, process_each_set, executable_command, export_group, export_optional, process_on_condition, process_each_material, xmdf_dataset, xmdf_data, xmdf_group, xmdf_geometry, count_range, section, location |
Used by: | card |
Example: |
<process_each_geometry> | |
---|---|
Info: | Indicator to loop through each geometry in the given context. |
Version(s): | 2 |
Attributes: | ignore_on_read, ignore_on_write, order, i_order, j_order, source |
Children: | card_name, export_format, separator, process_each_point, process_each_polygon, process_each_arc, end_card, use_parameter, declare_parameter, process_each_set, executable_command, export_group, export_optional, process_on_condition, process_each_material, xmdf_dataset, xmdf_data, xmdf_group, xmdf_geometry, count_range, section, location |
Used by: | card |
Example: |
<process_each_material> | |
---|---|
Info: | Indicator to loop through each material in the given context. |
Version(s): | 2 |
Attributes: | ignore_on_read, ignore_on_write, order, i_order, j_order, source |
Children: | card_name, export_format, separator, end_card, use_parameter, declare_parameter, process_each_polygon, export_group, export_optional, process_on_condition, process_each_polygon, section, count_range, xmdf_dataset, xmdf_data, xmdf_group, xmdf_geometry |
Used by: | card, process_each_coverage, process_each_polygon |
Example: |
<process_each_neighbor> | |
---|---|
Info: | Indicator to loop through each neighbor in the given context. |
Version(s): | 3 |
Attributes: | corner_skip, feature, ignore_on_read, ignore_on_write, order, i_order, j_order, interior_polygon, null_id, neighbor_per_edge, source |
Children: | card_name, export_format, separator, end_card, use_parameter, declare_parameter, process_each_polygon, export_group, export_optional, process_on_condition, process_each_arc, process_each_polygon, process_each_point, section, xmdf_dataset, xmdf_data, xmdf_group, xmdf_geometry |
Used by: | card, process_each_coverage, process_each_polygon |
Example: |
<process_each_point> | |
---|---|
Info: | Indicator to loop through each point in the given context. |
Version(s): | 2 |
Attributes: | ignore_on_read, ignore_on_write, order, i_order, j_order, source |
Children: | card_name, export_format, separator, end_card, use_parameter, declare_parameter, executable_command, location, export_group, export_optional, process_on_condition, section, process_each_ neighbor, xmdf_dataset, xmdf_data, xmdf_group, xmdf_geometry |
Used by: | card, process_each_coverage, process_each_polygon, process_each_arc |
Example: |
<process_each_polygon> | |
---|---|
Info: | Indicator to loop through each polygon in the given context. |
Version(s): | 2 |
Attributes: | ignore_on_read, ignore_on_write, order, i_order, j_order, source |
Children: | card_name, export_format, separator, process_each_point, process_each_arc, end_card, use_parameter, declare_parameter, executable_command, export_group, export_optional, process_on_condition, section, process_each_neighbor, process_each_material, xmdf_dataset, xmdf_data, xmdf_group, xmdf_geometry |
Used by: | card, process_each_coverage |
Example: |
<process_each_row> | |
---|---|
Info: | Indicator to loop through each row in a table. Has the widget attribute that must be used. The widget attribute needs to be set to the name of a widget which belongs to the table to be iterated through. To iterate through the rows of a curve widget, use the name of the curve widget and a keyword, such as "#x". |
Version(s): | 2 |
Attributes: | ignore_on_read, ignore_on_write, widget, order, i_order, j_order |
Children: | card_name, export_format, separator, export_group, export_optional, process_on_condition, section, process_each_polygon, process_each_material, process_each_arc, process_each_point, executable_command, xmdf_dataset, xmdf_data, xmdf_group, xmdf_geometry |
Used by: | card, process_each_coverage, process_each_polygon, process_each_arc, process_each_point |
Example: | <process_each_row widget = "someColumnWidget"> |
<process_each_set> | |
---|---|
Info: | Indicator to loop through each set. |
Version(s): | 2 |
Attributes: | ignore_on_read, ignore_on_write, order, i_order, j_order, source |
Children: | card_name, export_format, separator, export_group, export_optional, process_on_condition, section, process_each_polygon, process_each_material, executable_command, xmdf_dataset, xmdf_data, xmdf_group, xmdf_geometry |
Used by: | card, process_each_coverage |
Example: |
<process_each_timestep> | |
---|---|
Info: | Indicator to loop through each time step. |
Version(s): | 2 |
Attributes: | ignore_on_read, ignore_on_write, order, i_order, j_order, source |
Children: | card_name, export_format, separator, export_group, export_optional, process_on_condition, section, process_each_polygon, process_each_material, executable_command, xmdf_dataset, xmdf_data, xmdf_group, xmdf_geometry |
Used by: | card, process_each_coverage |
Example: |
<process_model> | |
---|---|
Info: | Indicator to loop through the model. |
Version(s): | 2 |
Attributes: | ignore_on_read, ignore_on_write, order, i_order, j_order, source |
Children: | card_name, export_format, separator, export_group, export_optional, process_on_condition, section, process_each_polygon, process_each_material, executable_command, xmdf_dataset, xmdf_data, xmdf_group, xmdf_geometry |
Used by: | card, process_each_coverage |
Example: |
<process_multi> | |
---|---|
Info: | Indicator to loop through multiple simulations. |
Version(s): | 2 |
Attributes: | ignore_on_read, ignore_on_write, order, i_order, j_order, source |
Children: | card_name, export_format, separator, export_group, export_optional, process_on_condition, section, process_each_polygon, process_each_material, executable_command, xmdf_dataset, xmdf_data, xmdf_group, xmdf_geometry |
Used by: | card, process_each_coverage |
Example: |
<process_on_condition> | |
---|---|
Info: | Indicator to perform a certain action only if the condition is satisfied. |
Version(s): | 2 |
Attributes: | ignore_on_read, ignore_on_write |
Children: | process_each_coverage, process_each_geometry, process_each_polygon, process_each_arc, process_each_point, card_name, export_format, separator, condition, use_file_def, xmdf_dataset, xmdf_data, xmdf_group, use_parameter, end_card, xmdf_geometry, export_location, export_group, export_optional, process_on_condition, section, process_each_row, process_each_material, process_each_neighbor, process_on_count, process_model, model_check_condition |
Used by: | card, process_each_coverage, process_each_polygon, process_each_arc, process_each_point |
Example: |
<process_on_count> | |
---|---|
Info: | Indicator to perform a certain action only on certain iterations of a loop. |
Version(s): | 2 |
Attributes: | ignore_on_read, ignore_on_write |
Children: | process_on_condition, process_each_geometry, process_each_material, section, export_optional, export_group, process_each_coverage, process_each_polygon, process_each_arc, process_each_point, card_name, export_format, separator, count_filter, xmdf_dataset, xmdf_data, xmdf_group, xmdf_geometry |
Used by: | card, process_each_coverage, process_each_polygon, process_each_arc, process_each_point |
Example: |
<process_selector> | |
---|---|
Info: | |
Version(s): | 2 |
Attributes: | ignore_on_read, ignore_on_write, order, i_order, j_order, source |
Children: | card_name, export_format, separator, export_group, export_optional, process_on_condition, section, process_each_polygon, process_each_material, executable_command, xmdf_dataset, xmdf_data, xmdf_group, xmdf_geometry |
Used by: | card, process_each_coverage |
Example: |
<process_spectral_grid> | |
---|---|
Info: | Indicator to loop through spectral grid data. |
Version(s): | 2 |
Attributes: | ignore_on_read, ignore_on_write, order, i_order, j_order, source |
Children: | card_name, export_format, separator, export_group, export_optional, process_on_condition, section, process_each_polygon, process_each_material, executable_command, xmdf_dataset, xmdf_data, xmdf_group, xmdf_geometry |
Used by: | card, process_each_coverage |
Example: |
<push_button> | |
---|---|
Info: | The button to be used for a control_dataset. Can be SELECT, CREATE, or DELETE. |
Version(s): | 1, 2 |
Attributes: | none |
Children: | none |
Used by: | control_dataset |
Example: | See control_dataset example. |
<range> | |
---|---|
Info: | Determines the range of acceptable values in an edit_box. Can use the keywords GREATER_THAN, GREATER_THAN_EQUALS, LESS_THAN and LESS_THAN_EQUALS. Numbers assumed inclusive unless otherwise specified. |
Version(s): | 1 |
Attributes: | none |
Children: | none |
Used by: | edit_box, role, any element that starts with "control_" except: control_file_selector, control_dataset and control_date |
Example: | Example 1
<edit_box> <range>0-1</range> </ edit_box > Example 2 <range>0 – 5.6546</range> Example 3 <range>GREATER_THAN 0</range> Example 4 <range>GREATER_THAN 0.0 - LESS_THAN 5.0</range> Example 5 Both examples are equivalent <range>0.0 - LESS_THAN 5.0</range> <range>GREATER_THAN_EQUALS 0.0 - LESS_THAN 5.0</range> |
<required> | |
---|---|
Info: | Used to indicate that something from the exported group must be used. |
Version(s): | 2 |
Attributes: | none |
Children: | none |
Used by: | export_group |
Example: |
<role> | |
---|---|
Info: | A single entry in a combo box option for <roles>. Used to define the displayed text and range. The range specifies how many objects that can have this role. |
Version(s): | 3 |
Attributes: | none |
Children: | text, range |
Used by: | roles |
Example: | Example of a culvert widget with a extra "Name" column
<control_set unique_name="tblSetCulverts"> <roles behavior = "SWAP"> <role text="upper"> <range>1-1</range> </role> <role text="lower"> <range>1-1</range> </role> </roles> <column text = "Name"> <edit_box unique_name="edtMyArcsName" type="text"> </edit_box> </column> </control_set> |
<roles> | |
---|---|
Info: | Defines the behavior of each role. |
Version(s): | 3 |
Attributes: | behavior |
Children: | role |
Used by: | control_set |
Example: | Example of a culvert widget with a extra "Name" column
<control_set unique_name="tblSetCulverts"> <roles behavior = "SWAP"> <role text="upper"> <range>EQUALS 1</range> </role> <role text = "lower"> <range>EQUALS 1</range> </role> </roles> <column text="Name"> <edit_box unique_name="edtMyArcsName" type="text"> </edit_box> </column> </control_set> |
<row> | |
---|---|
Info: | Definition of the row in the table. A widget defined in a row will be the widget used for each cell in the column.. |
Version(s): | 1 |
Attributes: | text, |
Children: | optional, dependency, text_box, combo_box, edit_box, all elements starting with "custom_control", check_box, text_style |
Used by: | control_set, table |
Example: | Row 1 is read only, row 2 isn’t
< table > … <row text = "Row1" read_only></row> <row text = "Row2"></row> < /table > |
<separator> | |
---|---|
Info: | Determines how to separate text that is being exported into a text file. |
Version(s): | 1 |
Attributes: | none |
Children: | none |
Used by: | |
Example: |
<simulation> | |
---|---|
Info: | The simulation object that represents what will run and be exported upon launching a model. There can only be one per model. |
Version(s): | 2 |
Attributes: | use_icon |
Children: | takes, executable, menu_item, input_files, output_files |
Used by: | control_executable, model |
Example: | See the model example. |
<snap> | |
---|---|
Info: | Snaps the arc, point or polygon in a coverage to the underlying geometry (mesh, grid, etc) that is defined by the <declare_coverage> bind_to attribute |
Version(s): | 3 |
Attributes: | none |
Children: | snap_exterior, snap_interior, location |
Used by: | arc_att, point_att, polygon_att |
Example: | Snaps an arc boundary condition to the interior of the mesh when the arc type is Monitor Line and to the exterior when the arc is a Inlet-Q.
<declare_coverage name= "Boudary Conditions" bind to ="MESH2D"> <arc_att> <menu_item double_click = "true" text = "Assign Linear BC" link_to = "Linear BC" </menu_item> <snap> <snap_exterior> <condition>cbxLineType EQUALS "Inlet-Q" </condition> </snap_exterior> <snap_interior> <condition>cbxLineType EQUALS "Monitor-Line" </condition> </snap_interior> </snap> </arc_att> </coverage> |
<snap_exterior> | |
---|---|
Info: | Snaps the arc, point or polygon in a coverage to the closest exterior point, arc, or polygon of the underlying geometry. |
Version(s): | 3 |
Attributes: | none |
Children: | condition |
Used by: | snap |
Example: | See <snap> |
<snap_interior> | |
---|---|
Info: | Snaps the arc, point or polygon in a coverage to the closest interior point, arc, or polygon of the underlying geometry. |
Version(s): | 3 |
Attributes: | none |
Children: | condition |
Used by: | snap |
Example: | See <snap>. |
Elements T-Z
<table> | |
---|---|
Info: | Table widget with columns and rows. Will most likely have multiple column and row tags. Using the attribute fixed_row_count means that the user can’t add or delete rows. Not using the fixed_row_count , an insert and delete button will be included at the bottom of the table. |
Version(s): | 1 |
Attributes: | read_only,
fixed_row_count, max_row_count, min_row_count, min_height, unique_name |
Children: | column, row, dependency, text_style |
Used by: | item |
Example: | Read only table with 2 columns and 3 rows. The number of rows are fixed.
< table unique_name = "myTable" read_only fixed_row_count="3"> <column text = "hours"</column> <column text = "minutes"</column> </ table > |
<take_coverage> | |
---|---|
Info: | Represents a coverage that can be taken in the project explorer. |
Version(s): | 2 |
Attributes: | limit |
Children: | declare_parameter, condition, use_coverage |
Used by: | simulation, attribute_set |
Example: | See takes example. |
<take_mesh2d> | |
---|---|
Info: | Represents a coverage that can be taken in the project explorer. |
Version(s): | 2 |
Attributes: | limit, linear |
Children: | declare_parameter, condition |
Used by: | simulation, attribute_set |
Example: | See takes example. |
<takes> | |
---|---|
Info: | Represents what can be dragged under another object in the project explorer. |
Version(s): | 2 |
Attributes: | none |
Children: | declare_parameter, take_coverage, take_mesh2d, take_grid2d |
Used by: | simulation, attribute_set |
Example: | Example 1 This example shows a simulation that can take a coverage and a 2D mesh which uses linear elements.
<takes> <take_coverage limit = "1"> <use_coverage>My Cov</use_coverage> <condition>""</condition> </take_coverage> <take_mesh2d limit = "1" linear = "true"> <condition>""</condition> </take_mesh2d> <declare_parameter>meshCov</declare_parameter> </takes> Example 2 This example shows taking one type of coverage OR another type of coverage. <takes> <take_coverage limit = "1"> <use_coverage>My Cov</use_coverage> <use_coverage>My Other Cov</use_coverage> <condition>""</condition> </take_coverage> <declare_parameter>monitorCov</declare_parameter> </takes> |
<text_box> | |
---|---|
Info: | Widget that displays text that is not editable. |
Version(s): | 1 |
Attributes: | alignH, alignV, text, unique_name |
Children: | dependency, text_style |
Used by: | item, row, column |
Example: | <text_box unique_name = "edtD50Units" alignH= "CENTER"
text = "mm"> </text_box> |
<text_size> | |
---|---|
Info: | Sets the point size of the text. Ranges from 8 to 20. Added in SMS 11.2. |
Version(s): | 1, 2 |
Attributes: | none |
Children: | none |
Used by: | text_style |
Example: | This would set the size of the text to 20pt. when the value in the edit_box is less than 0.0.
<edit_box> <unique_name>edtA</unique_name> <default>1.0</default> <text_style> <text_size>20</text_size> <condition>edtA LESS_THAN 0.0</condition> <text_style> </edit_box> |
<text_style> | |
---|---|
Info: | Holds the style options for the text. Added in SMS 11.2. |
Version(s): | 1 |
Attributes: | bold, italic, strike_through, text_size, underline |
Children: | color, condition |
Used by: | group, item, text_box, combo_box, edit_box, all elements starting with "custom_control", check_box, options |
Example: | This would bold the text when the value in the edit_box is less than 0.0.
<edit_box> <unique_name>edtA</unique_name> <default>1.0</default> <text_style bold text_size="12"> <condition>edtA LESS_THAN 0.0</condition> <text_style> </edit_box> |
<title_format> | |
---|---|
Info: | This indicates what the title of an object in an h5 file is. Uses the standard printf and sprintf format ([www.cplusplus.com/reference/clibrary/cstdio/printf/ www.cplusplus.com/reference/clibrary/cstdio/printf/]). Works the same as export_format. |
Version(s): | 3 |
Attributes: | none |
Children: | none |
Used by: | h5_group, h5_geometry, h5_dataset, h5_data |
Example: |
<unique_link_name> | |
---|---|
Info: | A unique name given to a link when using link_to_xml. This is needed to identify the unique_name elements from the file, especially when a linked to XML file is used multiple times. Hence, when using link_to_xml, this tag is required. No spaces or punctuation are allowed in the name. |
Version(s): | 1, 2 |
Attributes: | none |
Children: | none |
Used by: | link_to_xml |
Example: | See link_to_xml example. |
<update_text> | |
---|---|
Info: | Used to match the output text from a model to determine the progress amount. |
Version(s): | 3 |
Attributes: | none |
Children: | none |
Used by: | executable_progress_update |
Example: | Lets say our model outputs "CASE 1 of 35" then "CASE 2 of 35" etc..
<executable name="My Model Main"</executable> <executable_progress_update amount="0" max ="35"> <update_text>"CASE %d of %d" #progress_amount, #progress_max </update_text> </executable_progress_update> </executable> |
<use_coverage> | |
---|---|
Info: | Use a coverage that has previously been defined in the attribute type in <declare_coverage> |
Version(s): | 2 |
Attributes: | none |
Children: | none |
Used by: | declare_coverage, take_coverage |
Example: | See the coverage example and the takes example. |
<use_file_def> | |
---|---|
Info: | A way to access file data that has been previously declared with <declare_file_def>. |
Version(s): | 2 |
Attributes: | control_file |
Children: | output_file, input_file |
Used by: | file |
Example: |
<use_parameter> | |
---|---|
Info: | A way to access file data that has been previously declared with <declare_parameter>. |
Version(s): | 3 |
Attributes: | none |
Children: | none |
Used by: | anything beginning with "process_", card, control_dataset |
Example: |
<x_column> | |
---|---|
Info: | Used to define the attributes in the x column such as text (heading). |
Version(s): | 2 |
Attributes: | text |
Children: | none |
Used by: | control_curve |
Example: | This example creates a curve button with the date/time flag.
<item> <control_curve> <unique_name>myCurve1</unique_name> <max_rows>10</max_rows> <x_column> <text>Time </x_column> <y_column> <text>Velocity</text> </y_column> </control_curve> … |
<xmdf_data> | |
---|---|
Info: | Writes data to the XMDF file. The attributes rows, columns and layers indicate what information should be written for each row, column or layer respectively. By default, the attributes are set to "#specified". If no attributes are set then each export_format will be assumed to be a new row. The attribute columns can only be set if the rows attribute is set. The attribute layers can only be set if both the rows attribute and the columns attribute is set. The datatype attribute can be set to "float", "double", "integer", or "text". If the datatype attribute is not set or is set to "text" then export_format can be used. Otherwise, only export can be used. If more than 1 dimension is used, then the datatype cannot be "text". If 3 dimensions are used, then the datatype cannot be "integer". |
Version(s): | 3 |
Attributes: | datatype |
Children: | export_format, title_format, export |
Used by: | xmdf_group, file_def, and anything beginning with "process_". |
Example: | This writes out 6 different widgets’ values, one on each row.
<xmdf_data datatype = "text"> <export_format>"%s", widget1</export_format> <export_format>"%s", widget2</export_format> <export_format>"%s", widget3</export_format> <export_format>"%s", widget4</export_format> <export_format>"%s", widget5</export_format> <export_format>"%s", widget6</export_format> </xmdf_data> This writes out a table with each row being a different timestep and each column a different point. Each export would be written to different layers. <xmdf_data rows = "#timestep" columns = "#point" datatype = "double"> <export>#component1</export> <export>#component2</export> </xmdf_data> |
<xmdf_dataset> | |
---|---|
Info: | Writes out all of the data of a dataset in an SMS friendly format to an xmdf file. The attribute null_value is optional. If used, it specifies a numeric value that will be treated by the model as inactive. By default, SMS will write an activity array. The attribute location specifies where data should be taken from. The attribute widget specifies to only write the dataset referenced by the named widget. If no title_format is used, then the name of the dataset will be used. |
Version(s): | 3 |
Attributes: | null_value,
location, widget |
Children: | title_format |
Used by: | xmdf_group, xmdf_geometry, process_each_coverage. |
Example: | This writes out the hardbottom dataset as specified by the widget edtHardBottomWidget that exists in some dialog. Any value that is inactive is written as -999.0.
<xmdf_dataset widget = "edtHardBottomWidget" location = "all" null_value = "-999.0"> <title_format>"Hardbottom"</title_format> </xmdf_dataset> |
<xmdf_dimension> | |
---|---|
Info: | |
Version(s): | 3 |
Attributes: | dimension |
Children: | |
Used by: | xmdf_data |
Example: | Example 1: The following shows how to write out the text rows of a single column of a table into a single column XMDF dataset.
<xmdf_group> <title_format>"Test"</title_format> <xmdf_data> <title_format>"Table"</title_format> <process_each_row widget="myColumn1"> <xmdf_dimension dimension="rows"> <export_format>"%s", myColumn1</export_format> </xmdf_dimension> </process_each_row> </xmdf_data> </xmdf_group> Example 2: The following shows how to write out two columns of a table into two columns of single XMDF dataset. It should be noted that multi-column XMDF datasets may not be text. <xmdf_group> <title_format>"Test"</title_format> <xmdf_data datatype="double"> <title_format>"Table"</title_format> <process_each_row widget="myColumn1"> <xmdf_dimension dimension="rows"> <xmdf_dimension dimension="columns"> <export>myColumn1</export> </xmdf_dimension> <xmdf_dimension dimension="columns"> <export>myColumn2</export> </xmdf_dimension> </xmdf_dimension> </process_each_row> </xmdf_data> </xmdf_group> |
<xmdf_geometry> | |
---|---|
Info: | Writes a geometric object in an SMS friendly format to an XMDF file. Different geometric types will be written differently from each other. If no title_format is used, then the name of the geometry will be used. |
Version(s): | 3 |
Attributes: | none |
Children: | title_format, xmdf_dataset |
Used by: | file_def, xmdf_group |
Example: |
<xmdf_group> | |
---|---|
Info: | Writes an XMDF group to the xmdf file. A title_format must be used. The group_type attribute must be used. |
Version(s): | 3 |
Attributes: | group_type |
Children: | xmdf_group, xmdf_geometry, xmdf_dataset, xmdf_data, title_format, and anything beginning with "process_". |
Used by: | file_def, xmdf_group, xmdf_geometry, xmdf_dataset, and anything beginning with "process_". |
Example: |
<y_column> | |
---|---|
Info: | Used to define the attributes in the y column such as text (heading). |
Version(s): | 2 |
Attributes: | text |
Children: | none |
Used by: | control_curve |
Example: | See example in x_column |
Attributes
Attributes A-C
<alignH> | |
---|---|
Info: | Align text horizontally in a text box. |
Values: | bottom, top, center |
Version(s): | 1 |
Used by: | text_box |
<alignV> | |
---|---|
Info: | Align text vertically in a text box. |
Values: | bottom, top, center |
Version(s): | 1 |
Used by: | text_box |
<amount> | |
---|---|
Info: | |
Values: | integer |
Version(s): | 3 |
Used by: | execute_progress_update |
<behavior> | |
---|---|
Info: | When a user changes a role, you can define behaviors that automatically update the roles. |
Values: | None: no enforcement of rules in the dialog
Swap: all assigned up front. When some object is being assigned a role and is there are already a max number of objects assigned to the role, then any objects that had that role will be switched to the old role of the object being asgined until we surpass the maximum amount of that role, then unassigned. Max_hide: Don’t allow the role to show up in the combo box to be assigned to a "object" if the max has been reached for that role. Swap_max_default: (not implemented yet) Enforce max with default is like swap, but instead of the old option, it changes it to the default or unassigned (if no default provided) value. Chooses the first or last "object" of the role it encounters to change. |
Version(s): | 3 |
Used by: | roles |
<bind_to> | |
---|---|
Info: | Binds a coverage to a mesh, or grid |
Values: | MESH2D, CGRID |
Version(s): | 3 |
Used by: | declare_coverage |
<blue> | |
---|---|
Info: | A color. Ranges from 0 to 255. Added in SMS 11.2. See also green and red. |
Values: | integer (0 to 255) |
Version(s): | 1 |
Used by: | color |
<bold> | |
---|---|
Info: | Sets the text to be bolded when this attribute is used. Added in SMS 11.2. |
Values: | none |
Version(s): | 1 |
Used by: | text_style |
<columns> | |
---|---|
Info: | Represents a column in the H5 file that we are mapping to |
Values: | #timestep, #point, #arc, #polygon, #coverage, #material |
Version(s): | 3 |
Used by: | xmdf_data |
<corner_skip> | |
---|---|
Info: | Skip corners when exporting neighbors |
Values: | true, false |
Version(s): | 3 |
Used by: | process_each_neighbor |
<create_file> | |
---|---|
Info: | If attribute is specified, then create_file is true |
Values: | none |
Version(s): | 3 |
Used by: | control_file_selector |
<dataset_type> | |
---|---|
Info: | Specify the dataset type as scalar or vector. Default is scalar. |
Values: | scalar, vector |
Version(s): | 1 |
Used by: | control_dataset |
<dataset_widget> | |
---|---|
Info: | When exporting points from a dataset, the attribute identifies the dataset widget being used (contains the selected dataset). |
Values: | Name of the dataset_widget |
Version(s): | 3 |
Used by: | process_each_point |
<datatype> | |
---|---|
Info: | |
Values: | float, double, integer, text |
Version(s): | 3 |
Used by: | xmdf_data |
<default> | |
---|---|
Info: | Sets the initial default value of a widget. Can also be used to state the default combo-box option. |
Values: | edit_box or any element that begins with custom_control: double check_box: checked, unchecked |
Version(s): | 1 |
Used by: | edit_box, check_box, option, any element that begins with "control" ("custom_control" in version 1), combo_box, export_optional |
<default_executable_name32> | |
---|---|
Info: | Sets the initial default file name for the 32-bit executable. |
Values: | text |
Version(s): | 3 |
Used by: | executable |
<default_executable_name64> | |
---|---|
Info: | Sets the initial default file name for the 64-bit executable. |
Values: | text |
Version(s): | 3 |
Used by: | executable |
<description_text> | |
---|---|
Info: | A detailed description of why a model check failed. This text is displayed to the user. |
Values: | string |
Version(s): | 3 |
Used by: | model_check |
<dim> | |
---|---|
Info: | Specifies that when the dependency is false, the widget should be dimmed, not hidden. |
Values: | none |
Version(s): | 1 |
Used by: | dependency |
<dimension> | |
---|---|
Info: | Specifies values for rows, columns and layers. |
Values: | rows, columns, layers |
Version(s): | 3 |
Used by: | xmdf_dimension |
<display> | |
---|---|
Info: | This is used to describe how the dialog should display.
flex is the default. In this mode, there is a tree on the left hand side of the dialog. Clicking on an item in the tree will display that portion of the tree along with any child items below the clicked item. Other items will be hidden on the right hand side. full will show a tree on the left hand side of the dialog. Clicking on an item in the tree will move the scroll bars on the right hand side to make the item visible. All items that are not disabled due to dependencies are shown on the right hand side of the dialog in this mode. no_nav will have no left hand side tree. Instead, all items that are not disabled due to dependencies are shown in this mode. Added in SMS 11.2. |
Values: | flex, full, no_nav |
Version(s): | 1 |
Used by: | declare_page |
<display_options_hide> | |
---|---|
Info: | Don’t show a specific combo-box option in the display option dialog of SMS. This only applies to <combo_box> ‘s that have included the <display_options> element. Default value is false. |
Values: | true, false |
Version(s): | 3 |
Used by: | option |
<double_click> | |
---|---|
Info: | The double_click attribute (if true) indicates that this is the menu item to be launched on a double click event. |
Values: | true, false |
Version(s): | 2 |
Used by: | menu_item |
Attributes E-L
<executable_order> | |
---|---|
Info: | Defines the order in which this executable should run relative to other executables in the same simulation. |
Values: | integer ≥ 1 |
Version(s): | 2 |
Used by: | executable |
<feature> | |
---|---|
Info: | Determine whether to select points, arcs or polygons (poly). |
Values: | point, arc, poly |
Version(s): | 2 |
Used by: | control_feature_selector, process_each_neighbor |
<fix_text> | |
---|---|
Info: | A brief summary of what steps to take to fix a model check failure. This text is displayed to the user. |
Values: | string |
Version(s): | 3 |
Used by: | model_check |
<file_type> | |
---|---|
Info: | Specifies a file type of <declare_file_def> defines the file type. |
Values: | CARD_ASCII, SEQUENTIAL_ASCII, SEQUENTIAL_BINARY, XMDF |
Version(s): | 2 |
Used by: | declare_file_def, section |
<filter> | |
---|---|
Info: | When selecting a file, used to filter the available files by the extension type. The filter tag contains two parts. The first part is the text describing the filter that gets displayed to the user. The second part is a pair of parentheses that contains the actual filter. For example: Cmcards file (.cmcards) |
Values: | string (string) |
Version(s): | 3 |
Used by: | control_file_selector |
<flags> | |
---|---|
Info: | Flags are optional, and are used to modify the behavior/appearance of the control_curve. Only 1 flag is currently defined: XY_USEDATE. When this flag is set, the x column becomes a date/time calendar. |
Values: | XY_USEDATE |
Version(s): | 2 |
Used by: | control_curve |
<footer> | |
---|---|
Info: | Exported text inside a table that is placed at the end. |
Values: | string |
Version(s): | 2 |
Used by: | export_table, export_each_row, export_column |
<geometry> | |
---|---|
Info: | The default behavior is to only allow geometric objects that are contained under a simulation to be a candidate for selection. Otherwise "all" geometries are candidates. |
Values: | all |
Version(s): | 2 |
Used by: | control_dataset |
<green> | |
---|---|
Info: | A color. Ranges from 0 to 255. Added in SMS 11.2. See also blue and red. |
Values: | integer (0 to 255) |
Version(s): | 1 |
Used by: | color |
<header> | |
---|---|
Info: | Exported text inside a table that is placed at the beginning. |
Values: | string |
Version(s): | 1 |
Used by: | export_table, export_each_row, export_column |
<help_button_url> | |
---|---|
Info: | Provides online help when the help button is clicked. Loads the specified url in a web browser. Example: help_button_url="www.aquaveo.com" |
Values: | string |
Version(s): | 2 |
Used by: | declare_dialog |
<help_button_wiki> | |
---|---|
Info: | Provides online help when the help button is clicked. Loads the specified url in a web browser. Example: help_button_wiki="DynSrhModelControl" |
Values: | string |
Version(s): | 2 |
Used by: | declare_dialog |
<increment> | |
---|---|
Info: | An increment values. Used Increment from the min time to the max time, using the increment. |
Values: | Integer ≥ 1 |
Version(s): | 2 |
Used by: | control_set |
<ignore_on_read> | |
---|---|
Info: | |
Values: | |
Version(s): | 2 |
Used by: | Anything that starts with "process_" |
<ignore_on_write> | |
---|---|
Info: | |
Values: | |
Version(s): | 2 |
Used by: | Anything that starts with "process_" |
<interior_polygon> | |
---|---|
Info: | Only used for polygons when finding neighbors. Specify the polygon preference. |
Values: | interior_first, exterior_first, interior_only, exterior_only |
Version(s): | 3 |
Used by: | process_each_neighbor |
<italic> | |
---|---|
Info: | Sets the text to be italicized when the element is specified. Added in SMS 11.2. |
Values: | none |
Version(s): | 1 |
Used by: | text_style |
<i_order> | |
---|---|
Info: | Start at min i and go to max. Only used by cartesian grids and process_each_neighbor on quad trees. |
Values: | ascending, descending |
Version(s): | 3 |
Used by: | process_each_arc, process_each_coverage, process_each_material, process_each_point, process_each_polygon, process_each_row |
<j_order> | |
---|---|
Info: | Start at min j and go to max. Only used by cartesian grids and process_each_neighbor on quad trees. |
Values: | ascending, descending |
Version(s): | 3 |
Used by: | process_each_arc, process_each_coverage, process_each_material, process_each_point, process_each_polygon, process_each_row |
<layers> | |
---|---|
Info: | Represents a layer in the H5 file to which we are mapping. |
Values: | #timestep, #point, #arc, #polygon, #coverage, #material |
Version(s): | 3 |
Used by: | xmdf_data |
<location> | |
---|---|
Info: | The location from which we will be getting dataset values. |
Values: | TBD |
Version(s): | 3 |
Used by: | xmdf_dataset |
Attributes M-S
<max> | |
---|---|
Info: | A max value. The default is 2.147 billion. |
Values: | Integer ≥ 1 |
Version(s): | 2 |
Used by: | control_set, execute_progress_update |
<max_row_count> | |
---|---|
Info: | Used to set the maximum number of rows allowed in a table or curve. |
Values: | integer |
Version(s): | 3 |
Used by: | table, control_curve |
<min> | |
---|---|
Info: | A minimum value. The default is 0 (zero). |
Values: | Integer ≥ 1 |
Version(s): | 2 |
Used by: | control_set |
<model> | |
---|---|
Info: | Specify the model name of the executable |
Values: | string |
Version(s): | 2 |
Used by: | control_executable |
<name> | |
---|---|
Info: | Specify a name. When used by dialog this is required. |
Values: | string |
Version(s): | 3 |
Used by: | declare_file_def, declare_dialog, model, control_dataset, declare_coverage |
<neighbor_per_edge> | |
---|---|
Info: | Minimum number of neighbors in any direction. The default value is 0 (zero). |
Values: | integer |
Version(s): | 3 |
Used by: | process_each_neighbor |
<null_id> | |
---|---|
Info: | Integer for an id of a neighbor not found |
Values: | integer |
Version(s): | 3 |
Used by: | process_each_neighbor |
<null_value> | |
---|---|
Info: | The null_value for the dataset. |
Values: | any integer, any double |
Version(s): | 3 |
Used by: | xmdf_dataset |
<optional> | |
---|---|
Info: | Placed inside widgets to suppress a warning message from being displayed if the widgets data is empty. By default, data associated with a widget is required. If the <optional> tag is included and the widget’s data is empty, a warning message won’t be displayed. |
Values: | none |
Version(s): | 2 |
Used by: | text_box, combo_box, edit_box, table, any element that starts with "custom_control", check_box, column, row |
<order> | |
---|---|
Info: | The way spatial entity objects are to be sorted before iterating. Currently only available for Cartesian grids and quadtrees (process_each_neighbor). |
Values: | clockwise, counter_clockwise, ij, ji |
Version(s): | 3 |
Used by: | process_each_arc, process_each_material, process_each_point, process_each_polygon, process_each_neighbor |
<problem_text> | |
---|---|
Info: | A brief summary of why a model check failed. This text is displayed to the user. |
Values: | string |
Version(s): | 3 |
Used by: | model_check |
<red> | |
---|---|
Info: | A color. Ranges from 0 to 255. Added in SMS 11.2. See also blue and green. |
Values: | integer (0 to 255) |
Version(s): | 1 |
Used by: | color |
<required> | |
---|---|
Info: | Specifies that at least one option in the group must be present. |
Values: | true |
Version(s): | 3 |
Used by: | export_group |
<rows> | |
---|---|
Info: | Represents a row in the .h5 file to map to |
Values: | #timestep, #point, #arc, #polygon, #coverage, #material |
Version(s): | 3 |
Used by: | xmdf_data |
<select_time> | |
---|---|
Info: | |
Values: | single, #range, #all |
Version(s): | 2 |
Used by: | control_dataset |
<source> | |
---|---|
Info: | When exporting things such as point or arc locations, the source identifies the desired location such as on the coverage or on the geometry (grid, mesh) |
Values: | coverage (use locations from coverage), snapped (use the snapped location on a geometry from a coverage), geometry (use locations from geometry) |
Version(s): | 3 |
Used by: | process_each_polygon, process_each_arc, process_each_point, process_each_material, process_each_coverage, process_each_neighbor |
<strike_through> | |
---|---|
Info: | Sets the text to have a line through the middle when the element is specified. Added in SMS 11.2. |
Values: | none |
Version(s): | 1 |
Used by: | text_style |
Attributes T-Z
<text> | |
---|---|
Info: | Text that is displayed in the SMS user interface. |
Values: | any text string |
Version(s): | 1 |
Used by: | group, item, text_box, check_box, option, x_column, y_column, column, row, display_options, menu_item, declare_page, executable |
<type> | |
---|---|
Info: | For <display_options> defines point, or arc |
Values: | display_options: arc, point edit_box: text, integer, double |
Version(s): | 2 |
Used by: | declare_coverage, display_options, edit_box |
<time_type> | |
---|---|
Info: | Type of time either transient, steady state, or all. Default is all. |
Values: | transient, steady state, all |
Version(s): | 2 |
Used by: | control_dataset |
<underline> | |
---|---|
Info: | Sets the text to be underlined when this attribute is specified. Added in SMS 11.2. |
Values: | none |
Version(s): | 1 |
Used by: | text_style |
<unique_name> | |
---|---|
Info: | A unique name given to an widget, which determines how to reference the widget. When a unique_name is being referenced it should be by the file (nothing if current file), then unique_name. No spaces or punctuation (except _) are allowed in the name. The name must contain at least 1 non-numeric letter. The name must be unique. Names are not case sensitive, hence "aaa" is the same as "AAA". |
Values: | string (unique) |
Version(s): | 1 |
Used by: | card, text_box, combo_box, edit_box, table, all elements starting with "custom_control", check_box, text_box, control_curve |
<unit_keyword> | |
---|---|
Info: | The units of a widget that begins with "control_" (where applicable). This provides a mapping for SMS to know the unit type. |
Values: | Length:
Time:
Volume:
|
Version(s): | 1 |
Used by: | option |
<use_dialog> | |
---|---|
Info: | Determines which dialog definition we are linking to |
Values: | string |
Version(s): | 2 |
Used by: | material_att, menu_item |
<use_file> | |
---|---|
Info: | Complex command arguments can be built by referencing a <declare_file>. |
Values: | string = a <declare_filename > |
Version(s): | 3 |
Used by: | command_args |
<use_icon> | |
---|---|
Info: | Allows for a custom icon to be imported into sms for coverages and simulations. When a coverage or simulation is create the custom icon will be shown instead of the default one in the tree structure. The icon must be given to Aquaveo in advance. The icon dimensions are 16x16 pixels. |
Values: | string = (icon_name.bmp) |
Version(s): | 3 |
Used by: | simulation, declare_coverage |
<version> | |
---|---|
Info: | Sets the version number |
Values: | integer |
Version(s): | 1 |
Used by: | model, dynamic_model |
<z_is_elev> | |
---|---|
Info: | If the z value is elevation, set this to true. Default is false. |
Values: | true, false |
Version(s): | 2 |
Used by: | declare_coverage |
Converting to the Dynamic Model Interface
The Dynamic Model Interface offers more flexibility to model developers than the Generic Model Interface which was used before. Generic Model Interface files can be converted into files for the Dynamic Model Interface. Contact Aquaveo for more information.
Tutorial Links
For more information on using the Dynamic Model Interface, download the XML file tutorial:
-->
SMS – Surface-water Modeling System | ||
---|---|---|
Modules: | 1D Grid • Cartesian Grid • Curvilinear Grid • GIS • Map • Mesh • Particle • Quadtree • Raster • Scatter • UGrid | |
General Models: | 3D Structure • FVCOM • Generic • PTM | |
Coastal Models: | ADCIRC • BOUSS-2D • CGWAVE • CMS-Flow • CMS-Wave • GenCade • STWAVE • WAM | |
Riverine/Estuarine Models: | AdH • HEC-RAS • HYDRO AS-2D • RMA2 • RMA4 • SRH-2D • TUFLOW • TUFLOW FV | |
Aquaveo • SMS Tutorials • SMS Workflows |