User Details

User Name

Coastal Dynamic Link Library

2017 - C#
Download Source

Coastal.dll provides coastal mechanics functions to a wide range of development platforms such as Microsoft Excel, Access, Visual Studio as well as MatLAB. The primary purpose is to simplify the process of exploring many of topics related to Coastal Engineering. From the basic principles of gravity waves though to coastal morphology.

The functions cover the following areas:

  • Small Amplitude Wave Theory (Linear)
  • Natural Waves
  • Wave Transformation
  • Surf Zone
  • Tides and Surges
  • Coastal Structures
  • Coastal Morphology

Coastal.dll is aimed towards students that have little or no experience with programming. All the functions have value checks performed to aid in providing exceptions to suit the student studying subjects such as coastal mechanics. While these checks may be considered a hindrance to the speed of execution, its benefit to improving the communication with teaching staff by removing many of the simple mistakes that students make by providing warning within the development environment itself.

The SineWaveVelocityPotential function showing the values being checked before the actual function.

        /// φ, phase is the position of a point in time (an instant) on a waveform cycle. 
        /// [Symbol: φ, psi ]
        /// [Type  :  ]
        /// [Unit  :  ]
        ///  Wave Height
        ///  Wave Length
        ///  Angular Velocity
        ///  Wave Number
        ///  Depth co-ordinate
        ///  Depth to the sea-floor
        ///  Distance co-ordinate
        ///  Time
        public static float SineWaveVelocityPotential(float H, float L, float ω, float k, float z, float h, float x, float t)

            return (-g / ω) * (H / 2) * ((float)Math.Cosh(k * (z + h)) / (float)Math.Cosh(k * h)) * ((float)Math.Sin((k * x) -  * t)));

Code Map of the primary coastal functions.

By supplying the functions within an Application Program Interface (API) students can reduce the amount of calculations and effort needed to examine near shore coastal dynamic concepts for themselves. This provides them with more time to engross themselves, or go out drinking with their friends. Win-win either way eh?

Complex Objects

The library also provides many complex objects that combine the functions into useful objects. There are three collections providing an easy to use way to use the functions.

The primary purpose is to provide objects that can demonstrate the principles of coastal mechanics visually to the student. This provides a better communication of the topic as the visual content can be shown over time in a three dimensional virtual world.

There are many advantages to this, the student is able to use this environment to analyze the concepts.


One of these object is Plane1D which is a collection of surface points that move within time to show the results of forces applied to each point within the collection which is a single dimension array along the x-axis.


Show above is an array of Plane1D objects which forms a surface that moves as the wave period passes. This is best demonstrated by constructing a video of the data during this time.