IGW

From Fluids Wiki
Jump to navigation Jump to search

IGW is Kevin's model.

The Internal Gravity Wave (IGW) model is a non-parallelized code written in C. It solves the two-dimensional incompressible Euler or Navier-Stokes equations using a second-order finite volume projection method (Bell, Collela and Glaz 1989, Bell and Marcus 1991, Lamb 1994, 2007). The code uses terrain following coordinates. Effects of the Earth’s rotation can be included in which case the velocity in the third (y) direction is included however the flow is independent of y.

The code was developed to investigate stratified flow phenomena in the ocean, particularly the interaction with bathymetry. The code can initialize simulations with internal solitary wave solutions of the DJL equation (e.g., to study shoaling solitary waves) and simulate internal wave generation by tidal flow over bathymetry (ridges or shelfs). Variable resolutions in both the horizontal and vertical may be used.

The model uses an adaptive time step based on a CFL condition. A direct solver is used for the projection operation. The code generally makes use of the Boussinesq approximation, though there is a non-Boussinesq option. If the Boussinesq approximation is made the projection operator is independent of time. Hence an LU decomposition of the projection matrix is computed and stored once at the beginning of the run. Several options for the solver are available depending on what scientific libraries are available. If the Boussinesq approximation is not made then the projection operator depends on the time-evolving density field. The projection matrix now has to be computed every time step, greatly increasing the expense, so a different solver may be more appropriate.

MATLAB routines

  • igwread.m, a routine for loading IGW's binary outputs.
  • igwparams.m, a routine for loading the parameters that IGW writes to startup_graphics.