CMS-Flow:Features

From CIRPwiki
Revision as of 19:52, 11 December 2009 by Rdchlmeb (talk | contribs)
Jump to navigation Jump to search

Boundary Conditions

CMS-Flow has multiple types of boundary conditions which are listed and discussed below. All CMS-Flow boundary conditions are forced at the edges of the domain by use of cellstrings defined with the Surfacewater Modeling System.

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 value for all cells on a cellstring
  2. Multiple values on a cellstring (one for each cell)

Single Value

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.

Multiple Values

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.

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).

River Flow Forcing

User creates a cellstring for the given boundary, chooses a River Flow type for the cellstring, then creates a time-series curve of flow rates. NOTES:

  • Total flow rate specified is divided between the total number of cells in the cellstring with each carrying a portion of the total.
  • 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

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.

Introduction

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.

Governing Equation

The depth-averaged 2-D salinity transport equation is given by

        

where is time, is the current velocity in the jth direction, is the total water depth, is the salinity concentration, and is the salinity mixing coefficient.

Initial and Boundary Conditions

The initial salinity is specified as a constant in the whole domain. The value of the constant is specified in the SMS 10.1 interface. Inflow salinity concentrations are applied at specified salinity boundary cell strings. Salinity cell strings are specified in the same manner as the hydrodynamic boundary cells strings.

Numerical Methods

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.

Units for Boundary Conditions

  • Water Surface Elevation - meters ()
  • Current Velocity - meters per second ()
  • Flow Rate - cubic meters per second ()
  • Salinity Concentration - parts per thousand ()

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

Temporally varying, spatially constant (ie. one value of wind applied for a given time to every computational cell in the domain.

  • In the near future a variable wind will be allowed and an interface within the SMS will be provided.

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

Salinity Transport

Other Processes

Bottom Friction

Hard Bottom

Variable D50

Other Features

Parallelization with OpenMP

Both Intel and AMD processors now are shipping chips with multiple cores/processors (henceforth referred to as "processors") available.

Presently (08/4/2009) - To enable use of more than one processor (or more than one thread) in CMS-Flow, the user must specify the corresponding "Card" in the "Advanced" tab in the CMS-Flow model control in SMS 10.1 (unavailable in version SMS 10.0 and earlier):

OPENMP_THREADS <# of threads> This card takes as an argument the number of threads to use for a given application with the following rules:

  1. If more threads are requested than are available, only the maximum on the machine are used.
  2. If hyperthreading is allowed on that chip's architecture, all threads are used, up to the number requested.
 EXAMPLE 1
   Your machine has 8 cores, and you want to start a CMS-Flow run that 5 threads.
   "OPENMP_THREADS <white space> 5" is specified in the Advanced Card section.

Hyperthreading

  • Some of the higher-end chips have a feature called "Hyperthreading" which allows each processor to split further into two "threads" which could further increase throughput of the work that processor performs. For example, on an Intel Extreme Quad-core processor there are 4 cores, but with hyperthreading, there is a possibility of using 8 separate threads.
  • If you know that your computer has hyperthreading, you can actually specify "OPENMP_THREADS 2" and get better performance while still only using one physical processor.
 EXAMPLE 2
   Your machine has 4 Hyperthreading cores, and you want to start a CMS-Flow run that 
   uses 5 threads (leaving 3 threads for other system and user processes).  
   You would enter the card "OPENMP_THREADS <white space> 5" and CMS-Flow would use 5
   threads.

Requesting too many threads

  • If you specify a number that is too large for your particular machine to use, CMS-Flow will use the maximum number of threads available.
 EXAMPLE 3
   Your machine has 2 cores, and you start a CMS-Flow run with the card:  
     "OPENMP_THREADS   3".
   CMS-Flow will realize that your machine has only 2 cores and is not capable of 
   hyperthreading.  The number of processors that will be used is 2.

SMS 10.1+ How-to

The following animation quickly goes through the steps needed to add this capability to a CMS-Flow simulation. Animation

CMS-Flow