SMS

Interpolating Localized Elevation Values

Do you have a Surface-water Modeling System (SMS) project where you need to adjust the elevation values for a small area of your mesh? Some projects require updates to the localized areas of the mesh elevation. It may be that you’ve received updated elevation data for part of the project area, or you discovered a flaw in the elevation data on the mesh. You could manually update the elevation on each node of the mesh, but this could be rather time-consuming. Using the Scatter Module in SMS, you can incorporate the new elevation values into your mesh.

Example of localized elevation data

Ideally, you will be able to obtain correct elevation data that covers the entire mesh domain, which you could simply interpolate over to the mesh. But when you only have updated elevation data for a localized area, you can use this workflow to update the elevation data.

  1. Right-click on the desired mesh and select Convert > Mesh → 2D Scatter.
  2. Name the new scatter set whatever you'd like (or keep the default) and keep all other settings the same.
  3. Choose Scatter | Merge Sets to open the Merge Scatter Sets dialog.
  4. Check the box for each scatter set that you would like to merge.
  5. Make your newer data higher on the list so that it will be given priority. Do so by selecting a scatter set and using the Move up or Move down buttons.
  6. Choose Delete lower priority scatter points and check the box for Maintain triangulation.
  7. If desired, name the new scatter set something other than the default.

This will create a new scatter set that overwrites the old data with the new data.

From here, which course you take will depend on whether you need just the z values to change, or if you need the mesh geometry to change as well.

To only change the elevation values in the existing mesh, do the following:

  1. Right-click on the new scatter set and select Interpolate to....
  2. Check the boxes for the scatter set z or elevation dataset as well as the box for Map Z.
  3. Choose the starting mesh from the list on the right.

To create a new mesh with the new elevation values, do this:

  1. Right-click on the merged scatter set and select Convert > | Scatter → 2D Mesh.
  2. Name the new mesh whatever you like and press OK.
  3. Edit the new mesh as needed.

The Scatter Module in SMS gives you a variety of options for fixing and adjusting elevation data. Try out the Scatter Module in SMS today!

Blog tags: 

Refining Quadtree Grids in SMS

Using the Surface-water Modeling System (SMS), you can model quadtree grids for use with numeric models such as CMS-Flow. Quadtrees are part of the UGrid module in SMS making them a type of unstructured grid. When creating quadtrees in SMS, you can choose to have uniform cell sizes, or you may choose to refine the cells in some areas. When refining a quadtree, there are a couple methods and some tips to keep in mind.

The first method for refinding grid cells in a quadtree is to simply select the cells you want to refine using the Select Elements tool, then right-click and use the Refine Cells(s) command. This will equally divide the cells into smaller, more refined, cells. This method is useful for small-scale refinement in localized areas. However, using this method can be tedious if there are multiple areas on the quadtree that need refinement.

Example of the Quadtree Refinement in GMS

The second method for refining quadtrees is preferred in most cases. This method involves setting refinement parameters in the Quadtree Generator coverage. If you are familiar with SMS’s Cartesian grid generator coverage and mesh generator coverage, you will find that it is similar to both of those coverages.

Like the Cartesian grid generator coverage, the quadtree coverage makes use of a grid frame to define the domain of the generated grid. In the grid frame, you decide the size of the cells in the generated quadtree. It is recommended that this cell size be the largest reasonable cell size for the quadtree grid.

Like the mesh generator coverage, the quadtree generator coverage also makes use of polygons. When you create a polygon on the quadtree generator coverage, you can double-click on the polygon to open the Polygon Attributes dialog. In this dialog you can set the grid cell size for all cells that will be within the polygon.

Using both the grid frame and the polygon attributes, you define how the grid cells are refined for your quadtree with more precision. Try out refining quadtree grid in SMS today!

Blog tags: 

Working with Functional Surfaces for UGrids in SMS

The functional surface option in SMS allows viewing data above a geometry. It has been an option in the 2D Mesh module. The functional surface option has been added for unstructured grids (UGrids) in the UGrid module starting with SMS 13.2. This post will give some guidance and tips for using functional surfaces with UGrids.

Example of a functional surface on a UGrid

Functional surfaces use any dataset as the elevation value for the surface. One of their most common uses is as a representation of the surface of the water above a UGrid. For example, the ocean’s surface in a CGWAVE model. However, functional surfaces can use any scalar dataset to inform the elevations.

A UGrid functional surface gets created by the New Functional Surface UGrid right-click command in the Project Explorer. Once created, right-click on the newly created functional surface to edit the display options. The Functional Surface Options dialog allows you to fine tune the display of your UGrid functional surface. Furthermore, selecting Other Display Options brings up UGrid-style display options.

Once you've set up your functional surface, you may need to make adjustments. Here are some tips on adjusting your functional surface displays depending on your situation:

  • If your dataset has large numbers, your functional surface might be very tall. To temper that effect, you could set the functional surface Z Magnification between 0 and 1.
  • If your dataset has very small numbers, your functional surface might appear completely flat. To more clearly see the rise and fall of the data values, set the Z Magnification to a value greater than 1.
  • If your functional surface is intersecting the UGrid, and you don't want it to, adjust the Elevation Z Offset.
  • If you want to add contours to your functional surface, click Other Display Options and turn on Face contours. Then click Contours to open the Contour Options.
  • If you still want to be able to see the UGrid through the functional surface, adjust the transparency. If you're using contours for the functional surface, you'll need to adjust the transparency in the Contour Options dialog.
  • If you want the functional surface to reference a specific dataset for its elevation, specify a User defined dataset.

Try out functional surfaces with UGrids in SMS today!

Blog tags: 

Computing a Courant Number for an SRH-2D Model

Sometimes, you might want to calculate a Courant number for your SRH-2D model. In most cases, this isn't necessary because SRH-2D is an implicit model. Unlike explicit models such as HEC-RAS, SRH-2D is not Courant limited. With SRH-2D, it is more important to verify convergence and stability than Courant compliance. However, we know that calculating a Courant number dataset for SRH-2D is occasionally desired. Fortunately, SMS now has the Advective Courant Number tool to compute a Courant number dataset based on velocity.

First, let's be clear about what a Courant number does. A Courant number tells you the number of mesh elements that a given water particle passes through during a time step. If the Courant number is less than one, the given particle of water would not pass through an entire mesh element in a single time step.

In SMS, the Advective Courant Number tool computes a Courant Number dataset including every node at every time step. It uses the following equation:

Courant Number Equation

To use the Advective Courant Number tool, do the following:

  1. Make sure a transient SRH-2D solution file is already loaded.
  2. Open the SMS Toolbox, and under Datasets, find the Advective Courant Number tool.
  3. Set the Velocity dataset, the time step length for the simulation, and the desired name for the output dataset.
  4. Run the tool.
Example of the Advective Courant Number tool

The Advective Courant Number tool might stall depending on the vector dataset for your SRH-2D simulation. Running the SRH-2D simulation again might solve this problem. Before running the simulation again, we recommend saving the project as a new file to preserve the old solution files. Then, in the new SMS project file, run SRH-2D again. Once the new solution is loaded into SMS, run the Advective Courant Number tool again using the new velocity dataset.

To see the results, open the Properties dialog for the Courant number dataset. There, you will find the maximum and minimum for the whole dataset and the current time step.

Calculate the Courant number dataset for your SRH-2D simulation in SMS today!

Blog tags: 

Pages