1
Fork 0
internship/README.md

106 lines
2.9 KiB
Markdown

# 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) -- not provided in this repository
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