CMS-Flow Boundary Conditions

From CIRPwiki
Jump to: navigation, search
Figure 1. CMS-Flow Boundary Conditions window

CMS-Flow has five types of boundary conditions which are listed and discussed below. The figure below shows the CMS-Flow Boundary Conditions window in SMS. All CMS-Flow boundary conditions are forced at the edges of the domain by use of cellstrings defined with the Surfacewater Modeling System (SMS). Cellstrings can either be created manually or using the SMS tool called Generate Along Boundary which is found under the Cellstring menu.

Creating Cell Strings

Figure 2. Automated cellstring generation in SMS 11.0

Cell strings can either be manually created by clicking on the cells or by using the SMS interface to automatically detect and assign the cell strings.

  • To manually create a cellstring
  1. Select the Create cellstring tool.
  2. Single-click on the first cell of the cellstring.
  3. If necessary, single click on subsequent cells in the cellstring (around corners).
  4. Double-click on the last cellstring to finish.
  • To automatically generate cellstring in SMS
  1. Click on Cellstring | Generate Cellstrings and select one of the options:
    1. Along Open Boundaries
    2. Along Land Boundaries
    3. Along Open and Land Boundaries
  • Notes:
  1. Cell strings must be at least three cells wide.
  2. Cell strings must cover ALL open boundaries. Leaving any open boundaries without an assigned boundary will close that boundary and apply a wall boundary condition.
  3. Land boundary conditions are not necessary at close boundaries (cells next to inactive cells). The CMS will automatically detect these land boundaries.
  4. The orientation of cellstrings is important. Some inflow and all outflow boundary conditions assume a zero-gradient in the normal direction. If this assumption is not valid, the boundary may produce instability problems. It is recommended that the boundaries be placed in a orientation such that the spatial gradients normal to the cellstring or minimal.

Land Boundary

The land boundary conditions is equivalent to a zero flux boundary condition. The land boundary condition is the default boundary condition when a cell string is created. It is not necessary to define land boundaries in the interior of the CMS-Flor domain, since land boundarys will automatically be detected by CMS-Flow based on the local water depths and the presence of inactive land cells.

Flow Rate-Forcing

The flow rate boundary condition specifies a time series of water fluxes in units of m^3/s per cell.


  • Total flow rate specified is divided between the total number of cells in the cellstring with each carrying a portion of the total.
  • This boundary type may only be specified along cell strings which are straight.
  • Positive values are always directed INTO the domain and negative values are LEAVING the domain.
    • Note: Previous versions of CMS (v4.0 and earlier) treated flow boundaries differently.

Previous Flow Rate Guidelines

  • The sign of the flow rate curve was dependent on the direction of flow with respect to the origin (always lower-left hand corner of the grid).
This guide should assist in proper assignment:
  • Flow rate from the East - Negative value
  • Flow rate from the West - Positive value
  • Flow rate from the North - Negative value
  • Flow rate from the South - Positive value

Water Surface Elevation Forcing

Two types of Water Surface Elevation Forcing exist for CMS-Flow. Once a water surface elevation curve (or series of curves) is applied, the user is able to display the curve information graphically.

1. Single time series curve for each cell string (Option "Define curve" in SMS)

Figure 3. Selecting the cellstring along the ocean boundary, and clicking on

For this type of BC, a single time series of water levels is specified and is applied at all of the cells along a boundary cell string. The time series curve may be specified by either importing an SMS *.xys file, copying tabular data into SMS, or manually entered the time series information in SMS. To assign this type of BC in SMS:

  1. Click on the Select a Cellstring button, right-click the blue cellstring along the ocean boundary (if this cannot be selected it is because all cellstrings were deleted; this can be regenerated by clicking and clicking around the ocean cells or selecting Cellstring and Generate Along Boundary), select Assign BC (Figure 1).
  2. Select the WSE-forcing boundary condition, and click curve undefined (Figure 2)
  3. Copy-paste a time series into the XY Series Editor (Figure 2),
  4. Click on the Export button to save the water level time series to an SMS xys file (time series file).
  5. Save the SMS project File (*.sms) or CMS-Flow Simulation File (*.cmcards).
Figure 4. Top: is the blank XY Series Editor; Bottom: after the data is pasted in.

2. Time series curve for each cell on cell string (Option "Extract from data set" in SMS)

User creates a cellstring for the given boundary and extracts multiple time series curves from a dataset or database. Each cell along the cellstring is given its own time-series curve information. Examples are:

  • Extraction of water surface elevation values from a larger domain solution (ie. Larger CMS-Flow or ADCIRC grid)
  • Extraction of tidal constituent information from a tidal database, from which a water surface elevation curve can be generated.

Tidal Constituent Forcing

Figure 5. Tidal Constituent Forcing window in SMS

CMS-Flow as the option of forcing with a harmonic tidal water surface elevation. To assign a boundary as a tidal boundary:

  1. Select a cellstring
  2. Click under CMS-Flow | Assign BC
  3. In the CMS-Flow Boundary Conditions window, click on Tidal constituent-forcing, and click OK.
  4. Open the CMS-Flow Model Control window and click on the tab labeled Tidal.
  5. Enter the amplitudes and phases of the tidal constituents. Note that the same amplitude and phase are applied to entire cellstring and click OK

Table 1. Tidal constituents used in CMS

Constituent Speed Constituent Speed Constituent Speed Constituent Speed
SA* 0.041067 SSA* 0.082137 MM* 0.54438 MSF* 1.0159
MF* 1.098 2Q1* 12.8543 Q1* 13.3987 RHO1* 13.4715
O1* 13.943 M1* 14.4967 P1* 14.9589 S1* 15.0
K1* 15.0411 J1* 15.5854 OO1* 16.1391 2N2* 27.8954
MU2* 27.9682 N2* 28.4397 NU2* 28.5126 M2 28.9841
LDA2* 29.4556 L2* 29.5285 T2* 29.9589 S2 30
R2* 30.0411 K2 30.0821 2SM2* 31.0159 2MK3* 42.9271
M3* 43.4762 MK3* 44.0252 MN4* 57.4238 M4 57.9682
MS4* 58.9841 S4* 60.0 M6 86.9523 S6* 90.0
M8* 115.9364

* Only available through advanced cards for CMS >v4.0

Water Surface Elevation and Velocity Forcing

Figure 6. Selecting the WSE and Velocity-forcing boundary condition in the CMS-FLOW Boundary Conditions window.

When nesting a CMS-Flow grid within a larger CMS-Flow or ADCIRC grid, it is possible to extract both water levels and velocities from the larger grid. These values are internally converted into fluxes at the boundary cell faces.

  • To extract water surface elevations and velocities from a larger grid::
  1. Load both the nested CMS-Flow grid.
  2. Load the larger CMS-Flow or ADCIRC grid along with the solution file.
  3. Select the appropriate boundary cellstring and either go to CMS-FLOW | Assign BC or right-click on the cellstring and select Assign BC.
  4. In the CMS-FLOW Boundary Conditions window, select WSE and Velocity-forcing.
  5. Click on Extract under the Time Series section.
  6. In the Extract Boundary Conditions window, select the water surface elevation dataset under the section called Regional scalar model solution:, and select the current velocity dataset (vector dataset) under the section called Regional vector model solution:.
  7. Click on Extract. The extraction process may take several minutes. Be patient and DO NOT click or press any keys in SMS as this may cause the interface to crash.
Figure 7. Extracting water surface elevations and current velocities from a larger grid solution.

Cross-shore Boundary

Figure 8. Setting up a cross-shore boundary condition cellstring.

For a well-defined hydrodynamic problem, the flow discharge or velocity is needed at inflow boundaries, while the water level is usually given at outflow boundaries for a subcritical flow or at inflow boundaries for a supercritical flow. For most coastal applications, the water surface elevation is usually specified at the seaward ocean boundary, which can be the time series of tide levels recorded at the boundary, generated using tidal constituents, or predicted using a larger-scale regional model. Along the cross-shore, constant water surface elevation is not appropriate since winds and waves will produce a setup in the water levels. Also, extracted water levels from a larger grid solution may be too coarse to properly describe the nearshore longshore currents and water levels. A better approach is the use one-dimensional solution to the momentum equations to predict an inflow water flux and outflow water surface elevation.

  • To create a cross-shore boundary condition:
  1. Select the appropriate cellstring and either right-click and select Assign BC or go to CMS-FLOW | Assign BC
  2. In the CMS-FLOW Boundary COnditions window, select Cross-shore under Boundary Conditions and click OK
Figure 9. Setting up a cross-shore boundary condition cellstring.


CMS Internal Nesting Tidal Boundary Condition with Constituent Database

CMS Internal Nesting WSE Boundary Condition with Parent Grid

Documentation Portal