Modeling Nearshore Wave Transformation
Summary
Learning Goals
The goals of this activity are for students to understand how surface gravity waves transform as they propagate from offshore into shallow coastal waters and to connect the underlying theory with observable changes in wave behavior. Students examine how water depth and coastal geometry influence wavelength, phase and group velocity, shoaling, refraction, energy concentration, and wave breaking.
MATLAB is used to solve the dispersion relation numerically, calculate wave properties along a varying bathymetry, and visualize the evolving wave field. By building and testing the model themselves, students move beyond applying individual equations and instead see how the different physical processes interact within one computational framework.
The activity also develops higher-order skills in computational modeling, parameter exploration, visualization, and physical interpretation. Students compare different coastal configurations, evaluate model behavior, identify where and why waves focus or break, and synthesize multiple concepts into a single wave-transformation model. They also practice communicating computational results through clear plots and short written interpretations of their findings.
Context for Use
This activity is designed for an upper-level undergraduate or introductory graduate course in wave dynamics, coastal engineering, or ocean engineering. It is intended as a multi-day computational project that can be completed individually or in small groups. Students should have basic familiarity with MATLAB, including scripts, arrays, loops or vectorized operations, plotting, and simple numerical solvers. They should also have prior exposure to linear surface-wave theory, including the dispersion relation, wavelength, phase velocity, and group velocity.
The activity is best introduced after students have learned the fundamentals of surface gravity waves and before or during coverage of nearshore wave transformation. Students progressively build a computational model for dispersion, shoaling, refraction, and breaking, and then apply it to different bathymetric and coastal geometries. The project can be adapted to shorter classroom exercises by focusing on individual components or expanded into a more open-ended modeling project with additional coastal configurations and parameter studies.
Description and Teaching Materials
The activity is structured as a progressive computational project in which students build a nearshore wave-transformation model in stages. Students begin by solving the linear wave dispersion relation for prescribed wave periods and water depths and use the solution to calculate wavelength, phase velocity, and group velocity. They then extend the model to account for shoaling and refraction as waves propagate over variable bathymetry. In the final stages, students incorporate a wave-breaking criterion and apply the model to different coastal geometries and bathymetric features, such as planar beaches, curved shorelines, headlands, embayments, sandbars, and submerged shoals.
Students use MATLAB to perform the numerical calculations, organize the model into reusable functions or scripts, and create visualizations of the evolving wave field. Depending on the configuration, outputs may include wave height, wavelength, propagation angle, group velocity, wave rays, and breaking location as functions of position. Students then conduct parameter studies by varying offshore wave conditions and coastal geometry and interpret how these changes affect wave focusing, spreading, shoaling, refraction, and breaking.
The activity is being developed as part of the workshop. Planned teaching materials include a student assignment handout, starter MATLAB scripts, supporting functions for solving the dispersion relation and calculating wave transformation, example coastal geometries, and an instructor solution or reference implementation. These materials will be added as the activity is developed.
The activity could also be implemented in other numerical computing environments such as Python or GNU Octave. MATLAB is used because it provides an accessible environment for numerical solution, visualization, and rapid development of engineering models, and because students in the course already use MATLAB for computational work. Its plotting and numerical capabilities allow students to focus on connecting wave theory with physical behavior rather than on software development details.
Teaching Notes and Tips
Instructors may find it helpful to introduce the activity in stages rather than having students build the full model at once. A good sequence is to first verify the dispersion-relation solver, then add shoaling and refraction, and only afterward introduce wave breaking and more complex coastal geometries. At each stage, students should compare their numerical results with limiting cases or simple analytical expectations before moving on.
Common areas of confusion include distinguishing phase velocity from group velocity, applying the correct form of Snell's law for waves, interpreting changes in wave height through energy-flux conservation, and understanding why wave rays converge or diverge over different bathymetric features. These concepts should be reinforced through plots and physical interpretation rather than through equations alone.
For MATLAB, students benefit from being given a basic code structure while still being responsible for completing the physical calculations and analysis. Encourage the use of clearly named variables, modular functions, and plots with labeled axes and units. Debugging should focus first on checking intermediate quantities such as water depth, wavenumber, group velocity, and propagation angle before examining the final wave field.
The activity works best when students are asked not only to produce figures but also to explain whether the results are physically reasonable. Instructors can strengthen the activity by asking students to compare multiple coastal geometries and identify where wave energy is focused, where waves are weakened, and how the location of breaking changes.