# M2 Internship "Simulation of the breaking wave flow which generated the 50T concrete block displacement at the Artha breakwater on February 28, 2017" [Report](https://kalliope.edgarpierre.fr/latex/m2cce/internship/report.pdf) ## Configuration Each part can be run in their respective directories. ``` $ python -m processing.swash -h usage: swash.py [-h] [-v] [-c CONFIG] Run swash model options: -h, --help show this help message and exit -v, --verbose -c CONFIG, --config CONFIG ``` ## Bathymetry Configuration: ``` [inp] root: input directory base: bathymetry database (.xyz) hires: 1d hires smoothed breakwater profile (.dat) hstru: 1d hires smoothed breakwater porosity height (.dat) poro: 1d breakwater porosity (.dat) psize: 1d porosity size (.dat) hires_step: mesh sizing of 1d profile [out] margin: margin around the buoy and breakwater for subdomain no_breakwater: option to remove breakwater root: output directory sub: output file for subdomain out: output file for 1d projection step: mesh size left: margin for 1d projection (breakwater side) right: margin for 1d projection (buoy side) [artha] lat: latitude of the breakwater lon: longitude of the breakwater [buoy] lat: latitude of the buoy lon: longitude of the buoy ``` * Insert database in `data/data` * Run `processing.subdomain` to generate 2D data in a smaller domain * Run `processing.projection` to generate a 1D bathymetry ## Swash Configuration: ``` [data] out: input directory (output of bathymetry) [swash] input: swash input file (.sws) path: path to swash directory (should contain swashrun and swash.exe) out: output directory for swash (created at the end of the computation) mpi: number of mpi threads (omit to use serial) [post] inp: input directory for post-processing (output of sws_npz) compare: input directory for post-processing comparison (omit to display results from single case) out: output directory for figures x0: position of reflection calculations t0: minimum time for reflection calculations (necessary because of boundary condition ramping) ``` * Run `processing.swash` to run the Swash model * Run `processing.sws_npz` to convert Swash output to Numpy files * Run `processing.post` to plot wave height at a point, water level at an instant, reflection coefficient at a point * Run `processing.animate` to plot an animation of water level * Run `processing.layers` to plot an animation of layers with flow velocity ## OlaFlow Configuration: ``` [swash] np_out: input of olaflow from swash (output of sws_npz) [bathy] bathy: bathymetry to be used by olaflow hstru: height of porous domain (see bathy) scale: openscad scaling (mesh sizing in [x,y,z]) out: output folder for stl bathymetry [olaflow] root: olaflow computation directory ``` * Run `processing.bathy` to generate stl input files * Run `blockMesh`, `snappyHexMesh -overwrite`, copy `0.org` to `0`, `setFields` * Run `processing.sws_ola` to convert Swash output to OlaFlow input