SMS:CGWAVE Graphical Interface: Difference between revisions

From XMS Wiki
Jump to navigationJump to search
 
(8 intermediate revisions by 2 users not shown)
Line 5: Line 5:
<ol>
<ol>
<li> Load bathymetry &ndash; This data can come from LIDAR surveys, digital elevation maps (DEMs), previous grids or a variety of other sources.  They must be referenced to the same datum the wave data will reference, and must have positive values represent depths.  SMS includes functionality to convert datums, reverse directions and smoothor filter data.</li>
<li> Load bathymetry &ndash; This data can come from LIDAR surveys, digital elevation maps (DEMs), previous grids or a variety of other sources.  They must be referenced to the same datum the wave data will reference, and must have positive values represent depths.  SMS includes functionality to convert datums, reverse directions and smoothor filter data.</li>
<li> Limit bathymetry to positive values &ndash;  CGWAVE does not handle wetting/drying or runup processes.  All the nodes in the model must have a positive depth.  This limiting process can be handled later in the mesh generation process, or the bathymetry itself can be modified (in a copied dataset) using the [[Data Calculator|data calculator]].  For example, if wanting to limit the domain to areas of at least one meter of depth, use the following equation in the data calculator ''max(d1, 1.0)'' (where d1 is the label for the depth dataset).</li>
<li> Limit bathymetry to positive values &ndash;  CGWAVE does not handle wetting/drying or runup processes.  All the nodes in the model must have a positive depth.  This limiting process can be handled later in the mesh generation process, or the bathymetry itself can be modified (in a copied dataset) using the [[SMS:Data Calculator|data calculator]].  For example, if wanting to limit the domain to areas of at least one meter of depth, use the following equation in the data calculator ''max(d1, 1.0)'' (where d1 is the label for the depth dataset).</li>
<li> Compute the wave length &ndash;  This is also done in the dataset toolbox, using the [[SMS:Dataset Toolbox#Local_wavelength.2Fcelerity|''Wave Length and Celerity'']] tool.  Enter the smallest wave period of interest (to generate the highest needed resolution).</li>
<li> Compute the wavelength &ndash;  This is also done in the dataset toolbox, using the [[SMS:Dataset Toolbox#Coastal|''Wave Length and Celerity'']] tool.  Enter the smallest wave period of interest (to generate the highest needed resolution).</li>
<li> Create a size function &ndash; Typically this is simply a scaled version of the wave length dataset.  For example, a basic rule would be to have at least six elements per wave length.  Some experts recommend at least 10 elements per wave length.  The real issue is that there needs to be enough resolution to represent the wave shape. </li>
<li> Create a size function &ndash; Typically this is simply a scaled version of the wavelength dataset.  For example, a basic rule would be to have at least six elements per wavelength.  Some experts recommend at least 10 elements per wavelength.  The real issue is that there needs to be enough resolution to represent the wave shape. </li>
<ol>
<ol>
<li> To create a "Size" function with "N" elements per wave length, go to the [[Data Calculator|''data calculator'']] and enter the equation ''d3/N'' (where d3 is the label for the wave length dataset). </li>
<li> To create a "Size" function with "N" elements per wavelength, go to the [[SMS:Data Calculator|''data calculator'']] and enter the equation ''d3/N'' (where d3 is the label for the wavelength dataset). </li>
<li> An alternative that may be needed with large domains is to create a spatially varied scale for the wave length function.  For example to have 15 elements per wave length in the shallow region or the model (i.e. depths less than 3 meters), but only have 7 elements per wave length in the deep regions (i.e. depths greater than 200 meters).  To create this size function, still use the [[Data Calculator|data calculator]] and enter the equation ''d3/max(min(15+(d1-3)/(200-3)*(7-15),7))'' (where d1 is the label for the depth function and d3 is the label for the wave length dataset). </li>
<li> An alternative that may be needed with large domains is to create a spatially varied scale for the wavelength function.  For example to have 15 elements per wavelength in the shallow region or the model (i.e. depths less than 3 meters), but only have 7 elements per wavelength in the deep regions (i.e. depths greater than 200 meters).  To create this size function, still use the [[SMS:Data Calculator|data calculator]] and enter the equation ''d3/max(min(15+(d1-3)/(200-3)*(7-15),7))'' (where d1 is the label for the depth function and d3 is the label for the wavelength dataset). </li>
</ol>
</ol>
<li> Define the coastline or land edge of the domain &ndash;  This can be done using a contour of the bathymetry or reading a coastline vector file.  It should be stored in SMS as a coastline arc in a CGWAVE coverage in the [[SMS:Map_Module|map module]]. </li>
<li> Define the coastline or land edge of the domain &ndash;  This can be done using a contour of the bathymetry or reading a coastline vector file.  It should be stored in SMS as a coastline arc in a CGWAVE coverage in the [[SMS:Map_Module|Map module]]. </li>
<li> Define the ocean boundary &ndash;  This is also an arc in the CGWAVE coverage.  It must be either a semi circle or circle and can be defined in SMS by selecting the coastline (or extreme locations on the coastline) and issuing the ''Feature Objects | Define domain...'' command in the [[SMS:Map_Module|map module]]. </li>
<li> Define the ocean boundary &ndash;  This is also an arc in the CGWAVE coverage.  It must be either a semi circle or circle and can be defined in SMS by selecting the coastline (or extreme locations on the coastline) and issuing the ''Feature Objects | Define domain...'' command in the [[SMS:Map_Module|map module]]. </li>
<li> Build polygons in the  [[SMS:Map_Module|map module]] and assign polygon attributes for the polygon to use the depth and size functions for bathymetry and size respectively in the [[SMS:Mesh_Generation|mesh generation]] process. Then generate the mesh. </li>
<li> Build polygons in the  [[SMS:Map_Module|map module]] and assign polygon attributes for the polygon to use the depth and size functions for bathymetry and size respectively in the [[SMS:Mesh_Generation|mesh generation]] process. </li>
<li>Remove excess arcs and points. All arcs will be converted to a nodestring and considered a boundary condition during the mesh generation process. Remove any arcs outside of the domain to prevent disjointed nodes and nodestring numbering problems. </li>
<li>Generate the mesh. </li>
<li> With this mesh constructed, the rest of the graphical interface, defined below can be used to control the numerical simulation. </li>
<li> With this mesh constructed, the rest of the graphical interface, defined below can be used to control the numerical simulation. </li>
</ol>
</ol>
Line 21: Line 23:
CGWAVE makes use of the [[SMS:SMS Menus|standard menus]] along with the ''CGWAVE'' menu. The following menu commands are available in the [[SMS:CGWAVE|''CGWAVE'']] Menu:  
CGWAVE makes use of the [[SMS:SMS Menus|standard menus]] along with the ''CGWAVE'' menu. The following menu commands are available in the [[SMS:CGWAVE|''CGWAVE'']] Menu:  


[[SMS:Spectral Energy|'''Spectral Energy''']]  
<!--; [[SMS:Spectral Energy|'''Spectral Energy''']] : Brings up the ''Spectral Energy'' dialog to define/view wave energy spectra. This command also allows visualizing wave spectra. -->
<blockquote style="margin-top:0px; margin-bottom:0px;">
; [[SMS:CGWAVE Boundary Conditions Dialog|'''Assign BC''']] : Assigns boundary conditions along a selected [[SMS:CGWAVE Boundary Conditions Dialog|nodestring(s)]].  
Brings up the ''Spectral Energy'' dialog to define/view wave energy spectra. This command also allows visualizing wave spectra.  
; '''Material Properties''' : Opens the ''CGWAVE Material Properties'' dialog.  
</blockquote>
; '''Reset 1D Spacing''' : Brings up the [[SMS:Wave_Gages#Modify_1D_Wave_Line|''Modify 1D Wave Line'']] dialog.
[[SMS:CGWAVE Boundary Conditions Dialog|'''Assign BC''']]  
; [[SMS:Model Checker|'''Model Check''']] : Check for common problems. The ''model checker''  performs the generic mesh checking along with  optionally checking to  insure:
<blockquote style="margin-top:0px; margin-bottom:0px;">
* All boundaries mesh boundaries are assigned as land with a reflection  coefficient or as open ocean.
Assigns boundary conditions along a selected [[SMS:CGWAVE Boundary Conditions Dialog|nodestring(s)]].  
* All water depths are positive.
</blockquote>
; [[SMS:CGWAVE Model Control|'''Model Control''']] : Brings up the ''Model Control'' dialog to specificy model parameters.  
'''Material Properties'''  
; '''Run CGWAVE''' : Brings up a dialog that checks what executable of CGWAVE should be run and then runs the model with the currently loaded simulation. As the model runs, a dialog monitors progress of the model and gives status messages. When the run is complete, the spatial solutions are read in for analysis and visualization.  
<blockquote style="margin-top:0px; margin-bottom:0px;">
[[Category:SMS Menus|C]]
Opens the ''CGWAVE Material Properties'' dialog.  
</blockquote>
[[SMS:Model Checker|'''Model Check''']]  
<blockquote style="margin-top:0px; margin-bottom:0px;">
Check for common problems. The ''model checker''  performs the generic mesh checking along with  optionally checking to  insure:
* that all boundaries mesh boundaries are assigned as land with a reflection  coefficient or as open ocean.
* that all water depths are positive.
</blockquote>
[[SMS:CGWAVE Model Control|'''Model Control''']]  
<blockquote style="margin-top:0px; margin-bottom:0px;">
Brings up the ''Model Control'' dialog to specificy model parameters.  
</blockquote>
'''Reset 1D Spacing'''
<blockquote style="margin-top:0px; margin-bottom:0px;">
Brings up the [[SMS:Wave_Gages#Modify_1D_Wave_Line|''Modify 1D Wave Line'']] dialog.
</blockquote>
'''Run CGWAVE'''  
<blockquote style="margin-top:0px; margin-bottom:0px;">
Brings up a dialog that checks what executable of CGWAVE should be run and then runs the model with the currently loaded simulation. As the model runs, a dialog monitors progress of the model and gives status messages. When the run is complete, the spatial solutions are read in for analysis and visualization.  
</blockquote>[[Category:SMS Menus|C]]


=== Model Control ===
=== Model Control ===
Line 59: Line 41:


=== Material Properties ===
=== Material Properties ===
[[File:CGWAVE Materials.jpg|thumb|450 px|Example of the ''CGWAVE Materials Properties'' dialog.]]
[[File:CGWAVE Materials.png|thumb|450 px|Example of the ''CGWAVE Materials Properties'' dialog.]]
Each element is assigned a material type.  Material properties describe the hydraulic characteristics of each material type.
Each element is assigned a material type.  Material properties describe the hydraulic characteristics of each material type.
* ''Bottom friction'' &ndash; The bottom friction can be specified for the element(s) and material selected in this field.
* ''Bottom friction'' &ndash; The bottom friction can be specified for the element(s) and material selected in this field.
Line 65: Line 47:


=== Running the Model ===
=== Running the Model ===
The [[SMS:CGWAVE Files|CGWAVE Files]] are written automatically with the SMS project file or can be saved separately using the ''File'' | '''Save CGWAVE''' or ''File'' | '''Save As''' menu commands.  
The [[SMS:CGWAVE Files|CGWAVE files]] are written automatically with the SMS project file or can be saved separately using the ''File'' | '''Save CGWAVE''' or ''File'' | '''Save As''' menu commands.  


CGWAVE can be launched from SMS using the ''CGWAVE'' | '''Run CGWAVE''' menu command. A check of some of the common problems called the ''Model Checker'' is done each time the model is launched, or by selecting the ''CGWAVE'' | '''Model Check''' menu command.
CGWAVE can be launched from SMS using the ''CGWAVE'' | '''Run CGWAVE''' menu command. A check of some of the common problems called the ''Model Checker'' is done each time the model is launched, or by selecting the ''CGWAVE'' | '''Model Check''' menu command.
Line 72: Line 54:
CGWave creates a single output file (normally including *.cgo extension when run with SMS).  This file can be brought into SMS to graphically view the results.  As SMS reads the file, it translates (using an embeded version of the CGWAVE "trans" code) the complex numbers representing wave heights and phases for each wave component into spatial and temporal datasets including:
CGWave creates a single output file (normally including *.cgo extension when run with SMS).  This file can be brought into SMS to graphically view the results.  As SMS reads the file, it translates (using an embeded version of the CGWAVE "trans" code) the complex numbers representing wave heights and phases for each wave component into spatial and temporal datasets including:
* Steady State
* Steady State
<blockquote style="margin-top:0px; margin-bottom:0px;">
** Wave Height
* Wave Height
** Wave Phase
* Wave Phase
** Direction of Maximum Particle Velocity
* Direction of Maximum Particle Velocity
</blockquote>
* Time Varying (through a single wave period.  SMS breaks the period into 20 time steps)
* Time Varying (through a single wave period.  SMS breaks the period into 20 time steps)
<blockquote style="margin-top:0px; margin-bottom:0px;">
** Pressures (at surface, mid depth and bed)
* Pressures (at surface, mid depth and bed)
** Particle Velocities (at surface, mid depth and bed)
* Particle Velocities (at surface, mid depth and bed)
** Sea Surface Elevation
* Sea Surface Elevation
** Wave Velocity.
* Wave Velocity.
</blockquote>


When the solution is read in, SMS allows limits to the wave heights in the solution.  This only applies to linear runs of CGWAVE to allow the heights to be adjusted to be more realistic. This is accomplished by applying a factor, whose value ranges from 0 to 1 (defined as H/d). (Because wave height cannot exceed the value of depth or factor=1). SMS recommends a range of 0.4 to 0.8 and defaults to 0.64.  If desired, enter another factor dependent on knowledge of wave mechanics, type of problem, etc.
When the solution is read in, SMS allows limits to the wave heights in the solution.  This only applies to linear runs of CGWAVE to allow the heights to be adjusted to be more realistic. This is accomplished by applying a factor, whose value ranges from 0 to 1 (defined as H/d). (Because wave height cannot exceed the value of depth or factor=1). SMS recommends a range of 0.4 to 0.8 and defaults to 0.64.  If desired, enter another factor dependent on knowledge of wave mechanics, type of problem, etc.

Latest revision as of 15:03, 23 March 2022

The CGWAVE Graphical Interface includes tools to assist with creating, editing, and debugging a CGWAVE model. The CGWAVE interface exists in the 2D Mesh Module.

Model Construction Steps

There is a very consistent method that can be used to apply the CGWAVE model. The steps to this process include:

  1. Load bathymetry – This data can come from LIDAR surveys, digital elevation maps (DEMs), previous grids or a variety of other sources. They must be referenced to the same datum the wave data will reference, and must have positive values represent depths. SMS includes functionality to convert datums, reverse directions and smoothor filter data.
  2. Limit bathymetry to positive values – CGWAVE does not handle wetting/drying or runup processes. All the nodes in the model must have a positive depth. This limiting process can be handled later in the mesh generation process, or the bathymetry itself can be modified (in a copied dataset) using the data calculator. For example, if wanting to limit the domain to areas of at least one meter of depth, use the following equation in the data calculator max(d1, 1.0) (where d1 is the label for the depth dataset).
  3. Compute the wavelength – This is also done in the dataset toolbox, using the Wave Length and Celerity tool. Enter the smallest wave period of interest (to generate the highest needed resolution).
  4. Create a size function – Typically this is simply a scaled version of the wavelength dataset. For example, a basic rule would be to have at least six elements per wavelength. Some experts recommend at least 10 elements per wavelength. The real issue is that there needs to be enough resolution to represent the wave shape.
    1. To create a "Size" function with "N" elements per wavelength, go to the data calculator and enter the equation d3/N (where d3 is the label for the wavelength dataset).
    2. An alternative that may be needed with large domains is to create a spatially varied scale for the wavelength function. For example to have 15 elements per wavelength in the shallow region or the model (i.e. depths less than 3 meters), but only have 7 elements per wavelength in the deep regions (i.e. depths greater than 200 meters). To create this size function, still use the data calculator and enter the equation d3/max(min(15+(d1-3)/(200-3)*(7-15),7)) (where d1 is the label for the depth function and d3 is the label for the wavelength dataset).
  5. Define the coastline or land edge of the domain – This can be done using a contour of the bathymetry or reading a coastline vector file. It should be stored in SMS as a coastline arc in a CGWAVE coverage in the Map module.
  6. Define the ocean boundary – This is also an arc in the CGWAVE coverage. It must be either a semi circle or circle and can be defined in SMS by selecting the coastline (or extreme locations on the coastline) and issuing the Feature Objects | Define domain... command in the map module.
  7. Build polygons in the map module and assign polygon attributes for the polygon to use the depth and size functions for bathymetry and size respectively in the mesh generation process.
  8. Remove excess arcs and points. All arcs will be converted to a nodestring and considered a boundary condition during the mesh generation process. Remove any arcs outside of the domain to prevent disjointed nodes and nodestring numbering problems.
  9. Generate the mesh.
  10. With this mesh constructed, the rest of the graphical interface, defined below can be used to control the numerical simulation.

CGWAVE Menu

CGWAVE makes use of the standard menus along with the CGWAVE menu. The following menu commands are available in the CGWAVE Menu:

Assign BC
Assigns boundary conditions along a selected nodestring(s).
Material Properties
Opens the CGWAVE Material Properties dialog.
Reset 1D Spacing
Brings up the Modify 1D Wave Line dialog.
Model Check
Check for common problems. The model checker performs the generic mesh checking along with optionally checking to insure:
  • All boundaries mesh boundaries are assigned as land with a reflection coefficient or as open ocean.
  • All water depths are positive.
Model Control
Brings up the Model Control dialog to specificy model parameters.
Run CGWAVE
Brings up a dialog that checks what executable of CGWAVE should be run and then runs the model with the currently loaded simulation. As the model runs, a dialog monitors progress of the model and gives status messages. When the run is complete, the spatial solutions are read in for analysis and visualization.

Model Control

The CGWAVE Model Control dialog is used to setup the options that apply to the simulation as a whole. These options include time controls (steady state/dynamic), run types, output options, global parameters, print options and other global settings.

Boundary Conditions

All numeric models require boundary condition data. In CGWAVE boundary conditions are defined on nodestrings. The default boundary condition is a closed boundary (no flow). See CGWAVE Boundary Conditions Dialog for more information.

Material Properties

Example of the CGWAVE Materials Properties dialog.

Each element is assigned a material type. Material properties describe the hydraulic characteristics of each material type.

  • Bottom friction – The bottom friction can be specified for the element(s) and material selected in this field.
  • Floating dock – Represent an object anchored in place, but floating in or on the water and thereby obstructing wave fields. Elements will be treated as floating barriers when the simulation is saved.

Running the Model

The CGWAVE files are written automatically with the SMS project file or can be saved separately using the File | Save CGWAVE or File | Save As menu commands.

CGWAVE can be launched from SMS using the CGWAVE | Run CGWAVE menu command. A check of some of the common problems called the Model Checker is done each time the model is launched, or by selecting the CGWAVE | Model Check menu command.

Processing Solutions

CGWave creates a single output file (normally including *.cgo extension when run with SMS). This file can be brought into SMS to graphically view the results. As SMS reads the file, it translates (using an embeded version of the CGWAVE "trans" code) the complex numbers representing wave heights and phases for each wave component into spatial and temporal datasets including:

  • Steady State
    • Wave Height
    • Wave Phase
    • Direction of Maximum Particle Velocity
  • Time Varying (through a single wave period. SMS breaks the period into 20 time steps)
    • Pressures (at surface, mid depth and bed)
    • Particle Velocities (at surface, mid depth and bed)
    • Sea Surface Elevation
    • Wave Velocity.

When the solution is read in, SMS allows limits to the wave heights in the solution. This only applies to linear runs of CGWAVE to allow the heights to be adjusted to be more realistic. This is accomplished by applying a factor, whose value ranges from 0 to 1 (defined as H/d). (Because wave height cannot exceed the value of depth or factor=1). SMS recommends a range of 0.4 to 0.8 and defaults to 0.64. If desired, enter another factor dependent on knowledge of wave mechanics, type of problem, etc.

Related Topics