Skip to content
This repository has been archived by the owner on Sep 8, 2024. It is now read-only.

Free surface continuation method for 2016 PhD thesis "Very steep forced solitary waves in two-dimensional free-surface flow"

Notifications You must be signed in to change notification settings

stephematician/freesurfacesolver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Free surface continuation

Stephen Wade

This is the code for the thesis Very steep forced solitary waves in two-dimensional free surface flow.

The original plan was to have most of the computational work done in C++, with the residual for the system of equations specified as a Lua script. This ended up being a somewhat poor choice, as the residual function can occupy a lot of computational time.

The continuation method implemented is based on the pseudo-arclength approach in Numerical Continuation Methods.

The code was use to produce all the figures in the thesis, and the figures for the publication On the free-surface flow of steep forced solitary waves.

Another publication based on the results in Chapter 4 of the thesis has been accepted, with link/details pending.

Anyway, don't judge me too harshly, it was a big learning process. I have updated the code to be slightly more memory friendly, and attempted to consolidate a lot of the Lua scripts. I am also the clumsiest user of git, but it's only me working on this project so I get a free pass, right?

The MATLAB scripts are, in my opinion, a rushed together hack. I would not be surprised if they break easily, and it is best to ignore them as they are only helpers that I used to make some plots.

The basic directory structure

  • include - header files for C libraries required by Lua modules for free- surface problem.
  • input - scripts (Lua) batch solve free surface problem
  • lua - Lua modules for free surface problem
  • matlab - scripts (MATLAB) used to generate .tikz output
  • src - source files for C libraries required by Lua modules for free- surface problem, computes integrals, solves systems and does pseudo-arclength continuation steps.

Instructions

Build requirements:

Build Lua libraries

The Lua libraries can be built using the GNU make tool chain

  • on Ubuntu 14.04 LTS (tested)
make linux
  • Max OS-X with MacPorts
make macosx

The macosx build has not been tested since 2011, and is definitely broken. For example, build commands are not updated to reflect C++0x requirements now in place.

Generate output

All the main scripts are run from the command line, e.g.

lua input/htopography_F110_L100.lua

This will generate output in the output directory. Most scripts will try to create one or more branches of free surfaces in the amplitude of forcing-free surface height plane, for either fixed values of the Froude number, or fixed values of the speed at the crest.

The various matlab scripts supplied can be used to generate .tikz output as per the publications and thesis. These scripts are not Octave compatible.

About

Free surface continuation method for 2016 PhD thesis "Very steep forced solitary waves in two-dimensional free-surface flow"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published