Template:Gravity Waves Courant Number: Difference between revisions

From XMS Wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 7: Line 7:
A Courant number calculation requires as an input a velocity as shown in the equation below:
A Courant number calculation requires as an input a velocity as shown in the equation below:


:<math>{\displaystyle CourantNumber=TimeStep*(Gravity*Depth)^{0.5}/NodalSpacing}</math>
:<math>{\displaystyle CourantNumber=TimeStep*Velocity/NodalSpacing}</math>
:*Time Step: a user specified desired timestep size
:*Time Step: a user specified desired timestep size
:*Velocity: speed (celerity) of a gravity wave traveling through the medium
:*NodalSpacing: Average length of the edges connected to each node of the candidate grid/mesh
:*NodalSpacing: Average length of the edges connected to each node of the candidate grid/mesh
:*Velocity: speed (celerity) of a gravity wave traveling through the medium
This tool approximates velocity based on the speed of a gravity wave through the water column.


The speed of wave propagation is dependent on the depth of the water column. For purposes of this tool, the speed is assumed to be:
This tool approximates velocity based on the speed of a gravity wave through the water column. Which is dependent on the depth of the water column. For purposes of this tool, the speed is assumed to be:
:<math>Velocity = (Gravity*Depth)^{0.5}</math>
:<math>Velocity = (Gravity*Depth)^{0.5}</math>


Line 20: Line 18:


Since the equation for velocity requires a positive value for depth, the depth is forced to be at least 0.1 for the calculation. If the input dataset is elevation, the depth used for computation of the time step is:
Since the equation for velocity requires a positive value for depth, the depth is forced to be at least 0.1 for the calculation. If the input dataset is elevation, the depth used for computation of the time step is:
:<math>Depth = Max(-Elevation, 0.01)</math>
:<math>Applied Depth = Max(-Elevation, 0.1)</math>
If the input dataset is depth, the depth used for computation of the time step is:
If the input dataset is depth, the depth used for computation of the time step is:
:<math>Computation_depth = Max(Depth, 0.01)</math>
:<math>Applied Depth = Max(Depth, 0.1)</math>


This is assuming that the water level is approximately 0.0 (Mean Sea Level).
This is assuming that the water level is approximately 0.0 (Mean Sea Level).


If the water level is not relatively flat or not near 0.0, the best practice approach would be to compute a depth and use that dataset directly. Depth can be computed as:
If the water level is not relatively flat or not near 0.0, the best practice approach would be to compute a depth and use that dataset directly. Depth can be computed as:
:<math>Depth = Watersurface elevation - Ground elevation</math>
:<math>Depth = Eta - Ground Elevation</math>
:*Eta: water surface elevation (usually computed by a hydrodynamic model).


In SMS, both of these are measured from a common datum with positive upwards.
In SMS, both of these are measured from a common datum with positive upwards.

Revision as of 19:39, 7 May 2024


Gravity Waves Courant Number

The Courant number is a spatially varied dimensionless value (dataset) representing the time a particle stays in a cell of a mesh/grid. This is based on the size of the element and the speed of that particle. A Courant number of 1.0 implies that a particle(parcel or drop of water) would take one time step to flow through the element. Since cells/elements are not guaranteed to align with the flow field, this number is an approximation. This dataset is computed at nodes so it is uses the average size of the cells/elements attached to the node. The size is computed in meters if the geometry (mesh / UGrid / ...) is in geographic space.

A Courant number calculation requires as an input a velocity as shown in the equation below:

  • Time Step: a user specified desired timestep size
  • Velocity: speed (celerity) of a gravity wave traveling through the medium
  • NodalSpacing: Average length of the edges connected to each node of the candidate grid/mesh

This tool approximates velocity based on the speed of a gravity wave through the water column. Which is dependent on the depth of the water column. For purposes of this tool, the speed is assumed to be:

Note: the variable in the equation above is "Depth", not "Elevation". For this tool the input dataset can be the elevation or a computed depth. If an elevation is used, the sign is inverted because SMS convention is elevation up.

Since the equation for velocity requires a positive value for depth, the depth is forced to be at least 0.1 for the calculation. If the input dataset is elevation, the depth used for computation of the time step is:

If the input dataset is depth, the depth used for computation of the time step is:

This is assuming that the water level is approximately 0.0 (Mean Sea Level).

If the water level is not relatively flat or not near 0.0, the best practice approach would be to compute a depth and use that dataset directly. Depth can be computed as:

  • Eta: water surface elevation (usually computed by a hydrodynamic model).

In SMS, both of these are measured from a common datum with positive upwards.

The tool computes the Courant number at each node in the selected geometry based on the specified time step.

If the input velocity magnitude dataset is transient, the resulting CourantNumber dataset will also be transient.

For numerical solvers that are Courant limited/controlled, any violation of the Courant condition, where the Courant number exceeds the allowable threshold could result in instability. Therefore, the maximum of the Courant number dataset gives an indication of the stability of this mesh for the specified time step parameter.

This tool is intended to assist with numerical engine stability, and possibly the selection of an appropriate time step size.

The Gravity Waves Courant Number tool dialog has the following options:

Input Parameters

  • Input dataset – Specify the elevation dataset (or depth dataset if using depth option).
  • Input dataset is depth – Specify if the input dataset is depth.
  • Gravity – Enter the gravity value.
  • Use time step – Enter the computational time step value.

Output Parameters

  • Gravity waves courant number data set – Enter the name for the new gravity wave Courant number dataset. It is recommended to specify a name that references the input. Typically this would include the time step used in the calculation. The velocity dataset used could be referenced. The geometry is not necessary because the dataset resides on that geometry.

Related Topics