2022-03-02 10:30:28 +01:00
|
|
|
# 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)
|
2022-02-01 09:45:31 +01:00
|
|
|
|
2022-03-29 13:07:12 +02:00
|
|
|
## 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
|
|
|
|
```
|
|
|
|
|
2022-03-29 10:19:33 +02:00
|
|
|
## Bathymetry
|
|
|
|
|
2022-03-30 13:39:38 +02:00
|
|
|
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
|
|
|
|
```
|
|
|
|
|
2022-03-29 10:19:33 +02:00
|
|
|
* 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
|
|
|
|
|
2022-03-30 13:39:38 +02:00
|
|
|
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)
|
|
|
|
```
|
|
|
|
|
2022-03-29 10:19:33 +02:00
|
|
|
* 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
|
|
|
|
|
2022-03-30 13:39:38 +02:00
|
|
|
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
|
|
|
|
```
|
|
|
|
|
2022-03-29 10:19:33 +02:00
|
|
|
* 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
|