This project was created under Falk Feddersen's research group at the Scripps Institution of Oceanography and supported by the Mark Walk Wolfinger Surfzone Processes Research Fund.
This is a Matlab implementation of the boundary element method (BEM), used in order to advect the free surface of a fluid.
Representing the fluid using potential flow, we use the BEM to solve Laplace's equation.
While a Lagrangian mesh is used, the BEM is strictly Eulerian. Switching between the formulations requires the advection term
The following directories need to be included in path
:
'tests'
'src'
'src/boundary'
'src/curve_functions'
'examples'
This list is also in setup_testenv.m
, and running it from the repository root directory will add these to the path.
A few examples are provided in the examples
directory. The main parts of the simulation are as follows
The entirety of the simulation can be self-contained within the bem_sim
object.
- For the constructor, a list of boundaries is specified.
- For each boundary, regridding parameters should be set.
- While the default parameters are most likely fine, corner (boundary intersection) resolution can be set in the
boundary.property-intersection_ccw
struct for each boundary. - stepping parameters should be set.
- Global events, if necessary should be set.
A full step can be performed using s.full_step()
. More information on how each step is handled can be found there.