CMS-Flow:Features
General Parameters
The general parameters include solution scheme, time settings such as start time, duration and time step as well as wetting and drying depth. Most of the general parameters are set by going to "Model Parameters" tab within the "CMS-Flow Model Control" window. Below are some of the CMS cards related to the "Model Parameters" tab.
Card | Arguments | Default | Range | Description |
---|---|---|---|---|
HYDRO_TIME_STEP | REAL | Calculated based on solution scheme and courant number | none | Sets to the time step for hydrodynamics in seconds. |
DURATION_RUN | REAL | 48.0 | >RAMP>0 | Sets the duration of the model simulation in hours. |
DURATION_RAMP | REAL | 1.0 | Sets the length of the ramp period in which the model forcing is slowly ramped from zero. |
Boundary Conditions
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.
Land
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.
NOTES:
- 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.
- The sign of the flow rate curve is 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. Define curve (single time series curve for each cell string)
User creates a cellstring for the given boundary and defines a time series curve. The value for each time on this curve is applied to all cells along the designated cellstring. 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.
2. Extract from data set (time series curve for each cell on cell string)
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
CMS-Flow as the option of forcing with a harmonic tidal water surface elevation. To assign a boundary as a tidal boundary:
- Select a cellstring
- Click under CMS-Flow | Assign BC...
- In the CMS-Flow Boundary Conditions window, click on Tidal constituent-forcing, and click OK.
- Open the CMS-Flow Model Control window and click on the tab labeled Tidal.
- Enter the amplitudes and phases of the tidal constituents. Note that the same amplitude and phase are applied to entire cellstring and click OK
Water Surface Elevation and Velocity Forcing
Users are able to extract both water surface elevations and velocity components from a larger domain solution (ie. Larger CMS-Flow or ADCIRC grid).
Salinity Concentration Forcing
If salinity transport is active for the simulation, the user has the ability to use existing hydrodynamic cellstrings in the interface in order to provide a time-series curve of salinity concentrations. The salinity concentrations must be provided in units of ppt.
Global Forcing
There are two main types of global forcing available in CMS-Flow, wind and wave. Global forcing means that the forcing is applied on a cell-by-cell nature, rather than forcing along a boundary.
Wind Forcing
Wind Curve
Temporally varying, spatially constant winds are input in CMS in the Wind Section of the CMS-Flow Model Control Window. To add wind forcing to a current CMS-Flow project click on CMS-Flow | Model Control and then on the Wind/Wave tab. Activate wind forcing by clicking on the Include Wind check box. Winds may be imported using an *.m2w file or by specifying a curve for wind speed and direction. To specify a curve for each click on the respective box which says Curve undefined which will open the XY Series Editor. The time series may be manually entered, copied or imported from an *.xys file in the XY Series Editor.
Spatially Variable Wind and Atmospheric Pressure
CMS-Flow V4.0 and higher have the option to use spatially variable wind and atmospheric pressure forcing. Currently, this feature is specified in the advanced card section using the cards listed in the table below.
CMS-Flow cards related to wind
Card | Arguments | Type |
---|---|---|
WIND_OUT_TIMES_LIST | Id number of output times list | integer |
WIND_DRAG_COEFFICIENT | kappa in Hsu (1988) (default 0.4) | real |
WIND_INPUT_CURVE | Name of model parameter file followed wind curve path | character |
ANEMOMETER_HEIGHT | Height of wind speeds | meter |
OCEANWEATHER_WIND_FILE | Name of Oceanweather, Inc. wind file (*.win) | character |
OCEANWEATHER_PRES_FILE | Name of Oceanweather, Inc. pressure file (*.pre) | character |
OCEANWEATHER_XY_FILE | Name of Oceanweather, Inc. coordinate file (*.xy) | character |
WIND_PRESSURE_FLEET_FILE | Name of fleet wind and pressure file | character |
WIND_PRESSURE_GRID_PARAM | Nwlat,Nwlon,wLatMax,wLonMin,wLatInc,wLonInc | integer and real |
WIND_PRESSURE_TIME_INCREMENT | wTimeInc | real |
Wave Forcing
Temporally and spatially varying.
- Wave forcing is generally provided by the user selecting to use the Steering Module within SMS. The mapping of wave data from wave grid to flow grid is automated during the course of the steering process.
- If a choice is made not to use the steering process, the user must provide several datasets of information which has been mapped to the flow grid geometery.
- Radiation stress gradient
- Wave height
- Wave period
- Wave direction
- Wave dissipation
Transport Options
Sediment Transport
The sediment transport controls are located in the Transport section of the CMS-Flow Model Control window as shown in the figure below. The sediment transport is activated by going to the Transport section of the CMS-Flow Model Control and checking the box labeles Calculate sediment transport. The CMS card used to turn on or off the sediment transport is described in the table below.
Card | Arguments | Default | Range | Description |
---|---|---|---|---|
CALC_SEDIMENT_TRANSPORT | CHARACTER | OFF | ON | OFF | Turns on or off the sediment transport calculation. |
Transport model
There are currently three sediment transport models available in CMS: (1) Equilibrium total load, (2) Equilibrium bed load plus advection-diffusion for suspended load, and (3) Non-equilibrium total load. The first two models are selected by unchecking the checkbox which says "Use non-equilibrium transport" and selecting either "Total load" for the first model, or "Advection-diffusion" for the second next to input item named "Formulation". The third model is selected by checking the box "Use non-equilibrium transport".
Card | Arguments | Default | Range | Description | Versions |
---|---|---|---|---|---|
SED_TRAN_FORMULATION | CHARACTER | NET | WATANABE | LUND_CIRP | A-D | NET | Selects the sediment transport model. | >1.0 |
Note that the when selecting the equilibrium total load model, the SED_TRAN_FORMULATION card is set to either WATANABE or LUND_CIRP depending on the transport formula chosen. When selecting the equilibrium A-D model, the transport formula is specified through the concentration profile formula (described below).
1. Equilibrium Total load
In this model, both the bed load and suspended load are assumed to be in equilibrium. The bed change is solved using a simple mass balance equation known as the Exner equation. More information on the this model can be found here.
2. Equilibrium Bed load plus Advection-Diffusion Suspended Load
Calculations of suspended load and bed load are conducted separately. The bed load is assumed to be in equilibrium and is included in the bed change equation while the suspended load is solved through the solution of an advection-diffusion equation. Actually the advection diffusion equation is a non-equilibrium formulation, but because the bed load is assumed to be in equilibrium, this model is referred to the "Equilibrium A-D" model.
More information on the this model can be found here.
3. Non-equilibrium Total Load
The non-equilibrium sediment transport algorithm (NET) simulates non-cohesive, single size sediment transport and bed change using a Finite Volume method and includes advection, diffusion, hiding and exposure, and avalanching. NET sediment transport is calculated with a non-equilibrium bed-material (total load) formulation. In this approach, the suspended- and bed-load transport equations are combined into a single equation and thus there is one less empirical parameter to estimate (adaptation length).
Additional information on NET can be found here.
All of the previously mentioned models account for hard bottom and effect of the bed slope on bed load.
Transport Formula
The nearbed sediment concentation or concentration capacity are calculated with one of the following transport formula:
- Lund-CIRP (2006)
- Van Rijn (1998)
- Watanabe (1987)
- Soulsby-van Rijn (1997) (>=V4.0)
Card | Arguments | Default | Range | Description |
---|---|---|---|---|
NET_TRANSPORT_CAPACITY | CHARACTER | LUND-CIRP | LUND-CIRP | VAN_RIJN | WATANABE | SOULSBY | Selects the transport formula. Note that SOULSBY is only available in v>=4.0 |
TRANSPORT_FORMULA | CHARACTER | LUND-CIRP | LUND-CIRP | VAN_RIJN | WATANABE | SOULSBY | Selects the transport formula. Note that SOULSBY is only available in v>=4.0. |
SED_TRANS_FORMULATION | CHARACTER | LUND-CIRP | LUND-CIRP | A-D | WATANABE | NET | Selects the transport formula for the equilibrium total load model. Does not specify the transport formula for the equilibrium A-D and non-equilibrium total load models. |
CONCENTRATION_PROFILE | CHARACTER | LUND-CIRP | LUND-CIRP|EXPONENTIAL| ROUSE| VAN_RIJN | Selects the concentration profile to be used either in the equilibrium A-D or total load nonequilibrium models. |
Scaling Factors
Transport Scaling Factors
The bed and suspended transport scaling factors multiply directly by the transport capacity or near-bed sediment concentration calculated from the transport formula. These factors should be used to calibrate sediment transport rates and due to the large uncertainty in the transport formula, it is generally acceptable to use scaling factors in the range of 0.5-2.0.
Card | Arguments | Default | Range | Description |
---|---|---|---|---|
BED_LOAD_SCALE_FACTOR | REAL | 1.0 | 0.5-2.0 | Calibration factor for bed load transport capacity formula |
SUSP_LOAD_SCALE_FACTOR | REAL | 1.0 | 0.5-2.0 | Calibration factor for suspended load transport capacity formula |
Morphologic Scaling Factors
The morphologic scaling factor is directly multiplied by the calculated bed change at every time step and is intended as a means of speeding up the computational time. It is only recommended for periodic boundary conditions or conditions that do not change rapidly over time.
Card | Arguments | Default | Range | Description |
---|---|---|---|---|
MORPH_ACCEL_FACTOR | REAL | 1.0 | 1-100 | Morphologic acceleracion factor. Directly multiplies by calculated bed change. |
Advanced Cards
Card | Arguments | Default | Range | Description | Versions |
---|---|---|---|---|---|
SED_TRAN_CALC_TIMESTEP | REAL | hydro time step | >hydro time step | Time step for sediment transport in seconds | v>1.0 |
SEDIMENT_FALL_VELOCITY | REAL | none | 4.0e-4 - 0.4 | Sets the sediment fall velocity to a constant in m/s | v>=3.5 |
HIDING_EXPOSURE_COEFFICIENT | REAL | 0.7 | 0.6-1.0 | Hiding and exposure coefficient. | v>=3.5 |
NET_LOADING_FACTOR | REAL | 1.0 | 0.5-2.0 | Used to specify under- or overloading at sediment inflow boundaries. Only for NET. | 3.5=>v<=4.0 |
SEDIMENT_INFLOW_LOADING_FACTOR | REAL | 1.0 | 0.5-2.0 | Used to specify under- or overloading at sediment inflow boundaries. | >=4.0 |
CALC_MORPH_DURING_RAMP | character | ON | ON | OFF | Determines whether to calculate the morphology change during the ramp period | v>=3.5 |
Salinity Transport
In many estuaries, the density gradients caused by spatial variations in salinity can be an important driving force in the circulation. Salinity is also a key water quality variable in estuaries, since it affects the chemical and biological processes. Salinity is simulated in the Coastal Modeling System (CMS) in a depth-averaged sense. This means that the estuary or body of water is assumed to be well mixed vertically and the salinity is constant over the water column.
The salinity transport equation is solved with an explicit, finite volume method. The advection term is discretized with upwind scheme, and the diffusion term is discretized with the standard central difference scheme.
The CMS-Flow salinity cards are listed in the table below.
Card | Arguments | Description | Versions |
---|---|---|---|
CALC_SALINITY | ON | OFF | Turns salinity on or off | >=v3.75 |
SALT_OUT_TIMES_LIST | integer | Index of times list of output times | >=v3.75 |
SALINITY_IC | real | Specifies the initial salinity value in ppt for the whole computational domain | >=v3.75 |
SALINITY_IC_ASCII | character | Specifies the file name of a scatter set file (*.pts) containing the coordiantes and initial salinity values to be interpolated using the Laplacian interpolation | >=4.0 |
Additional information on Salinity Transport in CMS-Flow can be found here.
Other Processes
Bottom Friction
The bottom friction parameter (related to Manning ) is spatially varying (cell-specific) over the grid domain. The default value upon grid creation is 0.025. At times a user may desire to represent locations where added friction is needed due to structures or increased turbulence due to sharp changes in current speed. More information on using this feature of CMS-Flow can be found here.
Card | Arguments | Default | Range | Description | Versions |
---|---|---|---|---|---|
USE_WALL_FRICTION | CHARACTER | ON | ON | OFF | Turns on or off wall friction | >=3.5 |
MANNING_N_DATASET | CHARACTER CHARACTER | [<grid file>] [<grid name>//"Datasets/ManningsN"] | none | Grid file name and dataset path for the input Manning's n dataset | >=v3.5 |
MANNING_N_CONSTANT | real number | none | 0.001-0.5 | Specifies input Manning n dataset | >=v3.5 |
WAVE-CURRENT_MEAN_STRESS | character | W09 | W09 | DATA2 | DATA13 | F85 | HT95 | Defines the model used for calculating the mean bottom shear stress used in hydro | >=4.0 |
Hard Bottom
Hard Bottom is a morphologic constraint that provides the capability to simulate mixed bottom types within a single simulation. This cell-specific feature limits the erodibility of the constrained cells down to a specified depth below the water surface. More information on the use of hard bottom within the SMS can be found here.
Variable D50
When sediment transport and morphology change are activated, sometimes it may be desired to designate areas of the grid to have a certain grain size. This cell-specific parameter allows each cell to take on the characteristics of a certain sediment grain size. More information on the use of variable grain size (D50) can be found here.
Eddy Viscosity
Eddy Viscosity in CMS-Flow is not a user definable parameter. A description of the advanced cards related to eddy viscosity is shown in the table below.
Card | Arguments | Default | Range | Description | Versions |
---|---|---|---|---|---|
TURBULENCE_MODEL | CHARACTER | SUBGRID | SUBGRID |FALCONER| PARABOLIC | MIXING-LENGTH | Specifies the turbulence model used | >=3.5 |
EDDY_VISCOSITY_CONSTANT | REAL | 1.0E-6 | >=1.0E-6 | Constant contribution or base value of eddy viscosity | >=3.5 |
EDDY_VISCOSITY_BOTTOM | REAL | 0.0667 | 0.01-0.2 | Coefficient related to the contribution to eddy viscosity from the bottom shear | >=3.5 |
EDDY_VISCOSITY_HORIZONTAL | REAL | 0.4 | 0.2-0.6 | Coefficient related to the contribution to eddy viscosity from horizontal velocity gradients | >=3.5 |
EDDY_VISCOSITY_WAVE | REAL | 0.5 | 0.2-1.0 | Coefficient related to the wave bottom friction contribution to eddy viscosity | >=4.0 |
EDDY_VISCOSITY_BREAKING | REAL | 0.05 | 0.04-0.08 | Coefficient related to the wave breaking contribution to eddy viscosity | >=4.0 |
More information can be found here.
Other Features
Parallelization with OpenMP
Both Intel and AMD processors now are shipping chips with multiple cores/processors (henceforth referred to as "processors") available. CMS-Flow is now configured to make use of these extra processes that are available on newer machines.
Additional information on using Multiple Processors with CMS-Flow can be found here.
Advanced Output
The following advanced cards have been added to CMS v4.0 and higher for outputting additional output information, ASCII file output, and more.
Card | Arguments | Description | Default value |
---|---|---|---|
WAVE_OUT_TIMES_LIST | integer | Output time series id | 0 |
EDDY_OUT_TIMES_LIST | integer | Output time series id | 0 |
GLOBAL_TECPLOT_FILES | ON | OFF | Outputs Tecplot ASCII files | OFF |
GLOBAL_SUPER_FILES | ON | OFF | Outputs Tecplot ASCII files | OFF |
GLOBAL_STATISTICS | [t0] [tn] [dt] | Calculates global statistics if specified | none |
Matrix solver
The four different solvers implemented in the implicit model are the Gauss-Seidel, Gauss-Seidel with Successive-Over-Relaxation, BICGSTAB, and GMRES. The same solver is applied to flow, sediment and salinity. The default solver is the GMRES. The solver may be changed using the advanced card in the table below.
Card | Arguments | Description | Default value |
---|---|---|---|
SOLVER_TYPE | GAUSS-SEIDEL | GAUSS-SEIDEL-SOR | BICGSTAB | GMRES | Determines the numerical solver used | GMRES |
HYDRO_MAX_ITER | integer | Maximum number of iterations (outer loop) for the hydrodynamics | 20 |
SEDIMENT_MAX_ITER | integer | Maximum number of iterations (outer loop) for the sediment transport | 20 |
SALINITY_MAX_ITER | integer | Maximum number of iterations (outer loop) for the salinity transport | 20 |
Advection scheme
As in the case of the solver, the same advection scheme is applied for the flow, sediment and salinity transport equations. There are three choices for advection schemes with upwinding in the implicit model: hybrid, exponential and HLPA. The hybrid scheme is fast but is the most diffusive. The exponential scheme is based on the 1D analytical solution to an advection-diffusion equation and produces very stable results. The HLPA is very stable and non-diffusive, but requires slightly more computational time. For most applications, the exponential scheme is recommended and is set as the default. The advection scheme may be change using the advanced card
Card | Arguments | Description | Default value |
---|---|---|---|
ADVECTION_SCHEME | HYBRID | EXPONENTIAL | HLPA | Determines the advection scheme | EXPONENTIAL |
Units of Measurement
Variable | Units | Symbol |
---|---|---|
Water Surface Elevation | meters | () |
Current Velocity | meters per second | () |
Flow Rate | cubic meters per second | () |
Salinity Concentration | parts per thousand | () |
Sediment Concentration | kilogram per meter cubed | () |
Sediment Transport | meter squared per second | () |