Application of the Shallow Water Equations to Oceanography & Planetary Atmospheres. Numerical integration of the equations is performed via the Lax-Wendroff Finite Difference Method.
MATLAB
. Version 2020b was used but it shouldn't matter which one you useOS
.Ubuntu 20.04
was used howeverWindows 10
will be fine. All thats needed is that you haveMATLAB
. Instructions for running the models assume you are working in a Linux environment.- NOTE: Knowledge of Geophysical Fluid Dynamics. This project does require you to have an understanding of the subject
This application demostrates a number of phenomena, including gravity waves, barotropic instability, orographic Rossby waves, geostrophic turbulence, tsunamis and equatorially trapped waves.
The Shallow Water Equations are:
dh/dt + d(uh)/dx + d(vh)/dy = 0
d(uh)/dt + d(u^2h + gh^2/2)/dx + d(uvh)/dy = h(fv - gdH/dx)
d(vh)/dt + d(uvh)/dx + d(v^2 + gh^2/2)/dy = h(-fu - gdH/dy)
Note: H
is the orography; a mass of some type that sits on the ocean floor. The d
in the equations represent partial derivatives.
- Create a directory where the project will be placed/cloned to. E.G.
$ mkdir swe_models && cd swe_models
$ git clone https://github.com/MRLintern/Shallow_Water_Equations.git
- Type
matlab
at the command prompt inside theswe_models
directory to start in the directory in which the project resides. - Click on
shallow_water_model.m
and then click on the run button; top of interface. - Once the program stops running, click on
animate.m
and then run the script as you did in the previous step to view the results.
Different models can be created for different Geophysical scenarios.
1. Gravity Waves
- orography = FLAT
- initial conditions = GAUSSIAN BLOB
- initially geostrophic = false
2. Tsunami
- orography = SEA MOUNT; keep the the other variables the same as above
3. Barotropic Instability
- orography = FLAT
- initial conditions = ZONAL JET
- initially geostrophic = true
- add random noise = true
- initial conditions = SHARP SHEAR
4. Jupiter’s Great Red Spot
- orography = FLAT
- initial conditions = SINUSOIDAL
- initially geostrophic = true
- add random noise = true
- NOTE: Run this model for 15 days; i.e.
forecast_length_days = 15; % Total simulation length (days)
5. Orographic Rossby Waves
- orography = GAUSSIAN MOUNTAIN
- initial conditions = UNIFORM WESTERLY
- initially geostrophic = true
6. Equatorially Trapped Waves
f = 0.4
beta = 2.5e-11
- orography = FLAT
- initial conditions = EQUATORIAL EASTERLY
- add random noise = true
- NOTE: Run this model for 15 days; i.e.
forecast_length_days = 15; % Total simulation length (days)
7. Equatorial Kelvin Wave
f = 0
beta = 5e-10
- orography = FLAT
- initial conditions = GAUSSIAN BLOB
- initially geostrophic = false
- add random noise = false