CMS-Flow Multiple-sized Sediment Transport: Difference between revisions

From CIRPwiki
Jump to navigation Jump to search
Line 46: Line 46:


== Matlab Example ==
== Matlab Example ==
In order to determine the appropriate grain sizes for a simulation it is useful to be able to determine ahead of time the size class fractions using a log-normal distribution for different median grain sizes and sorting. The Matlab example below determines the grain size distribution given the smallest and largest grain sizes, number of sediment sizes, median grain size and geometric standard deviation.
<font size=2>
<font size=2>
  clear all; close all
  clear all; close all

Revision as of 20:59, 24 January 2011

Figure 1. CMS-Flow Model Control : Model Parameters tab in SMS 11.0.

All of the CMS-Flow model parameters, settings, and output options are controlled from the CMS-Flow Model Control window (Figure 1). The window has several tabs including the Flow tab in which most of the general settings are set for CMS-Flow. To open the CMS-Flow Model Control window, click on CMS-Flow | Model Control. The first tab will be the Flow tab. There are several sections within the tab including Time Control and Hot Start options.

The input information for multiple-sized sediment transport can be divided into the following groups:

  1. Grain size classes
  2. Fractional bed composition
  3. Bed layer thickness
  4. Mixing layer
  5. Hiding and Exposure

Further details on each type of information is provided in the sections below.

Grain Size Specification

In the multiple-sized sediment transport model, the continuous grain sizes are divided into discrete bins or size classes. Each size class has a character diameter, and lower and upper limits. Because sediment sizes classes are transport from one cell to another the size classes must be constant over the whole domain. In CMS there are two options for specifying the grain size information:

  1. Characteristic diameters
  2. Size class limits

The characteristic diameters are calculated using the geometric mean of the lower and upper bin limits

  (1)

The bin width is given by

  (2)

The table below describes the CMS-Flow cards related to the grain size class information.

Table 1. CMS-Flow cards related to the grain size classes

Card Arguments Example Description
SEDIMENT_SIZE_CLASS_NUMBER INTEGER 3 Specifies the number of grain size classes.
MULTIPLE_GRAIN_SIZES INTEGER [REAL, REAL,..., REAL] 3 0.1 0.2 0.3 Specifies the number of grain sizes followed by the grain sizes for each size class in mm.
SEDIMENT_SIZE_CLASS_DIAMETERS INTEGER [REAL, REAL,..., REAL] 3 0.1 0.2 0.3 Specifies the number of grain sizes followed by the grain sizes for each size class in mm. Same as MULTIPLE_GRAIN_SIZES.
SEDIMENT_SIZE_CLASS_LIMITS INTEGER [REAL, REAL,..., REAL] 4 0.07 0.15 0.26 0.34 Specifies the size classes limits. The first entry is the number of size class limits which is one greater than the number of size classes.

Notes:

  • It is only necessary to specify either the size class characteristic diameters or limits. The other will be calculated internally by the model.

Recommendations:

  • Because each grain size requires the iterative solution of a separate transport formula, it is recommended to not use more 8-9 sediment size classes. For most cases, 3-5 sediment size classes is sufficient.
  • A good and simple way of estimating the grain size classed based only on the size limits of the distribution is by distributing the diameters logarithmically so that
  (3)

Matlab Example

In order to determine the appropriate grain sizes for a simulation it is useful to be able to determine ahead of time the size class fractions using a log-normal distribution for different median grain sizes and sorting. The Matlab example below determines the grain size distribution given the smallest and largest grain sizes, number of sediment sizes, median grain size and geometric standard deviation.

clear all; close all
%--- Start Input --- 
d1 = 0.234;  %mm, smallest grain size 
d2 = 2;      %mm, largest grain size 
nsed = 5;    %number of grain sizes 
d50 = 0.4;   %mm, median grain size 
sg = 1.5;   %mm, geometric standard deviation
%--- End Input --- 
%Characteristic diameters 
d = exp(log(d1) + ((1:nsed)-1.0).*(log(d2)-log(d1))/(nsed-1));
%Limits or bounds
dlim = zeros(1,nsed+1);
dlim(2:nsed)=sqrt(d(2:nsed).*d(1:nsed-1));
dlim(1)=d(1)*d(1)/dlim(2);
dlim(nsed+1)=d(nsed)*d(nsed)/dlim(nsed);
%Fractions 
p = diff(dlim).*lognpdf(d,log(d50),log(sg));
%Plotting 
figure
hold on
for k=1:nsed    
  fill([dlim(k) dlim(k+1) dlim(k+1) dlim(k)],...        
    [0 0 p(k) p(k)]*100,0.5*[1,1,1])
end
ylabel('Fraction, %')
xlabel('Grain size, mm')   
set(gca,'box','On','TickDir','out',...
  'XMinorTick','OFF','YMinorTick','OFF')
[d',p']
return

Fractional Bed Composition

Since the sediment size classes are constant for the whole domain, the bed composition is specified as the fractional amount of each size class per cell and per bed layer. In CMS V4.0 there are 5 options for specifying the fractional bed composition:

  1. Two-dimensional horizontal (2DH) D50 dataset plus spatially constant geometric standard deviation (option D50_SIGMA).
  2. 2DH D16, D50, and D84 datasets (option D16_D50_D84)
  3. 2DH D35, D50, and D90 datasets (option D35_D50_D90)
  4. Spatially (horizontally and vertically) constant size class fractions (option SIZE_CLASS_FRACTIONS)
  5. Fraction of each sediment size class for each cell and bed layer (option FRACTIONS_DATASET)

A description of the CMS-flow card used to select each bed material composition option is described in the Table below.

Table 2. CMS-Flow card used to specify the option for specifying the bed material composition

Card Arguments Default Range Description
BED_COMPOSITION_INPUT CHARACTER none D50_SIGMA | D16_D50_D84 | D35_D50_D90 | SIZE_CLASS_FRACTIONS | FRACTIONS_DATASET Selects the method for specifying the bed material composition.

Further details on each option is provided in the sections below.

D50 Dataset and Standard Deviation

Figure 2. Sediment tab of the CMS-Flow Model Control window (SMS 11.0)

This is the simplest and easiest way to specify the bed composition for multiple-sized sediment transport in CMS because it only requires the D50 dataset which is already in the SMS interface and one extra parameter, the geometric standard deviation.

  • Assumptions:
  1. The initial sediment sorting is constant for the whole domain
  2. The initial bed composition may vary spatially according to the D50 dataset but is constant with depth
  3. The initial grain size distribution can be approximated by a log-normal distribution


The geometric standard deviation can be defined using the method of moments

  (4)

where is the fraction, is the size class diameters in mm, is the geometric mean in mm given by

  (5)

An alternate approach to Equation 4 for obtaining geometric standard deviation is by using the graphical measures (cumulative percentile values) (Folk and Ward, 1957)

  (6)

The size class fractions are calculated using log-normal sediment size distribution

  (7)


Table 3. Sorting classification based on the geometric standard deviation (Folk and Ward, 1957)

Geometric Standard Deviation Sorting Classification
<1.27 Very well sorted
1.27-1.41 Well sorted
1.41-1.62 Moderately well sorted
1.62-2.00 Moderately sorted
2.00-4.00 Poorly sorted
4.00-16.00 Very poorly sorted
>16.00 Extremely poorly sorted

A description of the CMS-Flow cards related to the D50_SIGMA option for specifying the bed material composition is provided in the table below.

Table 4. CMS-Flow cards related to the D50 dataset and standard deviation

Card Arguments Default/Format Description
D50_DATASET CHARACTER CHARACTER | CHARACTER [file name] [dataset path and name] Specifies the D50 dataset file followed by the path and name. If the file name is not specified than it is assumed to be the grid file (*_grid.h5).
SEDIMENT_STANDARD_DEVIATION REAL 1.5 Specifies the geometric sediment standard deviation for all cells and layers in mm.


D16, D50, and D84 Datasets

The second approach for specifying the initial bed composition is using 2DH D16, D50, and D84 datasets. Because only the D50 dataset can be specified through the SMS interface, it is necessary to specify the additional datasets either through the Custom Input Datasets are by manually creating the datasets using the Data Calculator and exporting them to XMDF file(s).

  • Assumptions:
  1. The initial bed composition may vary spatially according to the D16, D50, and D84 datasets but is constant with depth
  2. The initial grain size distribution can be approximated by a log-normal distribution

The bed sorting is estimated as

  (8)

The fractional bed composition is calculated using a log-normal distribution according to Equation 7. The table below describes the CMS-Flow cards used for specifying the bed material composition using the D16, D50, and D84 datasets.

Table 4. CMS-Flow cards related to the D16_D50_D84

Card Arguments Default/Format Description
D16_DATASET CHARACTER CHARACTER [file name] [dataset path and name] Specifies the D16 dataset path and file name.
D50_DATASET CHARACTER CHARACTER | CHARACTER [dataset path and name] | [file name] [dataset path and name ] Specifies the D50 dataset path and file name. If the file is not specified than it is assumed to be the model grid file (*_grid.h5).
D84_DATASET CHARACTER CHARACTER [file name] [dataset path and name] Specifies the D84dataset path and file name.
CUSTOM_DATASET CHARACTER CHARACTER [file name] [dataset path and name] Specifies a custom dataset path and file name. The custom dataset can be used for any additional user defined dataset. The name of the dataset must be equal to the variable name. For example the D16 dataset must be named D16 and cannot be myD16.

Custom Datasets

Figure 3. SMS project explorer showing Custom Datasets for D16 and D84.

The first approach of specifying the D16 and D84 datasets is by using the Custom Input Datasets section under the Input tab of the CMS-Flow Model Control window. The advantage of using this approach is that the user can edit the datasets once they are created without having to map each dataset as the Elevation dataset. It also avoids having to specify the dataset files and names manually in the *.cmcards file. The steps for creating and specifying the D16 and D84 datasets are outlined below:

  1. Open CMS-Flow Model Control window and go to the Input tab.
  2. To create the D16 dataset, click on the New buttom and a window will appear titled New Editable Dataset.
  3. Name the dataset D16 for the D16 dataset or D84 for the D84 dataset. The names must be correct for CMS to be able to interpret the dataset.
  4. Set the initial values by either specifying a spatially constant value or selecting a current dataset.
  5. Click OK in the New Editable Dataset window
  6. Repeat steps 2 through 5 for the D84 dataset.
  7. Click OK in the CMS-Flow Model Control window
  8. Save the CMS-Flow project


Once the datasets are created the SMS project explorer will show a folder with the D16 and D84 datasets.

Figure 4. SMS project explorer showing Custom Datasets for D16 and D84.


After saving the CMS-Flow project the project folder will show a new dataset called Flow_Shark_input_datasets.h5.

Figure 5. SMS project explorer showing Custom Datasets for D16 and D84.


The data structure of the Flow_Shark_input_datasets.h5 file is shown in the Figure below.

Figure 6. Structure of the Custom Input Datasets file shown in XMDFView.


Exported Datasets

Figure 7. SMS project explorer showing Custom Datasets for D16 and D84.

An alternate approach for specifying datasets is by exporting them into XMDF files and then specifying the file names and paths in the Advanced cards section of the *.cmcmards file. The advantage of this approach is that is allows more flexibility in specifying project alternatives and also works for SMS versions 10.1 and earlier. To export the D16 and D84 datasets

1. Create and initialize the D16 and D84 datasets
1.1 Click on the menu Data | Data Calculator
1.2 Enter a constant value under the Calculator section and make sure the Output dataset name is either D16 or D84.


2. If necessary, edit the D16 and D84 datasets.
As shown in the figure below, it is not possible to edit the D16 and D84 datasets once they are created. A workaround for this is to set either dataset as the Elevation dataset, which then allows you to edit the dataset.
Figure 8. It is not possible to edit user defined datasets unless they are the Depth, D50, ManningN, Hardbottom, or a Custom Dataset.


To set the D16 dataset as the Elevation dataset:
2.1 Click on Data | Map elevation.
Figure 9. Mapping of D16 dataset as the Elevation dataset.


2.2 A window titled Select Dataset will apear. Select the D16 dataset and click Select.
Figure 10. Elevation dataset selection.


The D16 dataset will show with a large Z on the left indicating that it is mapped as the Elevation dataset.
Figure 11. SMS window showing D16 dataset mapped as the Elevation dataset.


2.3 Once you are finished editing the dataset, make sure to remap the appropriate dataset as the Elevation dataset (usually called Depth dataset).
3. Export the D16 and D84 datasets to XMDF file(s). The datasets can be exported to the same or separate file. The important thing is that the correct file name is specified in the Advanced Cards.
Figure 12. Exporting the D16 and D84 datasets.


D35, D50, and D90 Datasets

This method is very similar to the previous method. The only difference is that the D35 and D90 datasets are used to estimate the bed sorting instead of the more commonly used D16 and D84 datasets. The reason for including this method is that the D35 and D90 datasets are also required for running the Paticle Tracking Model so it reduces the number of datasets that need to be prepared by the user in cases where both models are being run.

  • Assumptions:
  1. The initial bed composition may vary spatially according to the D35, D50, and D90 datasets but is constant with depth
  2. The initial grain size distribution can be approximated by a log-normal distribution

The geometric standard deviation is estimated as

  (9)

The fractional bed composition is then calculated with log-normal distribution according to Equation 7.

The table below describes the CMS-Flow cards used for specifying the bed material composition using D35, D50, and D90 datasets.

Table 5. CMS-Flow cards related to the D35_D50_D90 option for specifying the bed material composition

Card Arguments Default/Format Description
D35_DATASET CHARACTER CHARACTER [file name] [dataset path and name] Specifies the D35 dataset path and file name.
D50_DATASET CHARACTER CHARACTER | CHARACTER [dataset path and name] | [file name] [dataset path and name ] Specifies the D50 dataset path and file name. If the file is not specified than it is assumed to be the model grid file (*_grid.h5).
D90_DATASET CHARACTER CHARACTER [file name] [dataset path and name] Specifies the D84dataset path and file name.
CUSTOM_DATASET CHARACTER CHARACTER [file name] [dataset path and name] Specifies a custom dataset path and file name. The custom dataset can be used for any additional user defined dataset. The name of the dataset must be equal to the variable name. For example the D35 dataset must be named D35 and cannot be myD35.

Size Class Fractions

For this case, the fractional bed compositions are specified for each size class for all cells and all bed layers. The fractional bed compositions must sum to 1.0. This option is useful for simulating cases where the bed composition is well known and is constant both in the horizontal and vertical directions.

  • Assumption:
  1. The initial bed composition is constant at every cell and layer for whole domain

Table 6. CMS-Flow cards related to the SIZE_CLASS_FRACTIONS option for specifying the bed material composition

Card Arguments Example Description
SEDIMENT_SIZE_CLASS_FRACTIONS INTEGER [REAL, REAL,..., REAL] 3 0.2 0.5 0.3 Specifies the fractional composition for each size class and for all cells and bed layers. The first entry is the number of grain size classes.

Fractional Composition Dataset

Figure 3. XMDFView showing the structure and format of the Fractions dataset

The is the most data intensive method for specifying the bed material composition. In the method, the fractional bed composition is specified for each grain size class at every cell and bed layer on the grid. Therefore, the grid is a 200x300 cells with 10 initial bed layers and 5 grain size classes, the input data will be 200x300x10x5 = 3.0e6!

It up to the user to make sure that the fraction dataset sums one for each cell. This method is intended for cases such as laboratory experiments where the horizontal and vertical distribution of the sediments is well known or least needs to be specified precisely. The table below describes the CMS-Flow cards related to the fractional composition dataset method.


Table 7. CMS-Flow cards related to the FRACTIONS_DATASET option for specifying the bed material composition

Card Arguments Format Description
BED_FRACTIONAL_COMPOSITION_DATASET CHARACTER CHARACTER [<grid file>] [<grid name>//"Datasets/<Name>"] Fractional bed composition file. Necessary when setting BED_COMPOSITION_INPUT to FRACTIONS_DATASET.


Bed Layer Thickness

Table 1. CMS-Flow cards related to the general parameters

Card Arguments Default/Format Range Description
BED_LAYER_THICKNESS_INPUT CHARACTER NONE NONE | CONSTANT | LAYER_THICKNESS | LAYER_DATASET
BED_LAYER_THICKNESS_DATASET CHARACTER CHARACTER none [file] [path] Specifies the bed layer thickness file and dataset path.
BED_LAYERS_MAX_NUMBER INTEGER
BED_LAYERS_CONSTANT_THICKNESS INTEGER [REAL, REAL,..., REAL]
BED_LAYERS_THICKNESS INTEGER [REAL, REAL,..., REAL]
BED_LAYERS_CONSTANT_THICKNESS INTEGER [REAL, REAL,..., REAL]
BED_LAYERS_CONSTANT_THICKNESS INTEGER [REAL, REAL,..., REAL]

Mixing Layer

Card Arguments Default/Format Range Description
MIXING_LAYER_CONSTANT_THICKNESS INTEGER [REAL, REAL,..., REAL]
MIXING_LAYER_MIN_THICKNESS INTEGER [REAL, REAL,..., REAL]

Hiding and Exposure Parameters

The general parameters are the water density and temperature. The CMS-Flow cards for the general parameters are described in the table below.

Card Arguments Default/Format Range Description
HIDING_EXPOSURE_COEFFICIENT REAL 1025 - Water density in kg/m^3.
HIDING_EXPOSURE_COEFF REAL 15 - Water temperature in degrees Celcius.


Boundary and Initial Conditions

Card Arguments Default/Format Range Description
SEDIMENT_INFLOW_LOADING_FACTOR REAL 1025 - Water density in kg/m^3.
SEDIMENT_FLUX_CELLSTRING REAL 1025 - Water density in kg/m^3.


Output Files and Datasets

Card Arguments Default/Format Range Description
BED_OUT_TIMES_LIST INTEGER 1025 - Water density in kg/m^3.
SEDMIX_OUT_TIMES_LIST INTEGER 1025 - Water density in kg/m^3.


Examples

  • Example 1

SEDIMENT_MAX_ITERATIONS              30    
SEDIMENT_STATISTICS                 120.0  720.0    
BED_COMPOSITION_INPUT               D50_SIGMA       
MULTIPLE_GRAIN_SIZES                6 0.1 0.126 0.16 0.2 0.25 0.31
SEDIMENT_STANDARD_DEVIATION         1.3       
BED_LAYER_CONSTANT_THICKNESS        0.5       
MIXING_LAYER_CONSTANT_THICKNESS     0.1      
MIXING_LAYER_MIN_THICKNESS          0.05      
HIDING_EXPOSURE_COEFFICIENT         1.0       
SEDMIX_OUT_TIMES_LIST               2    
BED_OUT_TIMES_LIST                   2    
CALC_MORPH_DURING_RAMP              OFF   

  • Example 2

SEDIMENT_MAX_ITER                   30 
BED_COMPOSITION_INPUT               D50_SIGMA  
SEDIMENT_STANDARD_DEVATION          1.5
MULTIPLE_GRAIN_SIZES                5 0.08 0.12 0.17 0.28 0.45
BED_LAYER_CONSTANT_THICKNESS        0.5
MIXING_LAYER_CONSTANT_THICKNESS     0.02

References

  • Folk, R.L., and Ward, W.C. (1957). "Brazos River bar: a study in the significance of grain size parameters", Journal of Sedimentary Petrology, 27, 3–26.

Related Links


Documentation Portal