From ba675fb7634f636cc864f4ee7c5d556f666b0091 Mon Sep 17 00:00:00 2001 From: "Edgar P. Burkhart" Date: Mon, 28 Mar 2022 10:15:36 +0200 Subject: [PATCH] LFS wtf --- .gitignore | 433 +++++- README.md | 10 +- data/.gitignore | 4 +- data/config.ini | 29 +- data/data/Hstru.dat | 4 +- data/data/Poro.dat | 4 +- data/data/Psize.dat | 4 +- data/data/bathyhires.dat | 4 +- data/data/buoyarthabathy.dat | 4 +- data/processing/lambert.py | 103 +- data/processing/projection.py | 147 +- data/processing/subdomain.py | 56 +- olaflow/.gitignore | 5 +- olaflow/config.ini | 15 +- olaflow/of/0.org/U | 70 +- olaflow/of/0.org/alpha.water | 64 +- olaflow/of/0.org/alpha.water.org | 64 +- olaflow/of/0.org/epsilon | 71 +- olaflow/of/0.org/k | 72 +- olaflow/of/0.org/nut | 81 +- olaflow/of/0.org/omega | 71 +- olaflow/of/0.org/p_rgh | 74 +- olaflow/of/0.org/porosityIndex | 62 +- olaflow/of/0.org/porosityIndex.org | 62 +- olaflow/of/constant/g | 25 +- olaflow/of/constant/porosityDict | 32 +- olaflow/of/constant/transportProperties | 40 +- olaflow/of/constant/turbulenceProperties | 32 +- olaflow/of/constant/turbulenceProperties_keps | 32 +- olaflow/of/constant/turbulenceProperties_sst | 32 +- olaflow/of/constant/waveDict | 40 +- olaflow/of/system/blockMeshDict | 84 +- olaflow/of/system/controlDict | 141 +- olaflow/of/system/decomposeParDict | 53 +- olaflow/of/system/fvSchemes | 82 +- olaflow/of/system/fvSolution | 98 +- olaflow/of/system/setFieldsDict | 56 +- olaflow/of/system/snappyHexMeshDict | 362 ++++- olaflow/processing/bathy.py | 42 +- olaflow/processing/olaflow.py | 41 +- olaflow/processing/stl.py | 25 +- olaflow/processing/sws_ola.py | 39 +- report/chapters/introduction.tex | 24 +- report/chapters/literature.tex | 615 ++++++++- report/cours.sty | 268 +++- report/kalliope.conf | 7 +- report/library.bib | 1178 ++++++++++++++++- report/main.tex | 47 +- report/notes/bibliography_research.tex | 72 +- swash/.gitignore | 6 +- swash/config.ini | 31 +- swash/data/Hstru.dat | 4 +- swash/data/Poro.dat | 4 +- swash/data/Psize.dat | 4 +- swash/data/bathyhires.dat | 4 +- swash/data/buoyarthabathy.dat | 4 +- swash/processing/animate.py | 63 +- swash/processing/bathy.py | 96 +- swash/processing/bathy_nb.py | 97 +- swash/processing/layers.py | 95 +- swash/processing/post.py | 172 ++- swash/processing/read_swash.py | 55 +- swash/processing/swash.py | 70 +- swash/processing/sws_npz.py | 54 +- swash/sws/INPUT.sws | 61 +- swash/sws/SPEC_buoy.sws | 61 +- swash/sws/SPEC_buoy_nb.sws | 62 +- tasks.md | 8 +- 68 files changed, 5727 insertions(+), 204 deletions(-) diff --git a/.gitignore b/.gitignore index 3e5b9b3..c30e10c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,430 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6f1f708298df65b3ffcd304c283fcb17994fe9bffe139cdd5069ab6b490cce4a -size 5056 +# ---> Python +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# ---> TeX +## Core latex/pdflatex auxiliary files: +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc +*.fmt +*.fot +*.cb +*.cb2 +.*.lb + +## Intermediate documents: +*.dvi +*.xdv +*-converted-to.* +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +# *.pdf + +## Generated if empty string is given at "Please type another file name for output:" +.pdf + +## Bibliography auxiliary files (bibtex/biblatex/biber): +*.bbl +*.bcf +*.blg +*-blx.aux +*-blx.bib +*.run.xml + +## Build tool auxiliary files: +*.fdb_latexmk +*.synctex +*.synctex(busy) +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync + +## Build tool directories for auxiliary files +# latexrun +latex.out/ + +## Auxiliary and intermediate files from other packages: +# algorithms +*.alg +*.loa + +# achemso +acs-*.bib + +# amsthm +*.thm + +# beamer +*.nav +*.pre +*.snm +*.vrb + +# changes +*.soc + +# comment +*.cut + +# cprotect +*.cpt + +# elsarticle (documentclass of Elsevier journals) +*.spl + +# endnotes +*.ent + +# fixme +*.lox + +# feynmf/feynmp +*.mf +*.mp +*.t[1-9] +*.t[1-9][0-9] +*.tfm + +#(r)(e)ledmac/(r)(e)ledpar +*.end +*.?end +*.[1-9] +*.[1-9][0-9] +*.[1-9][0-9][0-9] +*.[1-9]R +*.[1-9][0-9]R +*.[1-9][0-9][0-9]R +*.eledsec[1-9] +*.eledsec[1-9]R +*.eledsec[1-9][0-9] +*.eledsec[1-9][0-9]R +*.eledsec[1-9][0-9][0-9] +*.eledsec[1-9][0-9][0-9]R + +# glossaries +*.acn +*.acr +*.glg +*.glo +*.gls +*.glsdefs +*.lzo +*.lzs + +# uncomment this for glossaries-extra (will ignore makeindex's style files!) +# *.ist + +# gnuplottex +*-gnuplottex-* + +# gregoriotex +*.gaux +*.glog +*.gtex + +# htlatex +*.4ct +*.4tc +*.idv +*.lg +*.trc +*.xref + +# hyperref +*.brf + +# knitr +*-concordance.tex +# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files +# *.tikz +*-tikzDictionary + +# listings +*.lol + +# luatexja-ruby +*.ltjruby + +# makeidx +*.idx +*.ilg +*.ind + +# minitoc +*.maf +*.mlf +*.mlt +*.mtc[0-9]* +*.slf[0-9]* +*.slt[0-9]* +*.stc[0-9]* + +# minted +_minted* +*.pyg + +# morewrites +*.mw + +# newpax +*.newpax + +# nomencl +*.nlg +*.nlo +*.nls + +# pax +*.pax + +# pdfpcnotes +*.pdfpc + +# sagetex +*.sagetex.sage +*.sagetex.py +*.sagetex.scmd + +# scrwfile +*.wrt + +# sympy +*.sout +*.sympy +sympy-plots-for-*.tex/ + +# pdfcomment +*.upa +*.upb + +# pythontex +*.pytxcode +pythontex-files-*/ + +# tcolorbox +*.listing + +# thmtools +*.loe + +# TikZ & PGF +*.dpth +*.md5 +*.auxlock + +# todonotes +*.tdo + +# vhistory +*.hst +*.ver + +# easy-todo +*.lod + +# xcolor +*.xcp + +# xmpincl +*.xmpi + +# xindy +*.xdy + +# xypic precompiled matrices and outlines +*.xyc +*.xyd + +# endfloat +*.ttt +*.fff + +# Latexian +TSWLatexianTemp* + +## Editors: +# WinEdt +*.bak +*.sav + +# Texpad +.texpadtmp + +# LyX +*.lyx~ + +# Kile +*.backup + +# gummi +.*.swp + +# KBibTeX +*~[0-9]* + +# TeXnicCenter +*.tps + +# auto folder when using emacs and auctex +./auto/* +*.el + +# expex forward references with \gathertags +*-tags.tex + +# standalone packages +*.sta + +# Makeindex log files +*.lpz + +# xwatermark package +*.xwm + +# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib +# option is specified. Footnotes are the stored in a file with suffix Notes.bib. +# Uncomment the next line to have this generated file ignored. +#*Notes.bib + diff --git a/README.md b/README.md index 7bdf3e7..bbf17eb 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,7 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a7c1ed11b3cadc1a6dc0034d60898e8d0962e45b4aa2c50f9769b43d3f2b4099 -size 231 +# 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) + diff --git a/data/.gitignore b/data/.gitignore index beda432..e2e7327 100644 --- a/data/.gitignore +++ b/data/.gitignore @@ -1,3 +1 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:17bc194f27793ae12ccd604a1f667d03cc6f9b07222f4e67d633b7296cc97e24 -size 5 +/out diff --git a/data/config.ini b/data/config.ini index 6c67d9e..33b5bf0 100644 --- a/data/config.ini +++ b/data/config.ini @@ -1,3 +1,26 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:13605228ca2c48f7bc869db92b329f5395122662ced9a7ce930241b821a11f7a -size 300 +[inp] +root=data +base=Database_20220224.xyz +hires=bathyhires.dat +hstru=Hstru.dat +poro=Poro.dat +psize=Psize.dat +hires_step=0.5 + +[out] +no_breakwater=True +root=out +sub=bathy_sub.npy +out=bathy.npy +step=1 +left=0 +right=150 +#plot=True + +[artha] +lat=43.398450 +lon=-1.673097 + +[buoy] +lat=43.408333 +lon=-1.681667 diff --git a/data/data/Hstru.dat b/data/data/Hstru.dat index 7572dc3..4168f19 100644 --- a/data/data/Hstru.dat +++ b/data/data/Hstru.dat @@ -1,3 +1 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:752dec83ecb9ee7fb94f4b1d2f46ce0e4ebbf504002714b798e704fd705e64e8 -size 2639 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.09053913636363475 0.12857195454545334 0.1106843636363628 0.08742181818181649 0.05449704545454637 0.19579977272727156 0.47464572727272625 0.7977639000000014 1.2037601545454546 1.5225200999999977 1.7882055545454527 2.024811236363634 2.256461418181816 2.7078580227272706 3.3284555954545443 4.016352159090907 4.587657986363634 4.972522395454543 5.264216395454545 5.512329618181816 5.8869764545454535 6.372828168181817 6.94589004090909 7.571161649999999 8.023941072727272 8.39270449090909 8.77935388181818 8.805197545454547 8.601612395454545 8.292523681818182 7.930243750000001 7.646413318181818 7.526211804545455 7.564564154090908 7.746881157727273 7.834589710454546 7.754542366818181 7.49324825090909 7.207938067272727 7.178323675454545 7.217737861818183 7.161903220909092 7.1852990436363635 7.206258208636364 7.038393730000001 6.763687682727273 6.502847790000001 6.291055629545454 6.077600841363637 5.790635207727273 5.443607505909091 5.103184435909092 4.86922702 4.617471335454545 4.3047238850000005 4.031671995909091 3.8282986531818186 3.6257627568181823 3.385370432272728 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 1.8351631188311681 1.8344353740259738 1.8088506428571423 1.7847644344155826 1.7829720396103879 1.7923390038961013 1.7139384863636344 1.6436818051948028 1.6240780240259713 1.60447424285714 1.4623914616883082 1.320308680519477 1.1642865493506456 1.0082644181818141 0.8563518870129894 0.7044393558441584 0.5246033246753274 0.3447672935064956 0.16403271233766414 -0.01670186883116731 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \ No newline at end of file diff --git a/data/data/Poro.dat b/data/data/Poro.dat index ead67c1..6f646e3 100644 --- a/data/data/Poro.dat +++ b/data/data/Poro.dat @@ -1,3 +1 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0b1ea84701b4c5daa9e37293b3a8c84aff9357a425969c5d1720f13ab4ec7606 -size 1308 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \ No newline at end of file diff --git a/data/data/Psize.dat b/data/data/Psize.dat index 6adc185..c45e001 100644 --- a/data/data/Psize.dat +++ b/data/data/Psize.dat @@ -1,3 +1 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eaa82206c1a952bdfd10ba322149514d2a3aaf7db7a08d0f89d96fa282bfdc43 -size 900 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \ No newline at end of file diff --git a/data/data/bathyhires.dat b/data/data/bathyhires.dat index 2a86fb2..54099d5 100644 --- a/data/data/bathyhires.dat +++ b/data/data/bathyhires.dat @@ -1,3 +1 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cd7a7e42abc9ec28c5cfe91964e8cb6d7807a947463cd708edf835386b6f5c2c -size 4809 +-16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0030005 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -15.943623500000001 -15.881246 -15.816197500000001 -15.751149 -15.773361 -15.795573 -15.8146685 -15.833764 -15.778788 -15.723812 -15.689659 -15.655506 -15.6387295 -15.621953 -15.661657 -15.701361 -15.7411355 -15.78091 -15.755651499999999 -15.730393 -15.688119 -15.645845 -15.631902499999999 -15.61796 -15.589325500000001 -15.560691 -15.5670085 -15.573326 -15.486844 -15.400362 -15.214036 -15.02771 -14.9567825 -14.885855 -14.882393 -14.878931 -14.9088545 -14.938778 -14.8344285 -14.730079 -14.7571455 -14.784212 -14.7689165 -14.753621 -14.7533025 -14.752984 -14.706036000000001 -14.659088 -14.7279955 -14.796903 -14.814821 -14.832739 -14.8244145 -14.81609 -14.7981595 -14.780229 -14.771710500000001 -14.763192 -14.7391665 -14.715141 -14.759877 -14.804613 -14.762627 -14.720641 -14.789644500000001 -14.858648 -14.862199 -14.86575 -14.799389999999999 -14.73303 -14.760145999999999 -14.787262 -14.737239500000001 -14.687217 -14.715263 -14.743309 -14.737463 -14.731617 -14.7335975 -14.735578 -14.7440185 -14.752459 -14.800866 -14.849273 -14.8300105 -14.810748 -14.7690775 -14.727407 -14.699237 -14.671067 -14.697172 -14.723277 -14.7142905 -14.705304 -14.6880615 -14.670819 -14.727667 -14.784515 -14.708768 -14.633021 -14.675764999999998 -14.718509 -14.597324 -14.476139 -14.459793999999999 -14.443449 -14.4187075 -14.393966 -14.3316695 -14.002316272727272 -13.855776363636364 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.480393763636364 -13.02899715909091 -12.408399586363636 -11.720503022727273 -11.149197195454546 -10.764332786363637 -10.472638786363635 -10.224525563636364 -9.849878727272728 -9.364027013636363 -8.79096514090909 -8.165693531818182 -7.712914109090909 -7.344150690909092 -6.9575013000000006 -6.675196218181818 -6.427384763636364 -6.115875904545455 -5.790259272727273 -5.502783877272728 -5.238120981818182 -4.9080746322727276 -4.477644405909091 -4.015289016818182 -3.6094846468181823 -3.2977168900000002 -2.9577554645454542 -2.534590433636364 -2.126412829090909 -1.795598079090909 -1.4898971745454546 -1.2211265550000001 0.18171014090909088 0.225112168181818 0.2626339090909089 0.3160848454545455 0.3755115090909089 0.44294754090909105 0.5119367499999998 0.579982840909091 0.6242613363636367 0.6613643272727274 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.8831130266233771 1.0479499077922085 1.21278678896104 1.3776236701298714 1.5424605512987029 1.7072974324675343 1.8721343136363657 2.036971194805197 2.2018080759740286 2.36664495714286 2.5314818383116915 2.696318719480523 2.8611556006493544 3.025992481818186 3.19082936298701 3.3556662441558416 3.520503125324673 3.6853400064935045 3.850176887662336 4.015013768831167 4.1798506500000006 4.3613894 5.0562667 5.751144 7.12597825 8.5008125 8.95175665 9.4027008 9.39748715 9.3922735 9.389079899999999 9.3858863 9.3923233 9.3987603 9.394938549999999 9.3911168 9.3864873 9.3818578 9.364699 9.3475402 9.3475402 \ No newline at end of file diff --git a/data/data/buoyarthabathy.dat b/data/data/buoyarthabathy.dat index 98b7dfc..040d1ee 100644 --- a/data/data/buoyarthabathy.dat +++ b/data/data/buoyarthabathy.dat @@ -1,3 +1 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d76300be9349c43d90b0db444f00667a34617d0c2c53164a1e5504d1fe1f9bf7 -size 21996 +-18.630917739070004 -18.396850213715396 -18.16278268836079 -17.97697218418998 -18.009337789878305 -18.04170339556663 -18.062344725725 -18.062344725725 -18.062344725725 -18.062344725725 -18.062344725725 -18.062344725725 -18.062344725725 -18.062344725725 -18.062344725725 -17.925174203890386 -17.773707036118076 -17.644882122960535 -17.754466831923214 -17.864051540885896 -17.944283202805 -17.944283202805 -17.944283202805 -17.944283202805 -17.944283202805 -17.944283202805 -17.944283202805 -17.944283202805 -17.944283202805 -17.951058787500973 -17.959411080585316 -17.96776337366966 -18.07657334475572 -18.1861580537184 -18.276733170310003 -18.276733170310003 -18.276733170310003 -18.276733170310003 -18.276733170310003 -18.276733170310003 -18.276733170310003 -18.276733170310003 -18.276733170310003 -18.30525844383993 -18.345051707981323 -18.384844972122714 -18.528282969478806 -18.683498777427477 -18.826439865870004 -18.826439865870004 -18.826439865870004 -18.826439865870004 -18.826439865870004 -18.826439865870004 -18.826439865870004 -18.826439865870004 -18.826439865870004 -18.676429769230275 -18.435429941841857 -18.194430114453443 -18.12954951448041 -18.107720281208916 -18.085891047937423 -18.08555692702 -18.08555692702 -18.08555692702 -18.08555692702 -18.08555692702 -18.08555692702 -18.08555692702 -18.08555692702 -17.976113005564642 -17.768856883774777 -17.56160076198491 -17.4858463621545 -17.464017128883008 -17.442187895611514 -17.439793362369997 -17.439793362369997 -17.439793362369997 -17.439793362369997 -17.439793362369997 -17.439793362369997 -17.439793362369997 -17.439793362369997 -17.35971095086923 -17.175050331408634 -16.990389711948037 -16.94736112180117 -16.99307293176374 -17.03878474172631 -17.048113682535 -17.048113682535 -17.048113682535 -17.048113682535 -17.048113682535 -17.048113682535 -17.048113682535 -17.048113682535 -17.01604301460557 -16.921518940708307 -16.82699486681104 -16.805450691657157 -16.851162501619726 -16.896874311582295 -16.910517887515002 -16.910517887515002 -16.910517887515002 -16.910517887515002 -16.910517887515002 -16.910517887515002 -16.910517887515002 -16.910517887515002 -16.89915702219779 -16.852766822152503 -16.80637662210722 -16.806661262861773 -16.869831168167003 -16.933001073472234 -16.957817821985003 -16.957817821985003 -16.957817821985003 -16.957817821985003 -16.957817821985003 -16.957817821985003 -16.957817821985003 -16.957817821985003 -16.94188143920322 -16.835999031568328 -16.730116623933434 -16.660567924705596 -16.664245622421216 -16.667923320136836 -16.669715259585008 -16.669715259585008 -16.669715259585008 -16.669715259585008 -16.669715259585008 -16.669715259585008 -16.669715259585008 -16.669715259585008 -16.66357220389442 -16.554114120680303 -16.44465603746618 -16.36203884105427 -16.36571653876989 -16.36939423648551 -16.371533305565002 -16.371533305565002 -16.371533305565002 -16.371533305565002 -16.371533305565002 -16.371533305565002 -16.371533305565002 -16.371533305565002 -16.371533305565002 -16.266263669412652 -16.156805586198534 -16.06946932587589 -16.1148640029021 -16.160258679928305 -16.190946408020004 -16.190946408020004 -16.190946408020004 -16.190946408020004 -16.190946408020004 -16.190946408020004 -16.190946408020004 -16.190946408020004 -16.190946408020004 -16.132191368920004 -16.06445026501647 -16.0021927831478 -16.04758746017401 -16.09298213720022 -16.127954566950002 -16.127954566950002 -16.127954566950002 -16.127954566950002 -16.127954566950002 -16.127954566950002 -16.127954566950002 -16.127954566950002 -16.127954566950002 -16.075593458575593 -16.007852354672064 -15.940111250768533 -16.037239058773466 -16.142301734196447 -16.233159507075005 -16.233159507075005 -16.233159507075005 -16.233159507075005 -16.233159507075005 -16.233159507075005 -16.233159507075005 -16.233159507075005 -16.233159507075005 -16.23127543160381 -16.22849889933047 -16.225722367057134 -16.371504185888472 -16.54153143294165 -16.704618792360005 -16.704618792360005 -16.704618792360005 -16.704618792360005 -16.704618792360005 -16.704618792360005 -16.704618792360005 -16.704618792360005 -16.704618792360005 -16.733863891985003 -16.78392537256578 -16.833986853146556 -16.975858869292942 -17.14588611634612 -17.315913363399297 -17.32502196592001 -17.32502196592001 -17.32502196592001 -17.32502196592001 -17.32502196592001 -17.32502196592001 -17.32502196592001 -17.32502196592001 -17.3495418747759 -17.39960335535668 -17.449664835937458 -17.571554036731104 -17.72867432462537 -17.885794612519632 -17.90904200205501 -17.90904200205501 -17.90904200205501 -17.90904200205501 -17.90904200205501 -17.90904200205501 -17.90904200205501 -17.90904200205501 -17.92373320312743 -17.960887724549295 -17.998042245971156 -18.10436070418578 -18.261480992080042 -18.4186012799743 -18.456678900765006 -18.456678900765006 -18.456678900765006 -18.456678900765006 -18.456678900765006 -18.456678900765006 -18.456678900765006 -18.456678900765006 -18.467863169968524 -18.50501769139039 -18.54217221281225 -18.6206111773879 -18.743392692017615 -18.866174206647333 -18.907519002389996 -18.907519002389996 -18.907519002389996 -18.907519002389996 -18.907519002389996 -18.907519002389996 -18.907519002389996 -18.907519002389996 -18.904747228230132 -18.891333210073753 -18.877919191917375 -18.897707477249753 -18.969920452301228 -19.042133427352706 -19.073266062005 -19.073266062005 -19.073266062005 -19.073266062005 -19.073266062005 -19.073266062005 -19.073266062005 -19.073266062005 -19.07554153668766 -19.095813947496822 -19.11608635830598 -19.151596434645413 -19.223809409696887 -19.296022384748362 -19.333971040005004 -19.333971040005004 -19.333971040005004 -19.333971040005004 -19.333971040005004 -19.333971040005004 -19.333971040005004 -19.333971040005004 -19.33433304734088 -19.35460545815004 -19.3748778689592 -19.395412353826593 -19.417001854774572 -19.438591355722554 -19.4519746433 -19.4519746433 -19.4519746433 -19.4519746433 -19.4519746433 -19.4519746433 -19.4519746433 -19.4519746433 -19.4519746433 -19.423946365461866 -19.393595302167537 -19.36867679788834 -19.39026629883632 -19.4118557997843 -19.427276871889998 -19.427276871889998 -19.427276871889998 -19.427276871889998 -19.427276871889998 -19.427276871889998 -19.427276871889998 -19.427276871889998 -19.427276871889998 -19.402113362781176 -19.37176229948684 -19.34241621198872 -19.41055277672367 -19.478689341458615 -19.533789573654996 -19.533789573654996 -19.533789573654996 -19.533789573654996 -19.533789573654996 -19.533789573654996 -19.533789573654996 -19.533789573654996 -19.533789573654996 -19.56040968463172 -19.59664261346115 -19.63287554229058 -19.759305048830505 -19.894025605689222 -20.01568651673 -20.01568651673 -20.01568651673 -20.01568651673 -20.01568651673 -20.01568651673 -20.01568651673 -20.01568651673 -20.01568651673 -20.020790949292312 -20.02876281209879 -20.03673467490527 -20.148383511102057 -20.282570819775 -20.416415813885003 -20.416415813885003 -20.416415813885003 -20.416415813885003 -20.416415813885003 -20.416415813885003 -20.416415813885003 -20.416415813885003 -20.416415813885003 -20.420767800213028 -20.42873966301951 -20.43671152582599 -20.51463006031405 -20.618809275047482 -20.72298848978091 -20.732555968685002 -20.732555968685002 -20.732555968685002 -20.732555968685002 -20.732555968685002 -20.732555968685002 -20.732555968685002 -20.732555968685002 -20.725238159640618 -20.709031486502774 -20.692824813364926 -20.74909255300583 -20.847442209744077 -20.94579186648232 -20.96410698113001 -20.96410698113001 -20.96410698113001 -20.96410698113001 -20.96410698113001 -20.96410698113001 -20.96410698113001 -20.96410698113001 -20.958318883580777 -20.942112210442932 -20.925905537305084 -20.882589763692913 -20.81601926408144 -20.749448764469964 -20.730768267130006 -20.730768267130006 -20.730768267130006 -20.730768267130006 -20.730768267130006 -20.730768267130006 -20.730768267130006 -20.730768267130006 -20.73720649152481 -20.761709248444845 -20.786212005364884 -20.79152885378794 -20.772808184668808 -20.754087515549674 -20.747067264629997 -20.747067264629997 -20.747067264629997 -20.747067264629997 -20.747067264629997 -20.747067264629997 -20.747067264629997 -20.747067264629997 -20.74695583423091 -20.746294005193917 -20.74563217615692 -20.713648252055574 -20.623364078016913 -20.533079903978248 -20.490701618204994 -20.490701618204994 -20.490701618204994 -20.490701618204994 -20.490701618204994 -20.490701618204994 -20.490701618204994 -20.490701618204994 -20.490652656362972 -20.489990827325975 -20.489328998288983 -20.48520857200221 -20.4709890417461 -20.45676951148999 -20.44875288856499 -20.44875288856499 -20.44875288856499 -20.44875288856499 -20.44875288856499 -20.44875288856499 -20.44875288856499 -20.44875288856499 -20.44875288856499 -20.447109975695053 -20.44543283547366 -20.45412780390209 -20.516988228612934 -20.579848653323776 -20.621221075709993 -20.621221075709993 -20.621221075709993 -20.621221075709993 -20.621221075709993 -20.621221075709993 -20.621221075709993 -20.621221075709993 -20.621221075709993 -20.619736464340544 -20.61805932411915 -20.607253995595524 -20.46795186250966 -20.328649729423798 -20.223817767025 -20.223817767025 -20.223817767025 -20.223817767025 -20.223817767025 -20.223817767025 -20.223817767025 -20.223817767025 -20.223817767025 -20.210298458386585 -20.19320307455994 -20.176107690733296 -20.02711710615422 -19.87431852365315 -19.74490747929 -19.74490747929 -19.74490747929 -19.74490747929 -19.74490747929 -19.74490747929 -19.74490747929 -19.74490747929 -19.74490747929 -19.745084941524354 -19.745339759091628 -19.745594576658906 -19.585864658960666 -19.40381128983002 -19.232439623479994 -19.232439623479994 -19.232439623479994 -19.232439623479994 -19.232439623479994 -19.232439623479994 -19.232439623479994 -19.232439623479994 -19.232439623479994 -19.23259303405621 -19.23284785162349 -19.233102669190767 -19.16018239389269 -19.067001913729612 -18.97382143356654 -18.970493559274995 -18.970493559274995 -18.970493559274995 -18.970493559274995 -18.970493559274995 -18.970493559274995 -18.970493559274995 -18.970493559274995 -18.995278273689053 -19.044100424695635 -19.09292257570223 -19.071698271547643 -19.018823346912818 -18.965948422277997 -18.959069286674996 -18.959069286674996 -18.959069286674996 -18.959069286674996 -18.959069286674996 -18.959069286674996 -18.959069286674996 -18.959069286674996 -18.97924578785629 -19.02806793886288 -19.07689008986946 -19.01771810908991 -18.884850561984184 -18.751983014878444 -18.7221556063445 -18.7221556063445 -18.7221556063445 -18.7221556063445 -18.7221556063445 -18.7221556063445 -18.7221556063445 -18.7221556063445 -18.734366519116616 -18.772659941569966 -18.810953364023323 -18.75079279623869 -18.592178238216057 -18.43356368019344 -18.382985058375002 -18.382985058375002 -18.382985058375002 -18.382985058375002 -18.382985058375002 -18.382985058375002 -18.382985058375002 -18.382985058375002 -18.382985058375002 -18.382985058375002 -18.382985058375002 -18.313780733542444 -18.143163781753998 -17.972546829965534 -17.902036763155003 -17.902036763155003 -17.902036763155003 -17.902036763155003 -17.902036763155003 -17.902036763155003 -17.902036763155003 -17.902036763155003 -17.902036763155003 -17.902036763155003 -17.902036763155003 -17.85502909987865 -17.703988083449644 -17.552947067020654 -17.476270632660004 -17.476270632660004 -17.476270632660004 -17.476270632660004 -17.476270632660004 -17.476270632660004 -17.476270632660004 -17.476270632660004 -17.476270632660004 -17.476270632660004 -17.476270632660004 -17.447764173754617 -17.31629909268509 -17.18483401161555 -17.105686666890005 -17.105686666890005 -17.105686666890005 -17.105686666890005 -17.105686666890005 -17.105686666890005 -17.105686666890005 -17.105686666890005 -17.105686666890005 -17.105686666890005 -17.105686666890005 -17.07668885205667 -16.83987336425093 -16.60305787644522 -16.43813280458051 -16.43813280458051 -16.43813280458051 -16.43813280458051 -16.43813280458051 -16.43813280458051 -16.43813280458051 -16.43813280458051 -16.43813280458051 -16.43813280458051 -16.43813280458051 -16.439049987294954 -16.471735044027955 -16.504420100760964 -16.530267977259005 -16.530267977259005 -16.530267977259005 -16.530267977259005 -16.530267977259005 -16.530267977259005 -16.530267977259005 -16.530267977259005 -16.530267977259005 -16.530267977259005 -16.530267977259005 -16.530267977259005 -16.52621944756576 -16.521883317402505 -16.5180449572835 -16.5180449572835 -16.5180449572835 -16.5180449572835 -16.5180449572835 -16.5180449572835 -16.5180449572835 -16.5180449572835 -16.5180449572835 -16.5180449572835 -16.5180449572835 -16.5180449572835 -16.503284257470536 -16.485697040672118 -16.468468746665497 -16.468468746665497 -16.468468746665497 -16.468468746665497 -16.468468746665497 -16.468468746665497 -16.468468746665497 -16.468468746665497 -16.468468746665497 -16.468468746665497 -16.468468746665497 -16.468468746665497 -16.44549735737313 -16.414659053939538 -16.38382075050595 -16.381539345404995 -16.381539345404995 -16.381539345404995 -16.381539345404995 -16.381539345404995 -16.381539345404995 -16.381539345404995 -16.381539345404995 -16.381539345404995 -16.381539345404995 -16.381539345404995 -16.354244597864074 -16.312285613409014 -16.270326628953946 -16.263262106061 -16.263262106061 -16.263262106061 -16.263262106061 -16.263262106061 -16.263262106061 -16.263262106061 -16.263262106061 -16.263262106061 -16.263262106061 -16.263262106061 -16.280066529570856 -16.310283658084003 -16.340500786597143 -16.348440491283 -16.348440491283 -16.348440491283 -16.348440491283 -16.348440491283 -16.348440491283 -16.348440491283 -16.348440491283 -16.348440491283 -16.348440491283 -16.348440491283 -16.340230009618892 -16.322448192976182 -16.30466637633347 -16.2983157275325 -16.2983157275325 -16.2983157275325 -16.2983157275325 -16.2983157275325 -16.2983157275325 -16.2983157275325 -16.2983157275325 -16.2983157275325 -16.2983157275325 -16.2983157275325 -16.306822376046192 -16.329979363666805 -16.353136351287414 -16.363592440085498 -16.363592440085498 -16.363592440085498 -16.363592440085498 -16.363592440085498 -16.363592440085498 -16.363592440085498 -16.363592440085498 -16.363592440085498 -16.363592440085498 -16.363592440085498 -16.381087975115037 -16.44518376699897 -16.509279558882906 -16.544270628941998 -16.544270628941998 -16.544270628941998 -16.544270628941998 -16.544270628941998 -16.544270628941998 -16.544270628941998 -16.544270628941998 -16.544270628941998 -16.544270628941998 -16.544270628941998 -16.551547971274363 -16.592301088335585 -16.63305420539681 -16.65914867576 -16.65914867576 -16.65914867576 -16.65914867576 -16.65914867576 -16.65914867576 -16.65914867576 -16.65914867576 -16.65914867576 -16.65914867576 -16.65914867576 -16.663049522834612 -16.709386857781542 -16.755724192728465 -16.789767949016003 -16.789767949016003 -16.789767949016003 -16.789767949016003 -16.789767949016003 -16.789767949016003 -16.789767949016003 -16.789767949016003 -16.789767949016003 -16.789767949016003 -16.789767949016003 -16.789767949016003 -16.790678696668884 -16.791598833472825 -16.7923617019965 -16.7923617019965 -16.7923617019965 -16.7923617019965 -16.7923617019965 -16.7923617019965 -16.7923617019965 -16.7923617019965 -16.7923617019965 -16.7923617019965 -16.7923617019965 -16.7923617019965 -16.805300553774796 -16.819750781401837 -16.833095124261504 -16.833095124261504 -16.833095124261504 -16.833095124261504 -16.833095124261504 -16.833095124261504 -16.833095124261504 -16.833095124261504 -16.833095124261504 -16.833095124261504 -16.833095124261504 -16.833095124261504 -16.855507930366972 -16.883488248817113 -16.911468567267253 -16.911968215811005 -16.911968215811005 -16.911968215811005 -16.911968215811005 -16.911968215811005 -16.911968215811005 -16.911968215811005 -16.911968215811005 -16.911968215811005 -16.911968215811005 -16.911968215811005 -16.90646774757785 -16.898683691450064 -16.890899635322278 -16.890025914736505 -16.890025914736505 -16.890025914736505 -16.890025914736505 -16.890025914736505 -16.890025914736505 -16.890025914736505 -16.890025914736505 -16.890025914736505 -16.890025914736505 -16.890025914736505 -16.857080236819442 -16.80326896288823 -16.74945768895702 -16.73833852266 -16.73833852266 -16.73833852266 -16.73833852266 -16.73833852266 -16.73833852266 -16.73833852266 -16.73833852266 -16.73833852266 -16.73833852266 -16.73833852266 -16.686721544239823 -16.58704737901463 -16.487373213789432 -16.45736925589 -16.45736925589 -16.45736925589 -16.45736925589 -16.45736925589 -16.45736925589 -16.45736925589 -16.45736925589 -16.45736925589 -16.45736925589 -16.45736925589 -16.45149383497077 -16.437619347016923 -16.423744859063078 -16.418258773265 -16.418258773265 -16.418258773265 -16.418258773265 -16.418258773265 -16.418258773265 -16.418258773265 -16.418258773265 -16.418258773265 -16.418258773265 -16.418258773265 -16.44192803199448 -16.513853221311987 -16.585778410629487 -16.621007074785002 -16.621007074785002 -16.621007074785002 -16.621007074785002 -16.621007074785002 -16.621007074785002 -16.621007074785002 -16.621007074785002 -16.621007074785002 -16.621007074785002 -16.621007074785002 -16.62540487607617 -16.644143333751593 -16.66288179142702 -16.673828492467 -16.673828492467 -16.673828492467 -16.673828492467 -16.673828492467 -16.673828492467 -16.673828492467 -16.673828492467 -16.673828492467 -16.673828492467 -16.673828492467 -16.671447835061425 -16.65448024046169 -16.63751264586196 -16.625998920955 -16.625998920955 -16.625998920955 -16.625998920955 -16.625998920955 -16.625998920955 -16.625998920955 -16.625998920955 -16.625998920955 -16.625998920955 -16.625998920955 -16.620351328542352 -16.497359316000168 -16.37436730345797 -16.279299497845 -16.279299497845 -16.279299497845 -16.279299497845 -16.279299497845 -16.279299497845 -16.279299497845 -16.279299497845 -16.279299497845 -16.279299497845 -16.279299497845 -16.279299497845 -16.212403728271894 -16.142100399390774 -16.081123022299998 -16.081123022299998 -16.081123022299998 -16.081123022299998 -16.081123022299998 -16.081123022299998 -16.081123022299998 -16.081123022299998 -16.081123022299998 -16.081123022299998 -16.081123022299998 -16.081123022299998 -16.066024754968524 -16.04841010974847 -16.031469494319996 -16.031469494319996 -16.031469494319996 -16.031469494319996 -16.031469494319996 -16.031469494319996 -16.031469494319996 -16.031469494319996 -16.031469494319996 -16.031469494319996 -16.031469494319996 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -15.881246 -15.751149 -15.795573 -15.833764 -15.723812 -15.655506 -15.621953 -15.701361 -15.78091 -15.730393 -15.645845 -15.61796 -15.560691 -15.573326 -15.400362 -15.02771 -14.885855 -14.878931 -14.938778 -14.730079 -14.784212 -14.753621 -14.752984 -14.659088 -14.796903 -14.832739 -14.81609 -14.780229 -14.763192 -14.715141 -14.804613 -14.720641 -14.858648 -14.86575 -14.73303 -14.787262 -14.687217 -14.743309 -14.731617 -14.735578 -14.752459 -14.849273 -14.810748 -14.727407 -14.671067 -14.723277 -14.705304 -14.670819 -14.784515 -14.633021 -14.718509 -14.476139 -14.443449 -14.393966 -14.269373 -14.05046 -13.024493 -12.847855 -13.422777 -14.528433 -14.522089 -10.470171 -8.4702152 -10.212776 -11.427453 -7.6986877 -6.2117659 -6.2615591 -5.2203804 -4.5164339 -4.5824967 -2.7020835 -3.5107365 -2.1591868 -1.9571153 0.18526719 0.82155797 0.63316568 1.654992 1.3045589 0.69416413 0.79640311 2.009869 2.4126834 2.3356892 2.2139549 2.1471391 1.7152973 2.6886985 2.9621466 3.0166184 2.929054 2.3393511 2.3433035 2.3469653 2.3569901 2.3717335 1.9496872 2.8759647 3.8800847 3.4182367 2.9677069 3.3933076 2.4650057 2.1025229 2.5621633 2.7726328 2.4773913 1.8696259 1.5122613 1.7835063 2.02013 2.2776287 2.077631 3.1871877 3.3939833 3.4914926 3.680653 3.9711192 4.0166274 4.0342569 4.0601056 4.0301073 3.9983119 4.3613894 5.751144 8.5008125 9.4027008 9.3922735 9.3858863 9.3987603 9.3911168 9.3818578 9.3475402 \ No newline at end of file diff --git a/data/processing/lambert.py b/data/processing/lambert.py index 05ed4a7..87d1bc4 100644 --- a/data/processing/lambert.py +++ b/data/processing/lambert.py @@ -1,3 +1,100 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:418acad81c40d8d5dcde803335a86309b51121bab736b553a60c0735ff98cc19 -size 2601 +import numpy as np + + +class Lambert: + def __init__( + self, + X0=1.7e6, + Y0=2.2e6, + lambda0=3, + phi0=43, + phi1=42.25, + phi2=43.75, + a=6378137, + e=0.081819190842622, + ): + self._X0 = X0 + self._Y0 = Y0 + + self._lambda0 = np.radians(lambda0) + self._phi0 = np.radians(phi0) + self._phi1 = np.radians(phi1) + self._phi2 = np.radians(phi2) + + self._a = a + self._e = e + + self._set_n() + self._set_rho0() + + def cartesian(self, lam, phi): + lam = np.radians(lam) + phi = np.radians(phi) + + theta = self._n * (lam - self._lambda0) + rho = self._rho(phi) + rho0 = self._rho(self._phi0) + + X = self._X0 + rho * np.sin(theta) + Y = self._Y0 + rho0 - rho * np.cos(theta) + + return X, Y + + def _set_n(self): + self._n = ( + np.log(np.cos(self._phi2) / np.cos(self._phi1)) + + ( + np.log( + (1 - (self._e * np.sin(self._phi1) ** 2)) + / (1 - (self._e * np.sin(self._phi2) ** 2)) + ) + / 2 + ) + ) / ( + np.log( + ( + np.tan(self._phi1 / 2 + np.pi / 4) + * ( + (1 - self._e * np.sin(self._phi2)) + * (1 + self._e * np.sin(self._phi1)) + ) + ** (self._e / 2) + ) + / ( + np.tan(self._phi2 / 2 + np.pi / 4) + * ( + (1 + self._e * np.sin(self._phi2)) + * (1 - self._e * np.sin(self._phi1)) + ) + ** (self._e / 2) + ) + ) + ) + + def _set_rho0(self): + self._rho0 = ( + self._a + * np.cos(self._phi1) + / (self._n * np.sqrt(1 - self._e**2 * np.sin(self._phi1) ** 2)) + * ( + np.tan(self._phi1 / 2 + np.pi / 4) + * ( + (1 - self._e * np.sin(self._phi1)) + / (1 + self._e * np.sin(self._phi1)) + ) + ** (self._e / 2) + ) + ** self._n + ) + + def _rho(self, phi): + return ( + self._rho0 + * ( + 1 + / np.tan(phi / 2 + np.pi / 4) + * ((1 + self._e * np.sin(phi)) / (1 - self._e * np.sin(phi))) + ** (self._e / 2) + ) + ** self._n + ) diff --git a/data/processing/projection.py b/data/processing/projection.py index b131e4b..8b104ff 100644 --- a/data/processing/projection.py +++ b/data/processing/projection.py @@ -1,3 +1,144 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:45448faf5475a6aac61efe9b3f69e20a7e44bdcb7e493d7e8d7c8d1cb7eac5fd -size 4370 +import argparse +import configparser +import logging +import pathlib + +import numpy as np +from scipy import interpolate +try: + import matplotlib.pyplot as plt +except ImportError: + plt = None + +from .lambert import Lambert + +parser = argparse.ArgumentParser(description="Pre-process bathymetry") +parser.add_argument("-v", "--verbose", action="count", default=0) +args = parser.parse_args() + +logging.basicConfig(level=max((10, 20 - 10 * args.verbose))) +log = logging.getLogger("bathy") + +log.info("Starting bathymetry pre-processing") +config = configparser.ConfigParser() +config.read("config.ini") + +inp_root = pathlib.Path(config.get("inp", "root")) +out_root = pathlib.Path(config.get("out", "root")) +bathy_inp = out_root.joinpath(config.get("out", "sub")) +hires_inp = inp_root.joinpath(config.get("inp", "hires")) +hstru_inp = inp_root.joinpath(config.get("inp", "hstru")) +poro_inp = inp_root.joinpath(config.get("inp", "poro")) +psize_inp = inp_root.joinpath(config.get("inp", "psize")) +bathy_out = inp_root.joinpath(config.get("out", "out")) + +log.info(f"Loading bathymetry from {bathy_inp}") +bathy_curvi = np.load(bathy_inp) + +projection = Lambert() +bathy = np.stack( + ( + *projection.cartesian(bathy_curvi[:, 0], bathy_curvi[:, 1]), + bathy_curvi[:, 2], + ), + axis=1, +) +log.debug(f"Cartesian bathy: {bathy}") + +artha_curvi = np.array( + (config.getfloat("artha", "lon"), config.getfloat("artha", "lat")) +) +buoy_curvi = np.array( + (config.getfloat("buoy", "lon"), config.getfloat("buoy", "lat")) +) + +artha = np.asarray(projection.cartesian(*artha_curvi)) +buoy = np.asarray(projection.cartesian(*buoy_curvi)) + +D = np.diff(np.stack((artha, buoy)), axis=0) +x = np.arange( + config.getfloat("out", "left", fallback=0), + np.sqrt((D**2).sum()) + config.getfloat("out", "right", fallback=0), + config.getfloat("out", "step", fallback=1), +) +theta = np.angle(D.dot((1, 1j))) + +coords = artha + (x * np.stack((np.cos(theta), np.sin(theta)))).T + +log.info("Interpolating bathymetry in 1D") +z = interpolate.griddata(bathy[:, :2], bathy[:, 2], coords) +log.debug(f"z: {z}") + +_hires = np.loadtxt(hires_inp)[::-1] +bathy_hires = np.stack( + ( + np.linspace( + 0, + (_hires.size - 1) * config.getfloat("inp", "hires_step"), + _hires.size, + ), + _hires, + ), + axis=1, +) +del _hires +log.debug(f"Bathy hires: {bathy_hires}") + +z_cr = 5 +hires_crossing = np.diff(np.signbit(bathy_hires[:, 1] - z_cr)).nonzero()[0][-1] +log.debug(f"Hires crossing: {hires_crossing}") +z_crossing = np.diff(np.signbit(z - z_cr)).nonzero()[0][-1] +log.debug(f"Z crossing: {z_crossing}") + +x_min_hires = x[z_crossing] + ( + bathy_hires[:, 0].min() - bathy_hires[hires_crossing, 0] +) +x_max_hires = x[z_crossing] + ( + bathy_hires[:, 0].max() - bathy_hires[hires_crossing, 0] +) +log.debug(f"Replacing range: [{x_min_hires},{x_max_hires}]") + +flt_x = (x > x_min_hires) & (x < x_max_hires) +hstru = np.zeros(z.shape) +poro = np.zeros(z.shape) +psize = np.zeros(z.shape) +if config.getboolean("out", "no_breakwater", fallback=False): + z[flt_x] = z[flt_x][-1] +else: + z[flt_x] = interpolate.griddata( + (bathy_hires[:, 0],), + bathy_hires[:, 1], + (x[flt_x] - x[z_crossing] + bathy_hires[hires_crossing, 0]), + ) + + hstru_in = np.loadtxt(hstru_inp)[::-1] + hstru[flt_x] = interpolate.griddata( + (bathy_hires[:,0],), + hstru_in, + (x[flt_x] - x[z_crossing] + bathy_hires[hires_crossing, 0]), + ) + + poro_in = np.loadtxt(poro_inp)[::-1] + poro[flt_x] = interpolate.griddata( + (bathy_hires[:,0],), + poro_in, + (x[flt_x] - x[z_crossing] + bathy_hires[hires_crossing, 0]), + ) + + psize_in = np.loadtxt(psize_inp)[::-1] + psize[flt_x] = interpolate.griddata( + (bathy_hires[:,0],), + psize_in, + (x[flt_x] - x[z_crossing] + bathy_hires[hires_crossing, 0]), + ) + +np.savetxt(out_root.joinpath("bathy.dat"), z[::-1], newline=" ") +np.savetxt(out_root.joinpath("hstru.dat"), hstru[::-1], newline=" ") +np.savetxt(out_root.joinpath("poro.dat"), poro[::-1], newline=" ") +np.savetxt(out_root.joinpath("psize.dat"), psize[::-1], newline=" ") + +if plt is not None and config.getboolean("out", "plot", fallback=False): + fig, ax = plt.subplots() + ax.plot(-x, z, color="k") + ax.fill_between(-x, z+hstru, z, color="k", alpha=.2) + plt.show(block=True) diff --git a/data/processing/subdomain.py b/data/processing/subdomain.py index d5c585b..a2d6e13 100644 --- a/data/processing/subdomain.py +++ b/data/processing/subdomain.py @@ -1,3 +1,53 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cee15595a8dac4e684da41c7b1cb9b80bd091a6879407ad516114d46addd0af0 -size 1435 +import argparse +import configparser +import logging +import pathlib + +import numpy as np + +parser = argparse.ArgumentParser(description="Pre-process bathymetry") +parser.add_argument("-v", "--verbose", action="count", default=0) +args = parser.parse_args() + +logging.basicConfig(level=max((10, 20 - 10 * args.verbose))) +log = logging.getLogger("bathy") + +log.info("Starting bathymetry pre-processing") +config = configparser.ConfigParser() +config.read("config.ini") + +artha = np.array( + (config.getfloat("artha", "lon"), config.getfloat("artha", "lat")) +) +buoy = np.array( + (config.getfloat("buoy", "lon"), config.getfloat("buoy", "lat")) +) +log.debug(f"artha: {artha}") +log.debug(f"buoy: {buoy}") + +domain = np.stack((artha, buoy)) +domain.sort(axis=0) +log.debug(f"domain: {domain}") + +domain[0] -= 0.002 +domain[1] += 0.002 +log.debug(f"domain: {domain}") + +inp_root = pathlib.Path(config.get("inp", "root")) +out_root = pathlib.Path(config.get("out", "root")) +bathy_inp = inp_root.joinpath(config.get("inp", "base")) +bathy_out = out_root.joinpath(config.get("out", "sub")) +log.info(f"Reading bathymetry from '{bathy_inp}'") +raw_bathy = np.loadtxt(bathy_inp) +log.debug(f"Initial size: {raw_bathy.shape}") + +bathy = raw_bathy[ + ((raw_bathy[:, :2] > domain[0]) & (raw_bathy[:, :2] < domain[1])).all( + axis=1 + ) +] +del raw_bathy +log.debug(f"Final size: {bathy.shape}") + +log.info(f"Saving subdomain to 'bathy'") +np.save(bathy_out, bathy) diff --git a/olaflow/.gitignore b/olaflow/.gitignore index ebec7a2..b825560 100644 --- a/olaflow/.gitignore +++ b/olaflow/.gitignore @@ -1,3 +1,2 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cf4ca7f0b967de32ac39d5114affc278588a6e19ee759de9787b1b027d85ca93 -size 12 +/inp* +/out* diff --git a/olaflow/config.ini b/olaflow/config.ini index ee1784c..99bfbad 100644 --- a/olaflow/config.ini +++ b/olaflow/config.ini @@ -1,3 +1,12 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4cca67e7132cdb83b3539560426db3ff1ef47501b08aab6e70c20058999b709b -size 181 +[swash] +np_out=../swash/inp_post + +[bathy] +bathy=../swash/data/bathyhires.dat +hstru=../swash/data/Hstru.dat +scale=[0.5,1,1] +translate=[-149,0,0] +out=out_bathy + +[olaflow] +root=inp_of diff --git a/olaflow/of/0.org/U b/olaflow/of/0.org/U index 2ac0eab..d8e9345 100644 --- a/olaflow/of/0.org/U +++ b/olaflow/of/0.org/U @@ -1,3 +1,67 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:02a49b6841af79ff0298086c070b14a5cba96ddc2e3d4a6e47ec893a41ffcabc -size 1763 +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.7.x | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + inlet + { + type waveVelocity; + waveDictName waveDict; + value uniform (0 0 0); + } + atmosphere + { + type pressureInletOutletVelocity; + value uniform (0 0 0); + } + "wall." + { + type fixedValue; + value uniform (0 0 0); + } + bathy + { + type fixedValue; + value uniform (0 0 0); + } + bloc0 + { + type fixedValue; + value uniform (0 0 0); + } + bloc1 + { + type fixedValue; + value uniform (0 0 0); + } + defaultFaces + { + type empty; + } + outlet + { + type waveAbsorption2DVelocity; + value uniform (0 0 0); + } +} + + +// ************************************************************************* // diff --git a/olaflow/of/0.org/alpha.water b/olaflow/of/0.org/alpha.water index eb467d2..49520af 100644 --- a/olaflow/of/0.org/alpha.water +++ b/olaflow/of/0.org/alpha.water @@ -1,3 +1,61 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f5815c4d0fe173050d279c74f01a350fdb5762f6c0c7744b6f59da2d9366750c -size 1543 +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.5-dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object alpha.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type waveAlpha; + waveDictName waveDict; + value uniform 0; + } + outlet + { + type zeroGradient; + } + "wall." + { + type zeroGradient; + } + bathy + { + type zeroGradient; + } + bloc0 + { + type zeroGradient; + } + bloc1 + { + type zeroGradient; + } + defaultFaces + { + type empty; + } + atmosphere + { + type inletOutlet; + inletValue uniform 0; + value uniform 0; + } +} + +// ************************************************************************* // diff --git a/olaflow/of/0.org/alpha.water.org b/olaflow/of/0.org/alpha.water.org index eb467d2..49520af 100644 --- a/olaflow/of/0.org/alpha.water.org +++ b/olaflow/of/0.org/alpha.water.org @@ -1,3 +1,61 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f5815c4d0fe173050d279c74f01a350fdb5762f6c0c7744b6f59da2d9366750c -size 1543 +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.5-dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object alpha.water; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type waveAlpha; + waveDictName waveDict; + value uniform 0; + } + outlet + { + type zeroGradient; + } + "wall." + { + type zeroGradient; + } + bathy + { + type zeroGradient; + } + bloc0 + { + type zeroGradient; + } + bloc1 + { + type zeroGradient; + } + defaultFaces + { + type empty; + } + atmosphere + { + type inletOutlet; + inletValue uniform 0; + value uniform 0; + } +} + +// ************************************************************************* // diff --git a/olaflow/of/0.org/epsilon b/olaflow/of/0.org/epsilon index e2b302d..706ec43 100644 --- a/olaflow/of/0.org/epsilon +++ b/olaflow/of/0.org/epsilon @@ -1,3 +1,68 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cb8b90a6e3bf668cf9f0394601eeea1ec4ad1ded3d5cb5f7e2cedaaa08a4ed6e -size 1836 +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.1.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform 0.0001; + +boundaryField +{ + inlet + { + type inletOutlet; + inletValue uniform 0.0001; + value uniform 0.0001; + } + outlet + { + type inletOutlet; + inletValue uniform 0.0001; + value uniform 0.0001; + } + "wall." + { + type epsilonWallFunction; + value uniform 0.0001; + } + bathy + { + type epsilonWallFunction; + value uniform 0.0001; + } + bloc0 + { + type epsilonWallFunction; + value uniform 0.0001; + } + bloc1 + { + type epsilonWallFunction; + value uniform 0.0001; + } + defaultFaces + { + type empty; + } + atmosphere + { + type inletOutlet; + inletValue uniform 0.0001; + value uniform 0.0001; + } +} + + +// ************************************************************************* // diff --git a/olaflow/of/0.org/k b/olaflow/of/0.org/k index 7ec0394..83de11c 100644 --- a/olaflow/of/0.org/k +++ b/olaflow/of/0.org/k @@ -1,3 +1,69 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3a05abdcb6113cffadd6a238f6a7a8dca034cbd0d2ea4c06f714fdf0cddf0d24 -size 1879 +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.7.1 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.00000001; + +boundaryField +{ + inlet + { + type inletOutlet; + inletValue uniform 0.00000001; + value uniform 0.00000001; + } + outlet + { + type inletOutlet; + inletValue uniform 0.00000001; + value uniform 0.00000001; + } + "wall." + { + type kqRWallFunction; + value uniform 0.00000001; + } + bathy + { + type kqRWallFunction; + value uniform 0.00000001; + } + bloc0 + { + type kqRWallFunction; + value uniform 0.00000001; + } + bloc1 + { + type kqRWallFunction; + value uniform 0.00000001; + } + defaultFaces + { + type empty; + } + atmosphere + { + type inletOutlet; + inletValue uniform 0.00000001; + value uniform 0.00000001; + } +} + + +// ************************************************************************* // diff --git a/olaflow/of/0.org/nut b/olaflow/of/0.org/nut index 61b9d9a..29da2ca 100644 --- a/olaflow/of/0.org/nut +++ b/olaflow/of/0.org/nut @@ -1,3 +1,78 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:49fb3dca6cb0039e6a2290ee1cf416ffd8f724e47f43f3c81d86545fa4ef0529 -size 2034 +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 3.0.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value uniform 0; + } + outlet + { + type calculated; + value uniform 0; + } + "wall." + { + type nutkWallFunction; + Cmu 0.09; + kappa 0.41; + E 9.8; + value uniform 0; + } + atmosphere + { + type calculated; + value uniform 0; + } + defaultFaces + { + type empty; + } + bathy + { + type nutkWallFunction; + Cmu 0.09; + kappa 0.41; + E 9.8; + value uniform 0; + } + bloc0 + { + type nutkWallFunction; + Cmu 0.09; + kappa 0.41; + E 9.8; + value uniform 0; + } + bloc1 + { + type nutkWallFunction; + Cmu 0.09; + kappa 0.41; + E 9.8; + value uniform 0; + } +} + + +// ************************************************************************* // diff --git a/olaflow/of/0.org/omega b/olaflow/of/0.org/omega index 1b2da9f..98f8314 100644 --- a/olaflow/of/0.org/omega +++ b/olaflow/of/0.org/omega @@ -1,3 +1,68 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:27f00229cb842a16851724de3ff0c4444e578950745e000b1f7478f03eda6a2d -size 1812 +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.7.1 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 0.001; + +boundaryField +{ + inlet + { + type inletOutlet; + inletValue uniform 0.001; + value uniform 0.001; + } + outlet + { + type inletOutlet; + inletValue uniform 0.001; + value uniform 0.001; + } + "wall." + { + type omegaWallFunction; + value uniform 0.001; + } + bathy + { + type omegaWallFunction; + value uniform 0.001; + } + bloc0 + { + type omegaWallFunction; + value uniform 0.001; + } + bloc1 + { + type omegaWallFunction; + value uniform 0.001; + } + defaultFaces + { + type empty; + } + atmosphere + { + type inletOutlet; + inletValue uniform 0.001; + value uniform 0.001; + } +} + + +// ************************************************************************* // diff --git a/olaflow/of/0.org/p_rgh b/olaflow/of/0.org/p_rgh index 185c51c..eb45d1a 100644 --- a/olaflow/of/0.org/p_rgh +++ b/olaflow/of/0.org/p_rgh @@ -1,3 +1,71 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c2896667d7304d2edd00eb1e04b7e627d3213d4a15ed666abcbe0b42573298b9 -size 1861 +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.5-dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p_rgh; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + "wall." + { + type fixedFluxPressure; + value uniform 0; + } + bathy + { + type fixedFluxPressure; + value uniform 0; + } + bloc0 + { + type fixedFluxPressure; + value uniform 0; + } + bloc1 + { + type fixedFluxPressure; + value uniform 0; + } + defaultFaces + { + type empty; + } + outlet + { + type fixedFluxPressure; + value uniform 0; + } + inlet + { + type fixedFluxPressure; + value uniform 0; + } + atmosphere + { + type totalPressure; + U U; + phi phi; + rho rho; + psi none; + gamma 1; + p0 uniform 0; + value uniform 0; + } +} + + +// ************************************************************************* // diff --git a/olaflow/of/0.org/porosityIndex b/olaflow/of/0.org/porosityIndex index 0d93cfd..b9c5790 100644 --- a/olaflow/of/0.org/porosityIndex +++ b/olaflow/of/0.org/porosityIndex @@ -1,3 +1,59 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:03affa8787f68693c98769149a76374690e7f36b80583f2681ec34f24ea47286 -size 1432 +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.1.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object porosityIndex; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } + "wall." + { + type zeroGradient; + } + bathy + { + type zeroGradient; + } + bloc0 + { + type zeroGradient; + } + bloc1 + { + type zeroGradient; + } + defaultFaces + { + type empty; + } + atmosphere + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/olaflow/of/0.org/porosityIndex.org b/olaflow/of/0.org/porosityIndex.org index 0d93cfd..b9c5790 100644 --- a/olaflow/of/0.org/porosityIndex.org +++ b/olaflow/of/0.org/porosityIndex.org @@ -1,3 +1,59 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:03affa8787f68693c98769149a76374690e7f36b80583f2681ec34f24ea47286 -size 1432 +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.1.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object porosityIndex; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } + "wall." + { + type zeroGradient; + } + bathy + { + type zeroGradient; + } + bloc0 + { + type zeroGradient; + } + bloc1 + { + type zeroGradient; + } + defaultFaces + { + type empty; + } + atmosphere + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/olaflow/of/constant/g b/olaflow/of/constant/g index 964a894..c1dbc16 100644 --- a/olaflow/of/constant/g +++ b/olaflow/of/constant/g @@ -1,3 +1,22 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8a11f81533737d6e1f1a477323b9f8b4a2ae2de5bcb746517a9f9e9f5cdeb337 -size 939 +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.1.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class uniformDimensionedVectorField; + location "constant"; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value ( 0 0 -9.81 ); + + +// ************************************************************************* // diff --git a/olaflow/of/constant/porosityDict b/olaflow/of/constant/porosityDict index 278eb6e..6fbce5d 100644 --- a/olaflow/of/constant/porosityDict +++ b/olaflow/of/constant/porosityDict @@ -1,3 +1,29 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5e1095d33bb97b00d5189edfe97f4269412bb1d200820e5eb8a41116d34b119f -size 1149 +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.1.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object porosityDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// Materials: clear region, core, secondary armour layer, primary armour layer +// a,b,c: tuning parameters +a 2(0 50); +b 2(0 1.2); +c 2(0 0.34); + +// D50: mean nominal diameter +D50 2(1 4); +// porosity (phi) +porosity 2(1 0.5); + +// ************************************************************************* // diff --git a/olaflow/of/constant/transportProperties b/olaflow/of/constant/transportProperties index 361278c..d3edb56 100644 --- a/olaflow/of/constant/transportProperties +++ b/olaflow/of/constant/transportProperties @@ -1,3 +1,37 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f4561c01839ffcda3d0fd7821c09353dcd2702767a6e7a5f2bbbd0f3326f9a32 -size 1189 +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 3.0.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +phases (water air); + +water +{ + transportModel Newtonian; + nu [0 2 -1 0 0 0 0] 1e-06; + rho [1 -3 0 0 0 0 0] 1000; +} + +air +{ + transportModel Newtonian; + nu [0 2 -1 0 0 0 0] 1.48e-05; + rho [1 -3 0 0 0 0 0] 1; +} + +sigma [1 0 -2 0 0 0 0] 0.07; + + +// ************************************************************************* // diff --git a/olaflow/of/constant/turbulenceProperties b/olaflow/of/constant/turbulenceProperties index 5a3aeef..35b1307 100644 --- a/olaflow/of/constant/turbulenceProperties +++ b/olaflow/of/constant/turbulenceProperties @@ -1,3 +1,29 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f182a4876e5e432ecc3076764d476ebbc69e71c4ea96a580dbf2aea719cc8504 -size 983 +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.1.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + RASModel kEpsilon; + + turbulence on; + + printCoeffs on; +} + +// ************************************************************************* // diff --git a/olaflow/of/constant/turbulenceProperties_keps b/olaflow/of/constant/turbulenceProperties_keps index 5a3aeef..35b1307 100644 --- a/olaflow/of/constant/turbulenceProperties_keps +++ b/olaflow/of/constant/turbulenceProperties_keps @@ -1,3 +1,29 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f182a4876e5e432ecc3076764d476ebbc69e71c4ea96a580dbf2aea719cc8504 -size 983 +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.1.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + RASModel kEpsilon; + + turbulence on; + + printCoeffs on; +} + +// ************************************************************************* // diff --git a/olaflow/of/constant/turbulenceProperties_sst b/olaflow/of/constant/turbulenceProperties_sst index b979d77..187f845 100644 --- a/olaflow/of/constant/turbulenceProperties_sst +++ b/olaflow/of/constant/turbulenceProperties_sst @@ -1,3 +1,29 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:16bfe34d3f75df510cd7ee6f83704f42f2adf1c67fcb19193c0f5a3c2b782928 -size 984 +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.1.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + RASModel kOmegaSST; + + turbulence on; + + printCoeffs on; +} + +// ************************************************************************* // diff --git a/olaflow/of/constant/waveDict b/olaflow/of/constant/waveDict index dbbfc02..d274bbd 100644 --- a/olaflow/of/constant/waveDict +++ b/olaflow/of/constant/waveDict @@ -1,3 +1,37 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f9a10f9231f198dac0137b50d4260486bd98a595827a5a73cab0bde679645892 -size 1202 +/*---------------------------------------------------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.3 | +| \\ / A nd | Web: http://www.openfoam.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object waveDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +//waveType regular; +//waveTheory cnoidal; +//genAbs 1; +//absDir 0.0; +//nPaddles 1; +//wavePeriod 20.0; +//waveHeight 15.0; +//waveDir 0.0; +//wavePhase 0.; +//tSmooth 0.0; + +waveType solitary; +waveTheory Boussinesq; +genAbs 0; +absDir 0.0; +nPaddles 1; +waveHeight 7.5; +waveDir 0.0; + +// ************************************************************************* // diff --git a/olaflow/of/system/blockMeshDict b/olaflow/of/system/blockMeshDict index 5cb3f58..922f7de 100644 --- a/olaflow/of/system/blockMeshDict +++ b/olaflow/of/system/blockMeshDict @@ -1,3 +1,81 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f80bbe1742a2cb4f424a5cf3d9534e8ccf1dd01d9ce30b559de0519b1a56f182 -size 1550 +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.7.1 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +scale 1; + +vertices +( + (0 0 -30) + (150 0 -30) + (150 0 20) + (0 0 20) + (0 1 -30) + (150 1 -30) + (150 1 20) + (0 1 20) +); + +blocks +( + hex (0 1 5 4 3 2 6 7) (300 1 100) simpleGrading (1 1 1) +); + +edges +( +); + +boundary +( + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + outlet + { + type patch; + faces + ( + (1 5 6 2) + ); + } + wall1 + { + type wall; + faces + ( + (0 1 5 4) + ); + } + atmosphere + { + type patch; + faces + ( + (3 2 6 7) + ); + } +); + +mergePatchPairs +( +); + +// ************************************************************************* // diff --git a/olaflow/of/system/controlDict b/olaflow/of/system/controlDict index db78e0b..8c12c73 100644 --- a/olaflow/of/system/controlDict +++ b/olaflow/of/system/controlDict @@ -1,3 +1,138 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fde2446149b2142dfe72f615b0398e46609064847d10cb081567faa1dffaa3c0 -size 3519 +/*---------------------------------------------------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.3 | +| \\ / A nd | Web: http://www.openfoam.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + location "system"; + class dictionary; + object controlDict; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application olaFlow; + +startFrom latestTime; + +startTime 0; + +stopAt endTime; + +endTime 60; + +deltaT 0.1; + +writeControl adjustableRunTime; + +writeInterval 0.5; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +compression off; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +adjustTimeStep yes; + +maxCo 0.45; +maxAlphaCo 0.45; + +maxDeltaT 0.5; +/* +functions +{ + gaugesVOF + { + type sets; + libs ("libsampling.so"); + writeControl outputTime; + writeInterval 1; + setFormat raw; + surfaceFormat raw; + interpolationScheme cell; + fields ( alpha.water ); + sets + ( + GaugeVOF01 + { + type lineCellFace; + axis xyz; + start ( 0.5 0.001 0 ); + end ( 0.5 0.001 1.2 ); + } + GaugeVOF02 + { + type lineCellFace; + axis xyz; + start ( 9.25 0.001 0 ); + end ( 9.25 0.001 1.2 ); + } + GaugeVOF03 + { + type lineCellFace; + axis xyz; + start ( 15.75 0.001 0 ); + end ( 15.75 0.001 1.2 ); + } + GaugeVOF04 + { + type lineCellFace; + axis xyz; + start ( 17.75 0.001 0 ); + end ( 17.75 0.001 1.2 ); + } + GaugeVOF05 + { + type lineCellFace; + axis xyz; + start ( 21.1 0.001 0 ); + end ( 21.1 0.001 1.2 ); + } + ); + } + gaugesP + { + type sets; + libs ("libsampling.so"); + writeControl outputTime; + writeInterval 1; + setFormat raw; + surfaceFormat raw; + interpolationScheme cellPointFace; + fields ( p ); + sets + ( + GaugesP + { + type boundaryPoints; + axis xyz; + patches 1(caisson); + points ((18.0 0.01 0.75) + (18.00 0.01 0.80) + (18.00 0.01 0.85) + (18.00 0.01 0.95) + (18.01 0.01 0.70) + (18.25 0.01 0.70) + (18.50 0.01 0.70) + (18.75 0.01 0.70)); + maxDistance 0.01; + } + ); + } +} +*/ +// ************************************************************************* // diff --git a/olaflow/of/system/decomposeParDict b/olaflow/of/system/decomposeParDict index 8fe05e9..3407e5d 100644 --- a/olaflow/of/system/decomposeParDict +++ b/olaflow/of/system/decomposeParDict @@ -1,3 +1,50 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ee25e2be0f0a2f9716af18db406d00c528a38741b943ce61e517db655e07f895 -size 1247 +/*---------------------------------------------------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.3 | +| \\ / A nd | Web: http://www.openfoam.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + location "system"; + class dictionary; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +method simple; + +simpleCoeffs +{ + n ( 2 2 1 ); + delta 0.001; +} + +hierarchicalCoeffs +{ + n ( 1 1 1 ); + delta 0.001; + order xyz; +} + +metisCoeffs +{ + processorWeights ( 1 1 1 1 ); +} + +manualCoeffs +{ + dataFile ""; +} + +distributed no; + +roots (); + + +// ************************************************************************* // diff --git a/olaflow/of/system/fvSchemes b/olaflow/of/system/fvSchemes index c175de3..c0ac5b1 100644 --- a/olaflow/of/system/fvSchemes +++ b/olaflow/of/system/fvSchemes @@ -1,3 +1,79 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7fa4d5a860648baa40a54c3f4e9f8913e4e45c7d9276a009edcff4e5d24d9552 -size 2101 +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + div(rhoPhi,U) Gauss limitedLinearV 1; + div(U) Gauss linear; + div((rhoPhi|interpolate(porosity)),U) Gauss limitedLinearV 1; + div(rhoPhiPor,UPor) Gauss limitedLinearV 1; + div(rhoPhi,UPor) Gauss limitedLinearV 1; + div(rhoPhiPor,U) Gauss limitedLinearV 1; + div(phi,alpha) Gauss vanLeer; + div(phirb,alpha) Gauss interfaceCompression; + div((muEff*dev(T(grad(U))))) Gauss linear; + div(phi,k) Gauss upwind; + div(phi,epsilon) Gauss upwind; + div((phi|interpolate(porosity)),k) Gauss upwind; + div((phi*interpolate(rho)),k) Gauss upwind; + div((phi|interpolate(porosity)),epsilon) Gauss upwind; + div(phi,omega) Gauss upwind; + div((phi|interpolate(porosity)),omega) Gauss upwind; + div((phi*interpolate(rho)),omega) Gauss upwind; + div((phi*interpolate(rho)),epsilon) Gauss upwind; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +fluxRequired +{ + default no; + p_rgh; + pcorr; + alpha.water; +} + +wallDist +{ + method meshWave; +} + + +// ************************************************************************* // diff --git a/olaflow/of/system/fvSolution b/olaflow/of/system/fvSolution index f79ac7d..ca48d43 100644 --- a/olaflow/of/system/fvSolution +++ b/olaflow/of/system/fvSolution @@ -1,3 +1,95 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:43c8a02d083d05bca2e2822ad7c99bb242bd6ccde563e3c6fc95f523c69dae14 -size 2122 +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "alpha.water.*" + { + nAlphaCorr 1; + nAlphaSubCycles 2; + alphaOuterCorrectors yes; + cAlpha 1; + + MULESCorr no; + nLimiterIter 3; + + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-8; + relTol 0; + } + + "pcorr.*" + { + solver PCG; + preconditioner DIC; + tolerance 1e-5; + relTol 0; + } + + p_rgh + { + solver PCG; + preconditioner DIC; + tolerance 1e-07; + relTol 0.05; + } + + p_rghFinal + { + $p_rgh; + relTol 0; + } + + U + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-06; + relTol 0; + } + + "(k|epsilon|omega|B|nuTilda).*" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-08; + relTol 0; + } +} + +PIMPLE +{ + momentumPredictor no; + nOuterCorrectors 1; + nCorrectors 3; + nNonOrthogonalCorrectors 0; +} + +relaxationFactors +{ + fields + { + } + equations + { + ".*" 1; + } +} + + +// ************************************************************************* // diff --git a/olaflow/of/system/setFieldsDict b/olaflow/of/system/setFieldsDict index eca311b..1cb3097 100644 --- a/olaflow/of/system/setFieldsDict +++ b/olaflow/of/system/setFieldsDict @@ -1,3 +1,53 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:991d47c8947d27dcebd777d6da8c1812bfdeac103edb36bf9b7410b04dba84dc -size 1873 +/*---------------------------------------------------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.3 | +| \\ / A nd | Web: http://www.openfoam.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object setFieldsDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +defaultFieldValues +( + volScalarFieldValue alpha.water 0 + volScalarFieldValue porosityIndex 0 +); + +regions +( + boxToCell + { + box (-10 -10 -100) (500 10 5); + + fieldValues + ( + volScalarFieldValue alpha.water 1 + ); + } + surfaceToCell + { + file "./constant/triSurface/rubble.stl"; + outsidePoints ((0 0 0)); // definition of outside + includeCut true; // cells cut by surface + includeInside true; // cells not on outside of surf + includeOutside false; // cells on outside of surf + nearDistance -1; // cells with centre near surf + // (set to -1 if not used) + curvature -100; // cells within nearDistance + // and near surf curvature + // (set to -100 if not used) + + fieldValues + ( + volScalarFieldValue porosityIndex 1 + ); + } +); diff --git a/olaflow/of/system/snappyHexMeshDict b/olaflow/of/system/snappyHexMeshDict index 412cc7b..489169b 100644 --- a/olaflow/of/system/snappyHexMeshDict +++ b/olaflow/of/system/snappyHexMeshDict @@ -1,3 +1,359 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ad5676a91a20dda1cde9062f5f91090bc1cb740390381802f7222b681d81b74b -size 10275 +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.7.1 | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object snappyHexMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// Which of the steps to run +castellatedMesh true; +snap false; +addLayers false; + + +// Geometry. Definition of all surfaces. All surfaces are of class +// searchableSurface. +// Surfaces are used +// - to specify refinement for any mesh cell intersecting it +// - to specify refinement for any mesh cell inside/outside/near +// - to 'snap' the mesh boundary to the surface +geometry +{ + + bloc0.stl + { + type triSurfaceMesh; + name bloc0; + } + bloc1.stl + { + type triSurfaceMesh; + name bloc1; + } + + bathy.stl + { + type triSurfaceMesh; + name bathy; + } + +}; + + + +// Settings for the castellatedMesh generation. +castellatedMeshControls +{ + + // Refinement parameters + // ~~~~~~~~~~~~~~~~~~~~~ + + // If local number of cells is >= maxLocalCells on any processor + // switches from from refinement followed by balancing + // (current method) to (weighted) balancing before refinement. + maxLocalCells 10000000; + + // Overall cell limit (approximately). Refinement will stop immediately + // upon reaching this number so a refinement level might not complete. + // Note that this is the number of cells before removing the part which + // is not 'visible' from the keepPoint. The final number of cells might + // actually be a lot less. + maxGlobalCells 10000000; + + // The surface refinement loop might spend lots of iterations refining just a + // few cells. This setting will cause refinement to stop if <= minimumRefine + // are selected for refinement. Note: it will at least do one iteration + // (unless the number of cells to refine is 0) + minRefinementCells 10; + + // Allow a certain level of imbalance during refining + // (since balancing is quite expensive) + // Expressed as fraction of perfect balance (= overall number of cells / + // nProcs). 0=balance always. + maxLoadUnbalance 0.10; + + + // Number of buffer layers between different levels. + // 1 means normal 2:1 refinement restriction, larger means slower + // refinement. + nCellsBetweenLevels 3; + + + + // Explicit feature edge refinement + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + // Specifies a level for any cell intersected by its edges. + // This is a featureEdgeMesh, read from constant/triSurface for now. + features + ( + //{ + // file "tanque.stl"; + // level 2; + //} + ); + + + + // Surface based refinement + // ~~~~~~~~~~~~~~~~~~~~~~~~ + + // Specifies two levels for every surface. The first is the minimum level, + // every cell intersecting a surface gets refined up to the minimum level. + // The second level is the maximum level. Cells that 'see' multiple + // intersections where the intersections make an + // angle > resolveFeatureAngle get refined up to the maximum level. + + refinementSurfaces + { + + //caisson + //{ + // // Surface-wise min and max refinement level + // level ( 1 1 ); + //} + bathy + { + level ( 0 0 ); + } + bloc0 + { + level ( 0 0 ); + } + bloc1 + { + level ( 0 0 ); + } + + } + + // Resolve sharp angles + resolveFeatureAngle 65; + + + // Region-wise refinement + // ~~~~~~~~~~~~~~~~~~~~~~ + + // Specifies refinement level for cells in relation to a surface. One of + // three modes + // - distance. 'levels' specifies per distance to the surface the + // wanted refinement level. The distances need to be specified in + // descending order. + // - inside. 'levels' is only one entry and only the level is used. All + // cells inside the surface get refined up to the level. The surface + // needs to be closed for this to be possible. + // - outside. Same but cells outside. + + refinementRegions + { + //mode distance; + //levels + //( + // (1.0 4) + // (2.0 3) + //); + } + + + // Mesh selection + // ~~~~~~~~~~~~~~ + + // After refinement patches get added for all refinementSurfaces and + // all cells intersecting the surfaces get put into these patches. The + // section reachable from the locationInMesh is kept. + // NOTE: This point should never be on a face, always inside a cell, even + // after refinement. + locationInMesh (0.25 0.01 0.25); + + // Whether any faceZones (as specified in the refinementSurfaces) + // are only on the boundary of corresponding cellZones or also allow + // free-standing zone faces. Not used if there are no faceZones. + allowFreeStandingZoneFaces true; +} + + + +// Settings for the snapping. +snapControls +{ + //- Number of patch smoothing iterations before finding correspondence + // to surface + nSmoothPatch 3; + + //- Relative distance for points to be attracted by surface feature point + // or edge. True distance is this factor times local + // maximum edge length. + tolerance 4.0; + + //- Number of mesh displacement relaxation iterations. + nSolveIter 30; + + //- Maximum number of snapping relaxation iterations. Should stop + // before upon reaching a correct mesh. + nRelaxIter 5; +} + + + +// Settings for the layer addition. +addLayersControls +{ + // Are the thickness parameters below relative to the undistorted + // size of the refined cell outside layer (true) or absolute sizes (false). + relativeSizes true; + + // Per final patch (so not geometry!) the layer information + layers + { + //batimetria_patch0 + //{ + // nSurfaceLayers 2; //was 1 //was 4 + //} + } + + // Expansion factor for layer mesh + expansionRatio 1.0; + + //- Wanted thickness of final added cell layer. If multiple layers + // is the thickness of the layer furthest away from the wall. + // See relativeSizes parameter. + finalLayerThickness 0.3; + + //- Minimum thickness of cell layer. If for any reason layer + // cannot be above minThickness do not add layer. + // Relative to undistorted size of cell outside layer. + minThickness 0.1; + + //- If points get not extruded do nGrow layers of connected faces that are + // also not grown. This helps convergence of the layer addition process + // close to features. + nGrow 1; + + + // Advanced settings + + //- When not to extrude surface. 0 is flat surface, 90 is when two faces + // make straight angle. + featureAngle 30; + + //- Maximum number of snapping relaxation iterations. Should stop + // before upon reaching a correct mesh. + nRelaxIter 3; + + // Number of smoothing iterations of surface normals + nSmoothSurfaceNormals 1; + + // Number of smoothing iterations of interior mesh movement direction + nSmoothNormals 3; + + // Smooth layer thickness over surface patches + nSmoothThickness 10; + + // Stop layer growth on highly warped cells + maxFaceThicknessRatio 0.5; + + // Reduce layer growth where ratio thickness to medial + // distance is large + maxThicknessToMedialRatio 0.3; + + // Angle used to pick up medial axis points + minMedianAxisAngle 130; + + // Create buffer region for new layer terminations + nBufferCellsNoExtrude 0; + + // Overall max number of layer addition iterations + nLayerIter 50; +} + + + +// Generic mesh quality settings. At any undoable phase these determine +// where to undo. +meshQualityControls +{ + //- Maximum non-orthogonality allowed. Set to 180 to disable. + maxNonOrtho 65; + + //- Max skewness allowed. Set to <0 to disable. + maxBoundarySkewness 20; + maxInternalSkewness 4; + + //- Max concaveness allowed. Is angle (in degrees) below which concavity + // is allowed. 0 is straight face, <0 would be convex face. + // Set to 180 to disable. + maxConcave 80; + + //- Minimum projected area v.s. actual area. Set to -1 to disable. + minFlatness 0.5; + + //- Minimum pyramid volume. Is absolute volume of cell pyramid. + // Set to a sensible fraction of the smallest cell volume expected. + // Set to very negative number (e.g. -1E30) to disable. + minVol 1e-13; + + //- Minimum quality of the tet formed by the face-centre + // and variable base point minimum decomposition triangles and + // the cell centre. This has to be a positive number for tracking + // to work. Set to very negative number (e.g. -1E30) to + // disable. + // <0 = inside out tet, + // 0 = flat tet + // 1 = regular tet + minTetQuality 1e-30; + + //- Minimum face area. Set to <0 to disable. + minArea -1; + + //- Minimum face twist. Set to <-1 to disable. dot product of face normal + //- and face centre triangles normal + minTwist 0.02; + + //- minimum normalised cell determinant + //- 1 = hex, <= 0 = folded or flattened illegal cell + minDeterminant 0.001; + + //- minFaceWeight (0 -> 0.5) + minFaceWeight 0.02; + + //- minVolRatio (0 -> 1) + minVolRatio 0.01; + + //must be >0 for Fluent compatibility + minTriangleTwist -1; + + + // Advanced + + //- Number of error distribution iterations + nSmoothScale 4; + //- amount to scale back displacement at error points + errorReduction 0.75; +} + + +// Advanced + +// Flags for optional output +// 0 : only write final meshes +// 1 : write intermediate meshes +// 2 : write volScalarField with cellLevel for postprocessing +// 4 : write current intersections as .obj files +debug 0; + + +// Merge tolerance. Is fraction of overall bounding box of initial mesh. +// Note: the write tolerance needs to be higher than this. +mergeTolerance 1E-6; + + +// ************************************************************************* // diff --git a/olaflow/processing/bathy.py b/olaflow/processing/bathy.py index 54a54ba..4138383 100644 --- a/olaflow/processing/bathy.py +++ b/olaflow/processing/bathy.py @@ -1,3 +1,39 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3f12d83a60bae2c19ae50e105a1b2176d5d35cb17d9e9d73f10aefdf225a4003 -size 1024 +import argparse +import configparser +import logging +import pathlib + +import numpy as np + +from .stl import stl_from_1d + +parser = argparse.ArgumentParser( + description="Convert swash output to olaFlow input" +) +parser.add_argument("-v", "--verbose", action="count", default=0) +args = parser.parse_args() + +logging.basicConfig(level=max((10, 20 - 10 * args.verbose))) +log = logging.getLogger("sws_ola") + +log.info("Starting sws -> olaFlow converter") +config = configparser.ConfigParser() +config.read("config.ini") + +bathy = np.loadtxt(config.get("bathy", "bathy")) +poro = bathy + np.loadtxt(config.get("bathy", "hstru")) + +out = pathlib.Path(config.get("bathy", "out")) +out.mkdir(exist_ok=True) +stl_from_1d( + bathy, + out.joinpath("bathy.stl"), + config.get("bathy", "scale", fallback=[1, 1, 1]), + config.get("bathy", "translate", fallback=[0, 0, 0]), +) +stl_from_1d( + poro, + out.joinpath("poro.stl"), + config.get("bathy", "scale", fallback=[1, 1, 1]), + config.get("bathy", "translate", fallback=[0, 0, 0]), +) diff --git a/olaflow/processing/olaflow.py b/olaflow/processing/olaflow.py index 7060cdb..520289b 100644 --- a/olaflow/processing/olaflow.py +++ b/olaflow/processing/olaflow.py @@ -1,3 +1,38 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2ec88dc3c20627b5f6d383e748ac7876415cacd4aff2cce3cb39bfdeb713b858 -size 857 +import re + +from fluidfoam import readof + + +class OFModel: + def __init__(self, root): + self._root = root + + def read_mesh(self): + self._x, self._y, self._z = readof.readmesh(str(self._root)) + + def write_field(self, field, values): + with open(self._root.joinpath("0", field), "r") as aw_file: + aw_raw = aw_file.read() + + with open(self._root.joinpath("0", field), "w") as aw_file: + aw_file.write( + re.sub( + r"(?<=\(\n).*?(?=\n\))", + "\n".join(values.astype(str)), + aw_raw, + count=1, + flags=re.S, + ) + ) + + @property + def x(self): + return self._x + + @property + def y(self): + return self._y + + @property + def z(self): + return self._z diff --git a/olaflow/processing/stl.py b/olaflow/processing/stl.py index fc5b7f0..a70fe75 100644 --- a/olaflow/processing/stl.py +++ b/olaflow/processing/stl.py @@ -1,3 +1,22 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:673dcc99b9926720c32ee396b49a6599a28b9066812c7b651f2289d1527fe089 -size 667 +import pathlib +import shutil +import subprocess +import tempfile + +import numpy as np + + +def stl_from_1d(data, output, scale=[1, 1, 1], translate=[0, 0, 0]): + with tempfile.TemporaryDirectory() as tmppath: + tmpdir = pathlib.Path(tmppath) + np.savetxt(tmpdir.joinpath("data.dat"), np.stack((data, data))) + with open(tmpdir.joinpath("scad"), "wt") as scad: + scad.write( + f"translate({translate})" + f"scale({scale})" + f"""surface("data.dat");""" + ) + + subprocess.run(("openscad", "scad", "-o", "data.stl"), cwd=tmpdir) + + shutil.copy2(tmpdir.joinpath("data.stl"), output) diff --git a/olaflow/processing/sws_ola.py b/olaflow/processing/sws_ola.py index 4e52dec..93a0f11 100644 --- a/olaflow/processing/sws_ola.py +++ b/olaflow/processing/sws_ola.py @@ -1,3 +1,36 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f12e993be338666db237374bcef3d50b16fe8c8f24f96425bdffb8d0adb47917 -size 977 +import argparse +import configparser +import logging +import pathlib + +import numpy as np +from scipy import interpolate + +from .olaflow import OFModel + +parser = argparse.ArgumentParser( + description="Convert swash output to olaFlow input" +) +parser.add_argument("-v", "--verbose", action="count", default=0) +args = parser.parse_args() + +logging.basicConfig(level=max((10, 20 - 10 * args.verbose))) +log = logging.getLogger("sws_ola") + +log.info("Starting sws -> olaFlow converter") +config = configparser.ConfigParser() +config.read("config.ini") + +sws_out = pathlib.Path(config.get("swash", "np_out")) +x = np.load(sws_out.joinpath("xp.npy")) +t = np.load(sws_out.joinpath("tsec.npy")) +watl = np.load(sws_out.joinpath("watl.npy")) + +olaflow_root = pathlib.Path(config.get("olaflow", "root")) +model = OFModel(olaflow_root) +model.read_mesh() + +watl_t = interpolate.interp1d(x, watl[680]) +alpha_water = np.where(model.z < watl_t(model.x), 1, 0) + +model.write_field("alpha.water", alpha_water) diff --git a/report/chapters/introduction.tex b/report/chapters/introduction.tex index 483fa4c..a7b90f8 100644 --- a/report/chapters/introduction.tex +++ b/report/chapters/introduction.tex @@ -1,3 +1,21 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:956f0d07bcf91641f8397fda0a5620d6f32c4b12d2493bf161193d0d761b0335 -size 1267 +\chapter{Introduction} +In February 2017, a \SI{50}{\tonne} concrete block was displaced by a wave onto +the Artha breakwater in Saint-Jean-de-Luz. This event was captured by a +photographer, and earlier work from \textcite{amir} allowed to extract the +conditions under which this event happened using field data along with +numerical modeling. + +The goal of the present study is to establish a numerical model representing +the conditions under which this block displacement event happened at the scale +of the breakwater. The simulation will be performed using the olaFlow +\parencite{olaFlow} model in a three-dimensionnal setting. + +This study presents several aspects that are crucial to consider in order to +obtain accurate results. The seastate that led to the studied event is known +thanks to a wave buoy located in front of the breakwater \parencite{amir}. +However, in order to input an accurate incident wave into the numerical model, +it will be necessary to extract the incident and reflected waves from the raw +buoy data. Then, it will be necessary to accurately model the Artha breakwater, +especially regarding its porous character. Finally, the results of this +simulation will need to be compared to the literature on block displacement by +waves for validation. diff --git a/report/chapters/literature.tex b/report/chapters/literature.tex index 1d65372..4922ecf 100644 --- a/report/chapters/literature.tex +++ b/report/chapters/literature.tex @@ -1,3 +1,612 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d763f71644972bc7eb773eab17b84a25e94ece715cd5f2646071f2dadbdfaddd -size 29718 +\chapter{Literature Review} + +In this chapter, literature relevant to the present study will be reviewed. +Three sections will be detailled: the separation of incident and reflected +components from wave measurements, the modelisation of wave impacts on a +rubble-mound breakwater, and the modelisation of block displacement by wave +impacts. + +\section{Separating incident and reflected components from wave buoy data} + +\subsection{Introduction} + +The separation of incident and reflected waves is a crucial step in numerically +modeling a sea state. Using the raw data from a buoy as the input of a wave +model will lead to incorrect results in the domain as the flow velocity at the +boundary will not be correctly generated. + +Several methods exist to extract incident and reflected components in measured +sea states, and they can generally be categorised in two types of methods: +array methods and PUV methods \parencite{inch2016accurate}. Array methods rely +on the use of multiple measurement points of water level to extracted the +incident and reflected waves, while PUV methods use co-located pressure and +velocity measurements to separate incident and reflected components of the +signal. + +\subsection{Array methods} + +\subsubsection{2-point methods} + +Array methods were developped as a way to isolate incident and reflected wave +components using multiple wave records. +\textcite{goda1977estimation,morden1977decomposition} used two wave gauges +located along the wave direction, along with spectral analysis, in order to +extract the incident and reflected wave spectra. Their work is based on the +earlier work of \textcite{thornton1972spectral}. \textcite{goda1977estimation} +analyzed the wave spectrum components using the Fast Fourier Transform, and +suggest that this method is adequate for studies in wave flumes. They noted +that this method provides diverging results for gauge spacings that are +multiples of half of the wave length. \textcite{morden1977decomposition} +applies this technique to a field study, where the sea state is wind generated. +\textcite{morden1977decomposition} showed that, using appropriate spectral +analysis methods along with linear wave theory, the decomposition of the sea +state into incident and reflected waves is accurate. A relationship between the +maximum obtainable frequency and the distance between the sensors is provided. +According to \textcite{morden1977decomposition}, the only needed knowledge on +the wave environment is that wave frequencies are not modified by the +reflection process. + +\subsubsection{3-point methods} + +In order to alleviate the limitations from the 2-point methods, +\textcite{mansard1980measurement} introduced a 3-point method. The addition of +a supplementary measurement point along with the use of a least-squares method +most importantly provided less sensitivity to noise, non-linear interactions, +and probe spacing. The admissible frequency range could also be widened. A +similar method was proposed by \textcite{gaillard1980}. The accuracy of the +method for the estimation of incident and reflected wave components was once +again highlighted, while the importance of adequate positioning of the gauges +was still noted. + +\subsubsection{Time-domain method} + +\textcite{frigaard1995time} presented a time-domain method for reflected and +incident wave separation. This method, called SIRW method, used discrete +filters to extract the incident component of an irregular wave field. The +results were as accurate as with the method proposed by +\cite{goda1977estimation}, while singularity points are better accounted for. +The main advantage of the SIRW method is that it works in the time-domain, +meaning that real time computations can be performed. +\textcite{frigaard1995time} also mentions the possibility of replacing one of +the wave gauges by a velocity meters to prevent singularities. + +This method was improved by \textcite{baldock1999separation} in order to +account for arbitrary bathymetry. Linear theory is used to compute shoaling on +the varying bathymetry. Resulting errors in the computed reflection coefficient +are low for large reflection coefficients, but increase with lower +coefficients. The neglect of shoaling can lead to important error in many +cases. The presented method could also be extended to three-dimensionnal waves +and bathymetry by considering the influence of refraction. + +\subsubsection{Further improvements} + +Further additions were made to array methods. \textcite{suh2001separation} +developped a method taking constant current into account to separate incident +and reflected waves. This method relies on two or more gauges, using a least +squares method. Results are very accurate in the absence of noise, but a small +amount of error appears when noise is added. + +\textcite{inch2016accurate} confirmed that the presence of noise led to +overestimation of the reflection coefficient. The creation of bias lookup +tables is proposed in order to account for noise-induced error in reflection +coefficient estimations. + +\textcite{andersen2017estimation,roge2019estimation} later proposed +improvements to account for highly non-linear regular and irregular waves +respectively. The improved method provides very accurate results for highly +non-linear waves, but are expected to be unreliable in the case of steep +seabeds, as shoaling is not part of the underlying model. + +\subsubsection{Conclusion} + +Array methods have been developped enough to provide accurate results in a wide +range of situations. Sensibility to noise has been reduced, and the influence +of shoaling has been considered. Those methods can also be applied to irregular +non-linear waves. + +However, they require at least two wave gauges to be used. That means that in +some situations such as the Saint-Jean-de-Luz event of 2017, other methods are +needed since only one field measurement location is available. + +\subsection{PUV methods} + +The goal of PUV methods is to decompose the wave field into incident and +reflected waves using co-located wave elevation and flow velocity measurements +\parencite{tatavarti1989incoming}. \textcite{tatavarti1989incoming} presented a +detailled analysis of separation of incoming and outging waves using co-located +velocity and wave height sensors. Their method allows to obtain the reflection +coefficient relative to frequency, as well as to separate incident and +reflected wave components. Compared to array methods, this method also strongly +reduces the influence of noise. + +\textcite{kubota1990} studied the influence of the considered wave theory on +incident and reflected wave separation. Three methods, based on linear +long-wave theory, small-amplitude wave theory and quasi-nonlinear long-wave +theory respectiveley were developped and compared. The results show that the +quasi-nonlinear approach gave the most accurate results. + +%\textcite{walton1992} applied a separation method based on co-located pressure +%and velocity measurements on field, studying two natural beaches. This study +%showed that reflection is not significant on natural beaches. Additionnaly, +%the method that is used allowed for larger reflected energy than incident +%energy. + +Research by \textcite{hughes1993} showed how co-located horizontal velocity and +vertical velocity (or pressure) sensors can be used to extract incident and +reflected wave spectra. Their method is based on frequency domain linear +theory, and provided accurate results for full reflection of irregular +non-breaking waves. Low-reflection scenarii were evaluated against the results +from \textcite{goda1977estimation}, and showed good agreement between both +methods. \textcite{hughes1993} also highlights that reflection estimates are +unreliable for higher frequencies, where coherency between the two measured +series is lower. + +Following the work of \textcite{tatavarti1989incoming}, +\textcite{huntley1999use} showed how principal component analysis can alleviate +noise-induced bias in reflection coefficient calculations compared to +time-domain analysis. They also stuied the influence of imperfect collocation +of the sensors, showing that the time delay between sensors leads to a peak in +the reflection coefficient at a frequency related to this time delta. + +% \cite{sheremet2002observations} + +\subsection{Conclusion} + +Numerous methods have been developped in order to separate incident and +reflected components from wave measurements. Array methods rely on the use of +multiple, generally aligned, wave gauges, while PUV methods rely on the use of +co-located sensors, generally a wave height sensor and a horizontal velocity +sensor. Array methods generally have the advantage of being more cost-effective +to implement, as the cost of reliable velocity measurement devices can be +important \parencite{hughes1993}. Nevertheless, PUV methods are generally more +accurate regarding noise, varying bathymetry, and can be setup closer to +reflective surfaces \parencite{hughes1993,inch2016accurate}. + +In the case of the 2017 event on the Artha breakwater, the results from a +single wave gauge are available, which means that the array methods are not +applicable. A PUV method \parencite{tatavarti1989incoming,huntley1999use} +should then be used to evaluate the reflection coefficient of the Artha +breakwater and to separate the incident and reflected wave components from the +measured data. + +\section{Modelling wave impact on a breakwater} + +\subsection{Introduction} + +Modelling rubble-mound breakwaters such as the Artha breakwater requires +complex considerations on several aspects. First of all, an accurate of the +fluid's behavior in the porous armour of the breakwater is necessary. Then, +adequate turbulence models are needed in order to obtain accurate results. +Several types of models have been developped that can be used to study breaking +wave flow on a porous breakwater. + +\subsection{SPH models} + +\subsubsection{Introduction} + +Smoothed-Particle Hydrodynamics (SPH) models rely on a Lagrangian +representation of the fluid \parencite{violeau2012fluid}. These models are +meshless, and work by considering fluids as a collection of particles. + +SPH models have been shown to provide satisfactory results for the modeling of +turbulent free surface flows \parencite{violeau2007numerical}. Additionnaly, +\textcite{dalrymple2006numerical} showed that SPH models can be used in small +scale models of water waves. In this part, literature on modeling flow in +porous media and the adequate boundary conditions for wave modeling will be +reviewed. + +\subsubsection{Porosity modelling} + +Multiple approaches can be used when modeling porous media using SPH models. +The most obvious approach relies on the use of discrete elements in the porous +domain. For instance, \textcite{altomare2014numerical} showed that an SPH model +along with discrete modeling of the blocks composing a breakwater could yield +satisfactory results. The meshless character of SPH models allows for modeling +the large scale outside the porous media and the small scale of the space +between blocks effectively. + +Nevertheless, the more common approach is to use a macro-scale model in porous +media, in which the porous domain is considered to have a set of homogeneous +properties. +\textcite{jiang2007mesoscale} used randomly placed fixed particles in the +porous media in order to model porosity at a microscopic scale from mesoscopic +porosity properties. The resulting model showed reliable results in studying +the flow through porous media. + +By contrast, \textcite{shao2010} used volume-averaged Navier-Stokes equations +along with an averaged porosity model +\parencite{huang2003structural,burcharth1995one} in an incompressible SPH +(ISPH) model in order to model wave flow in porous media, accounting for a +linear and quadratic term in porosity induced friction. Turbulence was modeled +with a $k-\varepsilon$ volume averaged model. Good agreement was highlighted +between the results from this model and other models, analytical results and +experimental measurements for solitary and regular waves interacting with a +porous breakwater. + +Similarly, \textcite{ren2016improved} presents a weakly-compressible SPH +(WCSPH) model using the volume averaged Favre averaged Navier-Stokes (VAFANS) +equations along with a large Eddy simulation (LES, \cite{ren2014numerical}) +turbulence model. Interaction between turbulent flows and porous media is +studied and good agreement is shown between model results and experimental +data. Additionnaly, it is highlighted that the addition of the turbulence model +does increase the accuracy of the model. Similar results are found by +\textcite{wen2016sph} when studying wave impact on non-porous structures using +the same model. + +That model was then extended to a three-dimensional model by +\textcite{wen20183d}. The computed free surface and forces on a structure were +shown to be accurately predicted by the 3D model. + +%\paragraph{Notes} +% +%\cite{jiang2007mesoscale}: Meso-scale SPH model of flow in isotropic porous +%media; randomly placed particles with repulsive force; reasonable results. +% +%\cite{shao2010}: incompressible flow with porous media; Navier-Stokes, +%Volume-Averaged $k-\varepsilon$; porosity model is same as +%\cite{troch1999development} but without inertia term +%\parencite{huang2003structural} +% +%\cite{altomare2014numerical} "microscopic" model of breakwater +% +%\cite{kunz2016study} comparison of sph model with micro-model experiments; not +%quite applicable +% +%\textbf{\cite{ren2016improved}} VAFANS equations to solve incompressible +%turbulent flow with porous media. Same porosity model as \cite{shao2010} +% +%\cite{wen2016sph} +% +%\cite{pahar2016modeling} +%\cite{peng2017multiphase} +%\cite{wen20183d}: 3D VAFANS +%\cite{kazemi2020sph} + +\subsubsection{Wave generation} + +One of the more recent research subject with SPH models has been wave +generation. Wave paddles were initially used as a way to generate waves in +numerical basins \parencite{zheng2010numerical}, with the major drawback of +such wave makers begin their high reflectivity. + +\textcite{liu2015isph} proposed an improved wave generator using a momentum +source in an ISPH model. The use of a momentum source was a major improvement +as it enabled the use of non-reflective wave generators. The proposed solution +was developed for two-dimensional linear waves, but the same algorithm could be +used for three-dimensional models. + +\textcite{altomare2017long} presented a wave generation method for long-crested +(second order) waves in a WCSPH model using a piston wave maker. Although this +method leads to high reflection, the possibility of generating irregular +waves was highlighted. + +Similarly to \textcite{liu2015isph}, \textcite{wen2018non} proposed a wave +generation method using a momentum source to create a non reflective wave +maker. The proposed method was used for generating regular as well as random +waves in a flume, and could be extended to three-dimensional simulations. +Nevertheless, the method proposed was limited to linear wave theory. + +%\cite{zheng2010numerical} +% +%\cite{liu2015isph}: 2D non-reflective linear wave generator using a momentum +%source in ISPH +% +%\cite{altomare2017long}: Wave generation and absorption of long-crested waves +%(2nd order) in WCSPH. Generation of monochromatic as well as irregular waves. +% +%\cite{wen2018non}: Non reflective spectral wave maker, using momentum source + +\subsubsection{Conclusion} + +SPH models have been showed to be extremely powerful tools in modelling +wave-structure interaction, due to their ability to model complex interfaces +and highly dynamic situations \parencite{altomare2017long}. + +Modeling wave interaction with porous structures using SPH models has been +widely studied, and generally adequate results are obtained +\parencite{wen20183d}. Nonetheless, SPH models still face some limitations +regarding their ability to represent incompressible flows, leading to high +diffusivity \parencite{higuera2015application}. + +Moreover, wave-generation techniques, especially for long simulations, are +still at an early stage of developement \parencite{wen2018non}, limiting the +applicability to such models in studying real cases using in-situ data. + +\subsection{VOF models} + +\subsubsection{Introduction} + +Contrary to SPH models, the volume of fluid (VOF) method relies on a Eulerian +representation of the fluid \parencite{hirt1981volume}. This method uses a +marker function, the value of which represents the fraction of fluid in a mesh +cell. + +\subsubsection{2D models} + +Using the VOF method along with Navier-Stokes equations, several models have +been developed in order to model fluid dynamics around porous structures. +\textcite{van1995wave} first implemented 2D-V incompressible Navier-Stokes +equations using the VOF method while accounting for porous media. The results +of the numerical model were validated with analytical solutions for simple +cases, as well as physical model tests. The model yielded acceptable results, +but the representation of turbulence and air-extrusion still required +improvement. + +\textcite{troch1999development} developed the VOFbreak\textsuperscript{2} model +in order to provide improvements to earlier models. The Forchheimer theory +\parencite{burcharth1995one} is used in order to model the behavior of the flow +inside porous media. The hydraulic gradient generated in porous media is +decomposed as a linear term, a quadratic term, and an inertia term. Those terms +are ponderated by three coefficients that need to be calibrated. Several +attempts have been made to obtain analytical formulas for those +\parencite{burcharth1995one,van1995wave}, but no universal result has been +provided for the inertia term in particular. \textcite{vieira2021novel} +additionnaly proposed using artificial neural networks in order to calibrate +those values, which are generally calibrated using experimental results. + +Parallely, \textcite{liu1999numerical} created a new model (COBRAS) that used +the VOF method. The model is based on the combination of Reynolds averaged +Navier-Stokes (RANS) equations and a $k-\varepsilon$ turbulence model. The +porous media is modelled similarly to \textcite{troch1999development}. The +offered results were improved compared to earlier models as more a more +accurate consideration of turbulence outside porous media was added. This model +was further improved by \textcite{hsu2002numerical} in order to account for +small scale turbulence inside the porous media thanks to volume averaged RANS +(VARANS) equations. + +The COBRAS model was then reworked by +\textcite{losada2008numerical,lara2008wave} to add improvements to wave +generation and usability. The main difference between this new code (COBRAS-UC) +and COBRAS is the addition of irregular waves generation. The code was also +optimized to reduce the number of iterations. The improvements allowed for +longer simulations to be computed. The predictions for free surface elevation +and pressure in front of a porous breakwater were accurate, but improvements +were still needed, in particular considering computation time. + +\subsubsection{3D models} + +The combination of VARANS equations and the VOF method was then brought to 3D +domains by \textcite{del2011three} in IH3VOF. Specific boundary conditions were +also added for several wave theories. Additionnaly, an improved turbulence +model was used ($\omega$-SST model, \cite{menter1994two}), which provides +strongly improved results in zones where strong pressure gradients appear. +Strong agreement between IH3VOF and experimental results was obtained, but the +need for accurate boundary conditions limited the applicability of the model. + +\textcite{higuera2015application} reworked the equations from +\textcite{del2011three} as discrepancies were observed with earlier literature +and added several improvements to the model. Notably, time-varying porosity was +added in order to account for eventual sediment displacement. New boundary +conditions were added, with static and dynamic boundary wave generators as well +as passive and acive wave absorption being implemented. The resulting model +(IHFOAM/olaFlow, \cite{olaFlow}) was implemented in the OpenFOAM toolbox. + +\subsubsection{Conclusion} + +VOF models have been developped to provide accurate results for the study of +wave impact on porous structures. The validation results from +\textcite{higuera2015application} show the capabilities of such models in +accurately representing rubble-mound breakwaters subject to irregular +three-dimensional wave fields. + +Nonetheless, the representation of porosity in those models is still mainly +based on experimental calibration, particularly for the inertia term of +porosity induced friction. + +%\subsection{Conclusion} + +%\paragraph{Notes} +% +%\cite{van1995wave,troch1999development} +% +%COBRAS \parencite{liu1999numerical}: spatially averaged RANS +%with $k-\varepsilon$ turbulence model. Drag forces modeled by empirical linear +%and non-linear friction terms; \cite{hsu2002numerical}: introduced VARANS in +%order to account for small scale turbulence inside the porous media. +%-> +%COBRAS-UC/IH2VOF \parencite{losada2008numerical,lara2008wave}: VOF VARANS (2D); +%refactor of COBRAS code, with improved wave generation, improvement of input +%and output data. +%-> +%IH3VOF \parencite{del2011three}: 3D VOF VARANS, updated porous media equations, +%optimization of accuracy vs computation requirements, specific boundary +%conditions, validation. Adding SST model. +%-> +%IHFOAM/olaFlow \parencite{higuera2015application}: Rederivation of +%\cite{del2011three}, add time-varying porosity; Improvement to wave generation +%and absorption; implementation in OpenFOAM; extensive validation; application +%to real coastal structures. +% +%\cite{vieira2021novel}: Use of artificial neural networks to determine porosity +%parameter for VOF VARANS model. + +%\subsection{Other} +% +%BEM: \cite{hall1994boundary,koley2020numerical} + +\section{Block displacement by waves} + +\subsection{Introduction} + +Displacement of blocks or boulders by waves has been a major topic in +understanding the influence of storm and tsunami waves in coastal regions. +Several approaches have been taken to study this phenomenon. + +% In a first part, we will discuss in-situ studies on displaced boulders. In a +% second part, we will review models of block displacements. + +\subsection{Block displacement models} + +The main goal of studying boulder displacement is generally to establish the +cause of boulder deposits in coastal areas. \textcite{nott1997extremely} was +among the first to propose hydrondynamic equations that aimed to calculate the +wave height that would lead to the displacement of a boulder for storm and +tsunami waves. The main difference between storm and tsunami waves in those +equations was the flow velocity relative to wave height. The calculation of the +minimum flow velocity for boulder transport is obtained by calculating an +equilibrium between drag, lift and restraining forces. + +Those equations were refined by \textcite{nott2003waves} in order to account +for the pre-transport environment of the boulder. \citeauthor{nott2003waves} +derived equations for submerged, sub-aerial and joint bounder boulders. A new +parameter ($\delta$) was introduced to differentiate between tsunami and storm +waves. This study highlights the importance of the initial environment of a +boulder for wave transport conditions. Compared to the equations from +\textcite{nott1997extremely}, an aditionnal inertia term is added to the +equilibrium equation for sub-aerial boulders, while the drag force is removed +for joint-bounded blocks. + +\textcite{nandasena2011reassessment} noted that \citeauthor{nott2003waves}'s +equations could be improved, and proposed a new set of equations correcting +the lift and inertia terms in \citeauthor{nott2003waves}'s equations. +\textcite{nandasena2011reassessment} found that the new equations produced up +to a \SI{65}{\percent} difference with \citeauthor{nott2003waves}'s equations. + +\textcite{buckley2012inverse} proposed alternative equations for sliding and +overturning of submerged boulders. An equation for block sliding was introduced +by considering friction on the bed. \textcite{weiss2012mystery} investigated +the influence of bed roughness on block displacement. A new stability criteria +was established, and bed roughness was found to be a major factor in boulder +displacement. In contrast with the findings from \textcite{nott2003waves}, the +threshold wave amplitude for block displacement was found to be similar between +tsunami and storm waves. + +\textcite{nandasena2013boulder,liu2014experimental} performed experimental +studies of block displacement using dam break scenarios in a flume. The results +from both studies indicate that the primary mode of boulder motion for large +boulders is sliding, rather than rolling or saltation. + +\textcite{weiss2015untangling} highlights inadequacies in the criteria that are +generally used \parencite{nott2003waves,nandasena2011reassessment}. According +to \textcite{weiss2015untangling}, the use of a minimum threshold on block +movement does not account for the possibility of a block returning to its +initial position after being slightly disloged. A new threshold is proposed on +the minimal movement of a block, while considering the time-dependent nature of +wave-induced flow. \textcite{weiss2015untangling} also shows the importance of +the pre-transport conditions on block displacement. + +\textcite{kennedy2017extreme} derived new equations following the approach from +\textcite{nandasena2011reassessment} accounting for non-parallelepipedic +blocks. The revised equations led to a lower velocity threshold for block +movement. This highlights the importance of boulder shape in displacement +considerations. + +\textcite{lodhi2020role} highlighted the importance of hydrodynamic pressure in +block displacement. A new equation was given for the threshold flow velocity +for block movement. An experimental validation of the models was performed, and +showed the overestimation of the threshold velocity by previous models. + +\textcite{oetjen2021experiments} performed a review of boulder displacement +experiments. They found that the initial position of boulders relative to the +wave impact has a major influence on block displacement. Conversely, the +influence of bed roughness seems to have been overestimated in the past. +Similarly to \textcite{lodhi2020role}, \textcite{oetjen2021experiments} +highlights an overestimation of minimum wave height for block displacement by +earlier equations \parencite{nott1997extremely,nandasena2011reassessment}. + +\subsection{Breakwater stability} + +Breakwater stability has been a central issue in breakwater design. +\textcite{hudson1959laboratory} showed that Iribarren's formula could be used +to design breakwater when combined with an experimental parameter depending on +the shape of armour blocks and the geometry of the armour layer. A no-damage +and no-overtopping criteria is provided and validate using experimental +results. \textcite{losada1979joint} noted that Iribarren's criterion was fairly +accurate, but the results from \textcite{hudson1959laboratory} are found to be +too conservative. + +\textcite{van1987stability} proposed an new criterion regarding breakwater +stability under random wave action. Extensive experimental validation using +both small-scale and large-scale models was conducted, and seem to provide +coherent results. Similarly to earlier work, the criterion is provided as an +dimensionless form. + +\textcite{galland1995rubble} observed that armour stability relative to oblique +waves was increased. \textcite{van2014oblique} confirmed the influence of wave +direction on stability, and provided a way of estimating breakwater stability +depending on wave orientation. + +%\cite{hudson1959laboratory} +% +%%\cite{hudson1975reliability} +% +%\cite{losada1979joint} +% +%\cite{van1987stability} +% +%\cite{van1995conceptual} +% +%\cite{galland1995rubble} +% +%\cite{iglesias2008virtual} +% +%\cite{etemad2012stability} +% +%\cite{van2014oblique} + +\subsection{Conclusion} + +Block displacement by waves has been widely studied in the literature. +Nevertheless, most validation has been conducted using laboratory experiments, +and reliable real-world data on that subject is scarce. This highlights the +opportunity provided by the 2017 Saint-Jean-de-Luz event, as the availability +of in-situ data allows for real-world validation of the results from earlier +research. + +%\subsection{In-situ studies} +% +%\cite{barbano2010large}: boulders deposity in Sicily -> probably tsunamis +% +%\cite{paris2011}: +% +%\cite{nandasena2011numerical} +%\cite{may2015block} +%\cite{biolchi2016} +%\cite{kennedy2016observations} +%\cite{erdmann2018boulder} +%\cite{cox2018extraordinary} +% +%\subsection{Models} +% +%\cite{nott1997extremely} +% +%\cite{nott2003waves} Submerged boulder: +%\begin{equation} +%u^2 \ge \frac{2\left(\frac{\rho_s}{\rho_w}-1\right)ag} +%{C_d\left(\frac{ac}{b^2}\right)+C_l} +%\end{equation} +% +%\cite{imamura2008numerical} +%\cite{barbano2010large} +%\cite{nandasena2011numerical} +% +%\cite{nandasena2011reassessment} +%\begin{equation} +%u^2 \ge \frac{2\left(\frac{\rho_s}{\rho_w}-1\right) gc +%\left(\cos\theta+\frac{c}{b}\sin\theta\right)} +%{C_d\frac{c^2}{b^2}+C_l} +%\end{equation} +% +%\cite{buckley2012inverse} +%\cite{weiss2012mystery} +%\cite{nandasena2013boulder} +%\cite{liu2014experimental} +%\cite{weiss2015untangling} +% +% +%\cite{kennedy2016observations} +%\cite{kennedy2017extreme} +%\cite{weiss2017toward} +% +%\cite{bressan2018laboratory} Partially submerged boulders +%\begin{equation} +%u^2 \ge \frac{2b_wW}{\rho_w\left(b_DC_DA_{wfs}+b_LC_LA_{wbs}\right)} +%\end{equation} +% +%\cite{lodhi2020role} +%\cite{oetjen2020significance} +% +%\cite{oetjen2021experiments}: Review +% +%--- +%\cite{zainali2015boulder}: Numerical model of block displacement diff --git a/report/cours.sty b/report/cours.sty index a0a2510..22f4f6e 100644 --- a/report/cours.sty +++ b/report/cours.sty @@ -1,3 +1,265 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:73211df2f3a9bf09595b0ab0101bd366f42e8bc8c98d678fea19d5bab9953e26 -size 7708 +\ProvidesPackage{cours} +%%% XeLaTeX ONLY + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% Packages +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\@ifclassloaded{beamer}{}{ +\RequirePackage[xetex]{geometry} +\RequirePackage[pdfusetitle]{hyperref} +\RequirePackage{enumitem} +} +\RequirePackage{fontspec} +\RequirePackage{polyglossia} +\RequirePackage{csquotes} +\RequirePackage{amsmath, amssymb, amsbsy} +%\RequirePackage{mathtools} +\RequirePackage{siunitx} +\RequirePackage{stmaryrd} +\RequirePackage{dsfont} +\RequirePackage{array} +\RequirePackage{esvect} +\RequirePackage{tikz} +\RequirePackage{pgfplots} +\RequirePackage{amsthm} +\RequirePackage{pgfpages} +\RequirePackage[version=4]{mhchem} +%\RequirePackage{breqn} +\RequirePackage{listings} +\RequirePackage{esint} +\RequirePackage{tabularx} +\RequirePackage{multirow} +\RequirePackage{booktabs} +%\RequirePackage{multicol} +\RequirePackage{setspace} +%\RequirePackage{ulem} +\RequirePackage{cancel} +\RequirePackage{xcolor} +\RequirePackage{unicode-math} +%\RequirePackage[backend=biber,sorting=ynt]{biblatex} +\RequirePackage[notransparent]{svg} +\RequirePackage{authblk} +\@ifclassloaded{beamer}{}{ +\RequirePackage[list=true]{subcaption} +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% Langue +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\setdefaultlanguage{french} +\MakeOuterQuote{"} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% Macros +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Dérivées / Intégrales +\renewcommand\d{\mathrm d} +\newcommand\dd{\mathop{}\,\mathrm d} +\newcommand\deriv[2]{\frac{\d#1}{\d#2}} +\newcommand\dderiv[2]{\frac{\d^2#1}{\d#2^2}} +\newcommand\der[2]{\frac{\d#1}{\d#2}} +\newcommand\dder[2]{\frac{\d^2#1}{\d#2^2}} +\newcommand\dpar[2]{\frac{\partial#1}{\partial#2}} +\newcommand\ddpar[2]{\frac{\partial^2#1}{\partial#2^2}} +\newcommand\derp[2]{\frac{\partial#1}{\partial#2}} +\newcommand\dderp[2]{\frac{\partial^2#1}{\partial#2^2}} +\newcommand\dint{\int\displaylimits} +\newcommand\doint{\oint\displaylimits} + +%%% Symboles +\newcommand\bOmega{\boldsymbol\Omega} +\newcommand\bepsilon{\boldsymbol\epsilon} +\newcommand\btheta{\boldsymbol\theta} +\newcommand\bsigma{\boldsymbol\sigma} +\renewcommand\epsilon{\varepsilon} +%\renewcommand\C{\coulomb} +\newcommand\e{\mathrm e} + +\newcommand\RR{\mathbb R} +\newcommand\CC{\mathbb C} +\newcommand\KK{\mathbb K} +\newcommand\NN{\mathbb N} +\newcommand\FF{\mathbb F} +\newcommand\EE{\mathbb E} +\newcommand\DD{\mathbb D} +\newcommand\fF{\mathcal F} +\newcommand\dD{\mathcal D} +\newcommand\lL{\mathcal L} +\newcommand\cC{\mathcal C} + +\newcommand\id{\mathbf 1} +\newcommand\Id{\mathrm Id} + +%%% Exposant / Indice à gauche +\newcommand\trans[1]{\vphantom{#1}^t#1} +\newcommand\eul[1]{\vphantom{#1}^E#1} +\newcommand\lag[1]{\vphantom{#1}^L#1} +\newcommand\indL[2]{\vphantom{#2}_{#1}#2} +\newcommand\expL[2]{\vphantom{#2}^{#1}#2} + +%%% Opérateurs mathématiques +\newcommand\abs[1]{\left|#1\right|} +\newcommand\nor[1]{\left\lVert#1\right\lVert} +\newcommand\peigne{\mathbin{\rotatebox[origin=c]{-90}{$\exists$}}} +\newcommand\moy[1]{\left<#1\right>} +\newcommand\tor[2]{\vphantom{\begin{array}c#2\end{array}}_{#1}\left|\begin{array}c#2\end{array}\right.} + +\DeclareMathOperator\grad{\u{grad}} +\DeclareMathOperator\ggrad{\uu{grad}} +\let\div\relax +\DeclareMathOperator\diverg{\u{div}} +\DeclareMathOperator\rot{\u{rot}} +\DeclareMathOperator\Ker{Ker} +\DeclareMathOperator\sign{sign} +\DeclareMathOperator\tr{tr} +\DeclareMathOperator\cotan{cotan} +\DeclareMathOperator\cond{cond} +\DeclareMathOperator\erf{erf} +\DeclareMathOperator\erfc{erfc} + +%%% Vecteurs et Matrices +\renewcommand\u[1]{\underline{#1}} +\newcommand\uu[1]{\underline{\underline{#1}}} +\newcommand\ov[1]{\overline{#1}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% Paramétrage des packages +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Styles de théorèmes +\theoremstyle{remark} +\newtheorem{rem}{Remarque} +\newtheorem*{rem*}{Remarque} +\theoremstyle{definition} +\newtheorem*{defi}{Définition} +\newtheorem{ex}{Exemple} +\newtheorem*{theo}{Théorème} + +%%% Listings (code) +\lstset{numbers=left, + numberstyle=\tiny\color{gray}\ttfamily, + language=Python, + basicstyle=\linespread{1.2}\ttfamily, + columns = flexible, + keywordstyle=\color{blue}, + commentstyle=\itshape\color{gray}, + stringstyle=\color{ForestGreen}, + frame=single, + stepnumber=5, + showstringspaces=true, + backgroundcolor=\color{ultralightgray}, + morekeywords={>>>, np, array, zeros, shape}, + %breaklines=true, + %prebreak=\textbackslash, + alsoletter=> +} + +%%% Tikz / PGF +\usetikzlibrary{shapes} +\pgfplotsset{compat=1.14} + +%%% SIUnitX +\sisetup{ + mode = text, + %locale = FR, + %list-final-separator = {\text{~et~}}, + %list-pair-separator = {\text{~et~}}, + %range-phrase = {\text{~à~}}, + retain-explicit-plus, + forbid-literal-units, + sticky-per, + %inter-unit-product = {.}, + per-mode = power-positive-first, + uncertainty-mode = separate, +} +\SendSettingsToPgf +\DeclareSIUnit\met{met} +\DeclareSIUnit\gon{gon} +\DeclareSIUnit\bar{bar} +\DeclareSIUnit\psi{psi} +\DeclareSIUnit\deg{deg} + +%%% Arcs +\DeclareFontFamily{OMX}{yhex}{} +\DeclareFontShape{OMX}{yhex}{m}{n}{<->yhcmex10}{} +\DeclareSymbolFont{yhlargesymbols}{OMX}{yhex}{m}{n} +\DeclareMathAccent{\wideparen}{\mathord}{yhlargesymbols}{"F3} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% Mise en forme +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\@ifclassloaded{beamer}{}{ +\geometry{ + a4paper, + total={16cm, 24cm} +} +} + +%%%% FONTS +\RequirePackage[sfdefault]{inter} +%\setmainfont{Inter} +%\setsansfont{Inter} +\setmathfont[mathrm=sym]{Fira Math} +\setmonofont[Ligatures=TeX]{Fira Code} + +% Title fonts +\RequirePackage{titlesec} + +\titleformat*{\subparagraph}{\intersemibold} +\titleformat*{\paragraph}{\intersemibold} +\titleformat*{\subsubsection}{\large} +\titleformat*{\subsection}{\Large} +\titleformat*{\section}{\LARGE} +\titleformat{\chapter}[display]{\interlight\LARGE} + {\chaptertitlename~\thechapter}{12pt}{\interlight\Huge} + + +\newcommand\email[1]{\href{mailto:#1}{#1}} + + +\definecolor{ENSblue}{RGB}{0,119,139} +\definecolor{ultralightgray}{gray}{.95} +\definecolor{customblue}{RGB}{0,102,204} + +%\@ifclassloaded{letter}{}{ +% \renewcommand\thesection{\Roman{section}} +% \renewcommand\thesubsection{\thesection.\arabic{subsection}} +% \renewcommand\thesubsubsection{\thesubsection.\arabic{subsubsection}} +%} + +\@ifclassloaded{beamer}{}{ + \hypersetup{ + citecolor=customblue, + filecolor=customblue, + colorlinks=true, + linkcolor=customblue, + urlcolor=customblue + } + + \setlist[itemize]{nosep} +} + +\setcounter{secnumdepth}{3} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% Fonctions pgfplots +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\makeatletter +\pgfmathdeclarefunction{erf}{1}{% + \begingroup + \pgfmathparse{#1 > 0 ? 1 : -1}% + \edef\sign{\pgfmathresult}% + \pgfmathparse{abs(#1)}% + \edef\x{\pgfmathresult}% + \pgfmathparse{1/(1+0.3275911*\x)}% + \edef\t{\pgfmathresult}% + \pgfmathparse{% + 1 - (((((1.061405429*\t -1.453152027)*\t) + 1.421413741)*\t + -0.284496736)*\t + 0.254829592)*\t*exp(-(\x*\x))}% + \edef\y{\pgfmathresult}% + \pgfmathparse{(\sign)*\y}% + \pgfmath@smuggleone\pgfmathresult% + \endgroup +} +\makeatother diff --git a/report/kalliope.conf b/report/kalliope.conf index cf39d0a..6032ad8 100644 --- a/report/kalliope.conf +++ b/report/kalliope.conf @@ -1,3 +1,4 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3047470c95f5c13dbcff0657817424cc60b912754ad0fcfe3ae969be252d3c01 -size 52 +[latex] +engine=xelatex +main=main.tex +out=report.pdf diff --git a/report/library.bib b/report/library.bib index 4fda9d4..49e949c 100644 --- a/report/library.bib +++ b/report/library.bib @@ -1,3 +1,1175 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:87b5d1dd051040c295f58c055042a1cdc0f752bf62bdbf875fbf91d8142a1acb -size 36503 +@misc{olaFlow, + author={Higuera, P.}, + title={olaFlow: {CFD} for waves [{S}oftware].}, + year=2017, + doi={10.5281/zenodo.1297013}, + url={https://doi.org/10.5281/zenodo.1297013} +} + +@report{amir, + author={Amir Parvin}, + title={Processes allowing large block displacement under wave action}, + year={2020}, +} + +@article{cox2018extraordinary, + title={Extraordinary boulder transport by storm waves (west of Ireland, winter 2013--2014), and criteria for analysing coastal boulder deposits}, + author={Cox, R{\'o}nadh and Jahn, Kalle L and Watkins, Oona G and Cox, Peter}, + journal={Earth-Science Reviews}, + volume={177}, + pages={623--636}, + year={2018}, + publisher={Elsevier} +} + +@article{shah2013coastal, + title={Coastal boulders in Martigues, French Mediterranean: evidence for extreme storm waves during the Little Ice Age}, + author={Shah-Hosseini, M and Morhange, C and De Marco, A and Wante, J and Anthony, EJ and Sabatier, F and Mastronuzzi, G and Pignatelli, C and Piscitelli, A}, + journal={Zeitschrift f{\"u}r Geomorphologie}, + volume={57}, + number={Suppl 4}, + pages={181--199}, + year={2013} +} + +@conference{abadie, + title={Large concrete block displacement under extreme wave: analysis of the 2/28/2017 event}, + author={Amir Parvin and Volker Roeber and Pierre-Antoine Poncet and D. Sous and M. Mengaillou and Stéphane Abadie}, + booktitle={Seminaire technique EZPONDA}, + year={2019}, +} + +@phdthesis{poncet2021characterization, + title={Characterization of wave impact loading on structures at full scale: field experiment, statistical analysis and 3D advanced numerical modeling}, + author={Poncet, Pierre-Antoine}, + year={2021}, + school={Pau}, + chapter={4}, +} + +@article{nott2003waves, + title={Waves, coastal boulder deposits and the importance of the pre-transport setting}, + author={Nott, Jonathan}, + journal={Earth and Planetary Science Letters}, + volume={210}, + number={1-2}, + pages={269--276}, + year={2003}, + publisher={Elsevier} +} + +@article{zijlema2011swash, + title={SWASH: An operational public domain code for simulating wave fields and rapidly varied flows in coastal waters}, + author={Zijlema, Marcel and Stelling, Guus and Smit, Pieter}, + journal={Coastal Engineering}, + volume={58}, + number={10}, + pages={992--1012}, + year={2011}, + publisher={Elsevier} +} + +@incollection{mansard1980measurement, + title={The measurement of incident and reflected spectra using a least squares method}, + author={Mansard, Etienne PD and Funke, ER}, + booktitle={Coastal Engineering 1980}, + pages={154--172}, + year={1980} +} + +@article{suh2001separation, + title={Separation of incident and reflected waves in wave--current flumes}, + author={Suh, Kyung Doug and Park, Woo Sun and Park, Beom Seok}, + journal={Coastal Engineering}, + volume={43}, + number={3-4}, + pages={149--159}, + year={2001}, + publisher={Elsevier} +} + +@article{frigaard1995time, + title={A time-domain method for separating incident and reflected irregular waves}, + author={Frigaard, Peter and Brorsen, Michael}, + journal={Coastal engineering}, + volume={24}, + number={3-4}, + pages={205--215}, + year={1995}, + publisher={Elsevier} +} + +@article{baldock1999separation, + title={Separation of incident and reflected waves over sloping bathymetry}, + author={Baldock, TE and Simmonds, DJ}, + journal={Coastal Engineering}, + volume={38}, + number={3}, + pages={167--176}, + year={1999}, + publisher={Elsevier} +} + +@article{roge2019estimation, + title={Estimation of incident and reflected wave trains in highly nonlinear two-dimensional irregular waves}, + author={R{\o}ge Eldrup, Mads and Lykke Andersen, Thomas}, + journal={Journal of Waterway, Port, Coastal, and Ocean Engineering}, + volume={145}, + number={1}, + pages={04018038}, + year={2019}, + publisher={American Society of Civil Engineers} +} + +@article{andersen2017estimation, + title={Estimation of incident and reflected components in highly nonlinear regular waves}, + author={Andersen, Thomas Lykke and Eldrup, Mads R{\o}ge and Frigaard, Peter}, + journal={Coastal Engineering}, + volume={119}, + pages={51--64}, + year={2017}, + publisher={Elsevier} +} + +@article{inch2016accurate, + title={Accurate estimation of wave reflection on a high energy, dissipative beach}, + author={Inch, Kris and Davidson, Mark and Masselink, Gerd and Russell, Paul}, + journal={Journal of Coastal Research}, + number={75 (10075)}, + pages={877--881}, + year={2016}, + publisher={Allen Press} +} + +@incollection{pedersen2007resolving, + title={Resolving transformed wave directions near coastal structures}, + author={Pedersen, Torstein and Goldberg, Judah and Lohrmann, Atle and Siegel, Eric}, + booktitle={Coastal Engineering 2006: (In 5 Volumes)}, + pages={4362--4373}, + year={2007}, + publisher={World Scientific} +} + +@article{sobey1999locally, + title={A locally nonlinear interpretation of PUV measurements}, + author={Sobey, Rodney J and Hughes, Steven A}, + journal={Coastal engineering}, + volume={36}, + number={1}, + pages={17--36}, + year={1999}, + publisher={Elsevier} +} + +@article{davidson1996new, + title={A new non-dimensional number for the analysis of wave reflection from rubble mound breakwaters}, + author={Davidson, MA and Bird, PAD and Bullock, GN and Huntley, DA}, + journal={Coastal Engineering}, + volume={28}, + number={1-4}, + pages={93--120}, + year={1996}, + publisher={Elsevier} +} + +@article{poncet2020wave, + title={WAVE TRANSFORMATION OVER A STEEP COMPOSITE BREAKWATER, IN-SITU EXPERIMENT RESULTS}, + author={Poncet, PIerre-Antoine and Sous, Damien and Abadie, Stephane}, + journal={Coastal Engineering Proceedings}, + number={36v}, + pages={27--27}, + year={2020} +} + +@article{larroque2018situ, + title={In-situ measurements of wave impact pressure on a composite breakwater: preliminary results}, + author={Larroque, Benoit and Arnould, Philippe and Luthon, Franck and Poncet, Pierre-Antoine and Rahali, A and Abadie, St{\'e}phane}, + journal={Journal of Coastal Research}, + number={85 (10085)}, + pages={1086--1090}, + year={2018}, + publisher={Allen Press} +} + +@article{sheremet2002observations, + title={Observations of nearshore infragravity waves: Seaward and shoreward propagating components}, + author={Sheremet, A and Guza, RT and Elgar, Steve and Herbers, THC}, + journal={Journal of Geophysical Research: Oceans}, + volume={107}, + number={C8}, + pages={10--1}, + year={2002}, + publisher={Wiley Online Library} +} + +@incollection{guza1977resonant, + title={Resonant interactions for waves breaking on a beach}, + author={Guza, Robert T and Bowen, Anthony J}, + booktitle={Coastal Engineering 1976}, + pages={560--579}, + year={1977} +} + +@article{huntley1999use, + title={Use of collocated sensors to measure coastal wave reflection}, + author={Huntley, David A and Simmonds, David and Tatavarti, Rao}, + journal={Journal of waterway, port, coastal, and ocean engineering}, + volume={125}, + number={1}, + pages={46--52}, + year={1999}, + publisher={American Society of Civil Engineers} +} + +@incollection{tatavarti1989incoming, + title={Incoming and outgoing wave interactions on beaches}, + author={Tatavarti, Rao VSN and Huntley, David A and Bowen, Anthony J}, + booktitle={Coastal Engineering 1988}, + pages={136--150}, + year={1989} +} + +@article{higuera2015application, + title={Application of computational fluid dynamics to wave action on structures}, + author={Higuera, P}, + journal={PhD. Universidade de Cantabria}, + year={2015} +} + +@inproceedings{bogdanov2011direct, + title={Direct pore-scale modeling of two-phase flow through natural media}, + author={Bogdanov, II and Guerton, F and Kpahou, J and Kamp, AM}, + booktitle={Proceedings of the 2011 COMSOL Conference in Stuttgart; http://www. comsol. com/paper/download/83497/bogdanov\_paper. pdf}, + year={2011} +} + +@article{del2011three, + title={Three-dimensional interaction of water waves with maritime structures}, + author={del Jesus, M}, + journal={University of Cantabria (Ph. D. thesis)}, + year={2011} +} + +@article{altomare2014numerical, + title={Numerical modelling of armour block sea breakwater with smoothed particle hydrodynamics}, + author={Altomare, Corrado and Crespo, Alejandro JC and Rogers, BD and Dominguez, JM and Gironella, X and G{\'o}mez-Gesteira, M}, + journal={Computers \& Structures}, + volume={130}, + pages={34--45}, + year={2014}, + publisher={Elsevier} +} + +@article{vanneste20152d, + title={2D numerical simulation of large-scale physical model tests of wave interaction with a rubble-mound breakwater}, + author={Vanneste, Dieter and Troch, Peter}, + journal={Coastal Engineering}, + volume={103}, + pages={22--41}, + year={2015}, + publisher={Elsevier} +} + +@article{sumer2000experimental, + title={Experimental study of 2D scour and its protection at a rubble-mound breakwater}, + author={Sumer, B Mutlu and Freds{\o}e, J{\o}rgen}, + journal={Coastal Engineering}, + volume={40}, + number={1}, + pages={59--87}, + year={2000}, + publisher={Elsevier} +} + +@article{kim2005neural, + title={Neural network for design and reliability analysis of rubble mound breakwaters}, + author={Kim, Dong Hyawn and Park, Woo Sun}, + journal={Ocean engineering}, + volume={32}, + number={11-12}, + pages={1332--1349}, + year={2005}, + publisher={Elsevier} +} + +@incollection{troch1999development, + title={Development of two-dimensional numerical wave flume for wave interaction with rubble mound breakwaters}, + author={Troch, Peter and De Rouck, Julien}, + booktitle={Coastal Engineering 1998}, + pages={1638--1649}, + year={1999} +} + +@article{koley2020numerical, + title={Numerical and experimental modeling of water wave interaction with rubble mound offshore porous breakwaters}, + author={Koley, Santanu and Panduranga, Kottala and Almashan, Nourah and Neelamani, Subramaniam and Al-Ragum, Alanoud}, + journal={Ocean Engineering}, + volume={218}, + pages={108218}, + year={2020}, + publisher={Elsevier} +} + +@article{losada1979joint, + title={The joint effect of the wave height and period on the stability of rubble mound breakwaters using Iribarren's number}, + author={Losada, Miguel A and Gimenez-Curto, Luis A}, + journal={Coastal Engineering}, + volume={3}, + pages={77--96}, + year={1979}, + publisher={Elsevier} +} + +@article{lara2008wave, + title={Wave interaction with low-mound breakwaters using a RANS model}, + author={Lara, JL and Losada, IJ and Guanche, R}, + journal={Ocean engineering}, + volume={35}, + number={13}, + pages={1388--1400}, + year={2008}, + publisher={Elsevier} +} + +@inproceedings{troch1997vofbreak2, + title={VOFbreak2, a numerical model for simulation of wave interaction with rubble mound breakwater}, + author={Troch, Peter}, + booktitle={Proceedings of the 1997 27th Congress of the International Association of Hydraulic Research, IAHR. Part D}, + year={1997} +} + +@article{losada2008numerical, + title={Numerical analysis of wave overtopping of rubble mound breakwaters}, + author={Losada, Inigo J and Lara, Javier L and Guanche, Raul and Gonzalez-Ondina, Jose M}, + journal={Coastal engineering}, + volume={55}, + number={1}, + pages={47--62}, + year={2008}, + publisher={Elsevier} +} + +@article{erdmann2018boulder, + title={Boulder transport by storms--Extreme-waves in the coastal zone of the Irish west coast}, + author={Erdmann, Wibke and Kelletat, Dieter and Scheffers, Anja}, + journal={Marine Geology}, + volume={399}, + pages={1--13}, + year={2018}, + publisher={Elsevier} +} + +@article{may2015block, + title={Block and boulder transport in eastern Samar (Philippines) during Supertyphoon Haiyan}, + author={May, SM and Engel, M and Brill, D and Cuadra, C and Lagmay, AMF and Santiago, J and Suarez, JK and Reyes, M and Br{\"u}ckner, H}, + journal={Earth Surface Dynamics}, + volume={3}, + number={4}, + pages={543--558}, + year={2015}, + publisher={Copernicus GmbH} +} + +@article{weiss2012mystery, + title={The mystery of boulders moved by tsunamis and storms}, + author={Weiss, Robert}, + journal={Marine Geology}, + volume={295}, + pages={28--33}, + year={2012}, + publisher={Elsevier} +} + +@article{weiss2015untangling, + title={Untangling boulder dislodgement in storms and tsunamis: Is it possible with simple theories?}, + author={Weiss, R and Diplas, P}, + journal={Geochemistry, Geophysics, Geosystems}, + volume={16}, + number={3}, + pages={890--898}, + year={2015}, + publisher={Wiley Online Library} +} + +@article{zainali2015boulder, + title={Boulder dislodgement and transport by solitary waves: Insights from three-dimensional numerical simulations}, + author={Zainali, Amir and Weiss, Robert}, + journal={Geophysical Research Letters}, + volume={42}, + number={11}, + pages={4490--4497}, + year={2015}, + publisher={Wiley Online Library} +} + +@phdthesis{zainali2016high, + title={High-fidelity numerical simulation of shallow water waves}, + author={Zainali, Amir}, + year={2016}, + school={Virginia Tech} +} + +@article{nandasena2011reassessment, + title={Reassessment of hydrodynamic equations: Minimum flow velocity to initiate boulder transport by high energy events (storms, tsunamis)}, + author={Nandasena, NAK and Paris, Rapha{\"e}l and Tanaka, Norio}, + journal={Marine Geology}, + volume={281}, + number={1-4}, + pages={70--84}, + year={2011}, + publisher={Elsevier} +} + +@article{nandasena2013boulder, + title={Boulder transport by high energy: Numerical model-fitting experimental observations}, + author={Nandasena, NAK and Tanaka, Norio}, + journal={Ocean Engineering}, + volume={57}, + pages={163--179}, + year={2013}, + publisher={Elsevier} +} + +@article{martinez2011quasi, + title={Quasi-three dimensional two-phase debris flow model accounting for boulder transport}, + author={Martinez, CE and Miralles-Wilhelm, F and Garcia Martinez, R}, + journal={Italian Journal of Engineering Geology and Environment-Book}, + volume={3}, + pages={457--466}, + year={2011} +} + +@article{kennedy2016observations, + title={Observations and modeling of coastal boulder transport and loading during Super Typhoon Haiyan}, + author={Kennedy, Andrew B and Mori, Nobuhito and Zhang, Yao and Yasuda, Tomohiro and Chen, Shen-En and Tajima, Yoshimitsu and Pecor, William and Toride, Kinya}, + journal={Coastal Engineering Journal}, + volume={58}, + number={01}, + pages={1640004}, + year={2016}, + publisher={World Scientific} +} + +@article{lodhi2020role, + title={The role of hydrodynamic impact force in subaerial boulder transport by tsunami—Experimental evidence and revision of boulder transport equation}, + author={Lodhi, Hira A and Hasan, Haider and Nandasena, NAK}, + journal={Sedimentary Geology}, + volume={408}, + pages={105745}, + year={2020}, + publisher={Elsevier} +} + +@article{oetjen2021experiments, + title={Experiments on tsunami induced boulder transport--A review}, + author={Oetjen, Jan and Engel, Max and Sch{\"u}ttrumpf, Holger}, + journal={Earth-Science Reviews}, + volume={220}, + pages={103714}, + year={2021}, + publisher={Elsevier} +} + +@article{oetjen2020significance, + title={Significance of boulder shape, shoreline configuration and pre-transport setting for the transport of boulders by tsunamis}, + author={Oetjen, Jan and Engel, Max and Pudasaini, Shiva P and Schuettrumpf, Holger}, + journal={Earth Surface Processes and Landforms}, + volume={45}, + number={9}, + pages={2118--2133}, + year={2020}, + publisher={Wiley Online Library} +} + +@article{nandasena2011numerical, + title={Numerical assessment of boulder transport by the 2004 Indian ocean tsunami in Lhok Nga, West Banda Aceh (Sumatra, Indonesia)}, + author={Nandasena, NAK and Paris, Rapha{\"e}l and Tanaka, Norio}, + journal={Computers \& geosciences}, + volume={37}, + number={9}, + pages={1391--1399}, + year={2011}, + publisher={Elsevier} +} + +@article{weiss2017toward, + title={Toward a new paradigm for boulder dislodgement during storms}, + author={Weiss, Robert and Sheremet, Alex}, + journal={Geochemistry, Geophysics, Geosystems}, + volume={18}, + number={7}, + pages={2717--2726}, + year={2017}, + publisher={Wiley Online Library} +} + +@article{sheremet2016triads, + title={TRIADS: A phase-resolving model for nonlinear shoaling of directional wave spectra}, + author={Sheremet, Alex and Davis, Justin R and Tian, Miao and Hanson, Jeffrey L and Hathaway, Kent K}, + journal={Ocean Modelling}, + volume={99}, + pages={60--74}, + year={2016}, + publisher={Elsevier} +} + +@article{imamura2008numerical, + title={A numerical model for the transport of a boulder by tsunami}, + author={Imamura, Fumihiko and Goto, Kazuhisa and Ohkubo, Shigeki}, + journal={Journal of Geophysical Research: Oceans}, + volume={113}, + number={C1}, + year={2008}, + publisher={Wiley Online Library} +} + +@article{barbano2010large, + title={Large boulders along the south-eastern Ionian coast of Sicily: storm or tsunami deposits?}, + author={Barbano, MS and Pirrotta, C and Gerardi, F}, + journal={Marine Geology}, + volume={275}, + number={1-4}, + pages={140--154}, + year={2010}, + publisher={Elsevier} +} + +@article{paris2011, + title={Boulders as a signature of storms on rock coasts}, + journal={Marine Geology}, + volume={283}, + number={1}, + pages={1-11}, + year={2011}, + note={Special Issue on Boulders as a signature of storms on rock coasts}, + issn={0025-3227}, + doi={https://doi.org/10.1016/j.margeo.2011.03.016}, + url={https://www.sciencedirect.com/science/article/pii/S002532271100079X}, + author={Raphaël Paris and Larissa A. Naylor and Wayne J. Stephenson}, +} + +@article{biolchi2016, + AUTHOR={Biolchi, S. and Furlani, S. and Antonioli, F. and Baldassini, N. and Causon Deguara, J. and Devoto, S. and Di Stefano, A. and Evans, J. and Gambin, T. and Gauci, R. and Mastronuzzi, G. and Monaco, C. and Scicchitano, G.}, + TITLE={Boulder accumulations related to extreme wave events on the eastern coast of Malta}, + JOURNAL={Natural Hazards and Earth System Sciences}, + VOLUME={16}, + YEAR={2016}, + NUMBER={3}, + PAGES={737--756}, + URL={https://nhess.copernicus.org/articles/16/737/2016/}, + DOI={10.5194/nhess-16-737-2016} +} + +@article{shao2010, + title={Incompressible SPH flow model for wave interactions with porous media}, + journal={Coastal Engineering}, + volume={57}, + number={3}, + pages={304-316}, + year={2010}, + issn={0378-3839}, + doi={https://doi.org/10.1016/j.coastaleng.2009.10.012}, + url={https://www.sciencedirect.com/science/article/pii/S0378383909001628}, + author={Songdong Shao}, + keywords={ISPH, Porous flow, Wave damping, Breakwater}, +} + +@article{hsu2002, + title={A numerical model for wave motions and turbulence flows in front of a composite breakwater}, + journal={Coastal Engineering}, + volume={46}, + number={1}, + pages={25-50}, + year={2002}, + issn={0378-3839}, + doi={https://doi.org/10.1016/S0378-3839(02)00045-5}, + url={https://www.sciencedirect.com/science/article/pii/S0378383902000455}, + author={Tian-Jian Hsu and Tsutomu Sakakiyama and Philip L.-F. Liu}, + keywords={Composite breakwater, Wave forces, Breaking wave, Turbulence, Pore pressure, Porous media, Numerical modelling}, +} + +@article{thomas2015, + title={Numerical Wave Modelling – A Review}, + journal={Aquatic Procedia}, + volume={4}, + pages={443-448}, + year={2015}, + note={INTERNATIONAL CONFERENCE ON WATER RESOURCES, COASTAL AND OCEAN ENGINEERING (ICWRCOE'15)}, + issn={2214-241X}, + doi={https://doi.org/10.1016/j.aqpro.2015.02.059}, + url={https://www.sciencedirect.com/science/article/pii/S2214241X15000607}, + author={T. Justin Thomas and G.S. Dwarakish}, + keywords={numerical wave modelling, ocean engineering, wave forecasting, wave hindcasting, physical oceanography}, +} + +@article{mentaschi2013, + title={Problems in RMSE-based wave model validations}, + journal={Ocean Modelling}, + volume={72}, + pages={53-58}, + year={2013}, + issn={1463-5003}, + doi={https://doi.org/10.1016/j.ocemod.2013.08.003}, + url={https://www.sciencedirect.com/science/article/pii/S1463500313001418}, + author={L. Mentaschi and G. Besio and F. Cassola and A. Mazzino}, + keywords={Model validation, RMSE, Scatter index, WAVEWATCH III®, Mediterranean Sea}, +} + +@article{rusu2011, + author={Rusu, Eugen}, + year={2011}, + title={STRATEGIES IN USING NUMERICAL WAVE MODELS IN OCEAN/COASTAL APPLICATIONS}, + journal={Journal of Marine Science and Technology}, + volume={19}, + issue={1}, + doi={10.51400/2709-6998.2138}, +} + +@inbook{gaillard1980, + author={Pierre Gaillard and Michel Gauthier and Forrest Holly }, + title={Method of Analysis of Random Wave Experiments with Reflecting Coastal Structures}, + year={1980}, + booktitle={Coastal Engineering 1980}, + pages={204-220}, + doi={10.1061/9780872622647.011}, + URL={https://ascelibrary.org/doi/abs/10.1061/9780872622647.011}, + eprint={https://ascelibrary.org/doi/pdf/10.1061/9780872622647.011}, +} + +@inbook{guza1984, + author={R. T. Guza and E. B. Thornton and R. A. Holman }, + title={Swash on Steep and Shallow Beaches}, + booktitle={Coastal Engineering 1984}, + chapter={}, + year={1984}, + pages={708-723}, + doi={10.1061/9780872624382.049}, + URL={https://ascelibrary.org/doi/abs/10.1061/9780872624382.049}, + eprint={https://ascelibrary.org/doi/pdf/10.1061/9780872624382.049}, +} + +@inbook{kubota1990, + author={Susumu Kubota and Masaru Mizuguchi and Mitsuo Takezawa }, + title={Reflection from Swash Zone on Natural Beaches}, + booktitle={Coastal Engineering 1990}, + year={1990}, + chapter={}, + pages={570-583}, + doi={10.1061/9780872627765.046}, + URL={https://ascelibrary.org/doi/abs/10.1061/9780872627765.046}, + eprint={https://ascelibrary.org/doi/pdf/10.1061/9780872627765.046}, +} + +@article{walton1992, + title={Wave reflection from natural beaches}, + journal={Ocean Engineering}, + volume={19}, + number={3}, + pages={239-258}, + year={1992}, + issn={0029-8018}, + doi={https://doi.org/10.1016/0029-8018(92)90027-2}, + url={https://www.sciencedirect.com/science/article/pii/0029801892900272}, + author={T.L. Walton}, +} + +@article{hughes1993, + title={Laboratory wave reflection analysis using co-located gages}, + journal={Coastal Engineering}, + volume={20}, + number={3}, + pages={223-247}, + year={1993}, + issn={0378-3839}, + doi={https://doi.org/10.1016/0378-3839(93)90003-Q}, + url={https://www.sciencedirect.com/science/article/pii/037838399390003Q}, + author={Steven A. Hughes}, +} + +@report{miche1951, + title={Le pouvoir réfléchissant des ouvrages maritimes exposés à l'action + de la houle}, + author={Miche, M.}, + year={1951}, + publisher={École nationale des ponts et chaussées}, + booktitle={Hydraulic Engineering Reports}, +} + +@incollection{goda1977estimation, + title={Estimation of incident and reflected waves in random wave experiments}, + author={Goda, Yoshimi and Suzuki, Yasumasa}, + booktitle={Coastal Engineering 1976}, + pages={828--845}, + year={1977} +} + +@incollection{morden1977decomposition, + title={Decomposition of co-existing random wave energy}, + author={Morden, Dennis B and Richey, Eugene P and Christensen, Derald R}, + booktitle={Coastal Engineering 1976}, + pages={846--865}, + year={1977} +} + +@article{thornton1972spectral, + title={Spectral resolution of breakwater reflected waves}, + author={Thornton, Edward B and Calhoun, Ronald J}, + journal={Journal of the Waterways, Harbors and Coastal Engineering Division}, + volume={98}, + number={4}, + pages={443--460}, + year={1972}, + publisher={American Society of Civil Engineers} +} + +@incollection{isobe1985method, + title={Method for estimating directional wave spectrum in incident and reflected wave field}, + author={Isobe, Masahiko and Kondo, Kosuke}, + booktitle={Coastal Engineering 1984}, + pages={467--483}, + year={1985} +} + +@article{peng2017multiphase, + title={Multiphase SPH modeling of free surface flow in porous media with variable porosity}, + author={Peng, Chong and Xu, Guofang and Wu, Wei and Yu, Hai-sui and Wang, Chun}, + journal={Computers and Geotechnics}, + volume={81}, + pages={239--248}, + year={2017}, + publisher={Elsevier} +} + +@article{jiang2007mesoscale, + title={Mesoscale SPH modeling of fluid flow in isotropic porous media}, + author={Jiang, Fangming and Oliveira, M{\'o}nica SA and Sousa, Antonio CM}, + journal={Computer Physics Communications}, + volume={176}, + number={7}, + pages={471--480}, + year={2007}, + publisher={Elsevier} +} + +@article{jutzi2008numerical, + title={Numerical simulations of impacts involving porous bodies: I. Implementing sub-resolution porosity in a 3D SPH hydrocode}, + author={Jutzi, Martin and Benz, Willy and Michel, Patrick}, + journal={Icarus}, + volume={198}, + number={1}, + pages={242--255}, + year={2008}, + publisher={Elsevier} +} + +@article{ren2016improved, + title={Improved SPH simulation of wave motions and turbulent flows through porous media}, + author={Ren, Bing and Wen, Hongjie and Dong, Ping and Wang, Yongxue}, + journal={Coastal Engineering}, + volume={107}, + pages={14--27}, + year={2016}, + publisher={Elsevier} +} + +@article{kunz2016study, + title={Study of multi-phase flow in porous media: comparison of SPH simulations with micro-model experiments}, + author={Kunz, P and Zarikos, IM and Karadimitriou, NK and Huber, M and Nieken, U and Hassanizadeh, SM}, + journal={Transport in Porous Media}, + volume={114}, + number={2}, + pages={581--600}, + year={2016}, + publisher={Springer} +} + +@article{kazemi2020sph, + title={SPH-based numerical treatment of the interfacial interaction of flow with porous media}, + author={Kazemi, Ehsan and Tait, Simon and Shao, Songdong}, + journal={International Journal for Numerical Methods in Fluids}, + volume={92}, + number={4}, + pages={219--245}, + year={2020}, + publisher={Wiley Online Library} +} + +@article{wen20183d, + title={3D SPH porous flow model for wave interaction with permeable structures}, + author={Wen, Hongjie and Ren, Bing and Wang, Guoyu}, + journal={Applied ocean research}, + volume={75}, + pages={223--233}, + year={2018}, + publisher={Elsevier} +} + +@article{pahar2016modeling, + title={Modeling free-surface flow in porous media with modified incompressible SPH}, + author={Pahar, Gourabananda and Dhar, Anirban}, + journal={Engineering Analysis with Boundary Elements}, + volume={68}, + pages={75--85}, + year={2016}, + publisher={Elsevier} +} + +@article{altomare2017long, + title={Long-crested wave generation and absorption for SPH-based DualSPHysics model}, + author={Altomare, Corrado and Dom{\'\i}nguez, Jose M and Crespo, AJC and Gonz{\'a}lez-Cao, J and Suzuki, T and G{\'o}mez-Gesteira, M and Troch, P}, + journal={Coastal Engineering}, + volume={127}, + pages={37--54}, + year={2017}, + publisher={Elsevier} +} + +@article{yim2008numerical, + title={Numerical simulations of wave generation by a vertical plunger using RANS and SPH models}, + author={Yim, Solomon C and Yuk, D and Panizzo, A and Di Risio, Marcello and Liu, PL-F}, + journal={Journal of waterway, port, coastal, and ocean engineering}, + volume={134}, + number={3}, + pages={143--159}, + year={2008}, + publisher={American Society of Civil Engineers} +} + +@article{wen2018non, + title={A non-reflective spectral wave maker for SPH modeling of nonlinear wave motion}, + author={Wen, Hongjie and Ren, Bing}, + journal={Wave motion}, + volume={79}, + pages={112--128}, + year={2018}, + publisher={Elsevier} +} + +@article{vieira2021novel, + title={Novel time-efficient approach to calibrate VARANS-VOF models for simulation of wave interaction with porous structures using Artificial Neural Networks}, + author={Vieira, Filipe and Taveira-Pinto, Francisco and Rosa-Santos, Paulo}, + journal={Ocean Engineering}, + volume={235}, + pages={109375}, + year={2021}, + publisher={Elsevier} +} + +@article{liu1999numerical, + title={Numerical modeling of wave interaction with porous structures}, + author={Liu, Philip L-F and Lin, Pengzhi and Chang, Kuang-An and Sakakiyama, Tsutomu}, + journal={Journal of waterway, port, coastal, and ocean engineering}, + volume={125}, + number={6}, + pages={322--330}, + year={1999}, + publisher={American Society of Civil Engineers} +} + +@article{hsu2002numerical, + title={A numerical model for wave motions and turbulence flows in front of a composite breakwater}, + author={Hsu, Tian-Jian and Sakakiyama, Tsutomu and Liu, Philip L-F}, + journal={Coastal Engineering}, + volume={46}, + number={1}, + pages={25--50}, + year={2002}, + publisher={Elsevier} +} + +@incollection{hall1994boundary, + title={Boundary element method}, + author={Hall, William S}, + booktitle={The boundary element method}, + pages={61--83}, + year={1994}, + publisher={Springer} +} + +@incollection{van1995wave, + title={Wave action on and in permeable structures}, + author={Van Gent, MRA and T{\"o}jnjes, P and Petit, HAH and Van den Bosch, P}, + booktitle={Coastal Engineering 1994}, + pages={1739--1753}, + year={1995} +} + +@article{herbers2012observing, + title={Observing ocean surface waves with GPS-tracked buoys}, + author={Herbers, THC and Jessen, PF and Janssen, TT and Colbert, DB and MacMahan, JH}, + journal={Journal of Atmospheric and Oceanic Technology}, + volume={29}, + number={7}, + pages={944--959}, + year={2012} +} + +@article{doong2011wave, + title={Wave measurements using GPS velocity signals}, + author={Doong, Dong-Jiing and Lee, Beng-Chun and Kao, Chia Chuen}, + journal={Sensors}, + volume={11}, + number={1}, + pages={1043--1058}, + year={2011}, + publisher={Molecular Diversity Preservation International} +} + +@article{hirt1981volume, + title={Volume of fluid (VOF) method for the dynamics of free boundaries}, + author={Hirt, Cyril W and Nichols, Billy D}, + journal={Journal of computational physics}, + volume={39}, + number={1}, + pages={201--225}, + year={1981}, + publisher={Elsevier} +} + +@incollection{van1993numerical, + title={Numerical simulation of wave motion on and in coastal structures}, + author={Van der Meer, JW and Petit, HAH and Van den Bosch, P and Klopman, G and Broekens, RD}, + booktitle={Coastal Engineering 1992}, + pages={1772--1784}, + year={1993} +} + +@article{burcharth1995one, + title={On the one-dimensional steady and unsteady porous flow equations}, + author={Burcharth, HF and Andersen, OK}, + journal={Coastal engineering}, + volume={24}, + number={3-4}, + pages={233--257}, + year={1995}, + publisher={Elsevier} +} + +@article{menter1994two, + title={Two-Equation Eddy-Viscosity Turbulence Models for Engineering Applications}, + author={Menter, FR}, + journal={AIA A JOURNAL}, + volume={32}, + number={8}, + year={1994} +} + +@article{huang2003structural, + title={Structural permeability effects on the interaction of a solitary wave and a submerged breakwater}, + author={Huang, Ching-Jer and Chang, Hsing-Han and Hwung, Hwung-Hweng}, + journal={Coastal engineering}, + volume={49}, + number={1-2}, + pages={1--24}, + year={2003}, + publisher={Elsevier} +} + +@article{dalrymple2006numerical, + title={Numerical modeling of water waves with the SPH method}, + author={Dalrymple, Robert Anthony and Rogers, BD}, + journal={Coastal engineering}, + volume={53}, + number={2-3}, + pages={141--147}, + year={2006}, + publisher={Elsevier} +} + +@article{wen2016sph, + title={A SPH numerical wave basin for modeling wave-structure interactions}, + author={Wen, Hongjie and Ren, Bing and Dong, Ping and Wang, Yongxue}, + journal={Applied Ocean Research}, + volume={59}, + pages={366--377}, + year={2016}, + publisher={Elsevier} +} + +@book{violeau2012fluid, + title={Fluid mechanics and the SPH method: theory and applications}, + author={Violeau, Damien}, + year={2012}, + publisher={Oxford University Press} +} + +@article{violeau2007numerical, + title={Numerical modelling of complex turbulent free-surface flows with the SPH method: an overview}, + author={Violeau, Damien and Issa, Reza}, + journal={International Journal for Numerical Methods in Fluids}, + volume={53}, + number={2}, + pages={277--304}, + year={2007}, + publisher={Wiley Online Library} +} + +@article{ren2014numerical, + title={Numerical simulation of wave interaction with porous structures using an improved smoothed particle hydrodynamic method}, + author={Ren, Bing and Wen, Hongjie and Dong, Ping and Wang, Yongxue}, + journal={Coastal Engineering}, + volume={88}, + pages={88--100}, + year={2014}, + publisher={Elsevier} +} + +@article{liu2015isph, + title={ISPH wave simulation by using an internal wave maker}, + author={Liu, Xin and Lin, Pengzhi and Shao, Songdong}, + journal={Coastal Engineering}, + volume={95}, + pages={160--170}, + year={2015}, + publisher={Elsevier} +} + +@article{zheng2010numerical, + title={Numerical wave flume with improved smoothed particle hydrodynamics}, + author={Zheng, Jin-hai and Soe, Mee Mee and Zhang, Chi and Hsu, Tai-Wen}, + journal={Journal of Hydrodynamics}, + volume={22}, + number={6}, + pages={773--781}, + year={2010}, + publisher={Springer} +} + +@article{nott1997extremely, + title={Extremely high-energy wave deposits inside the Great Barrier Reef, Australia: determining the cause—tsunami or tropical cyclone}, + author={Nott, Jonathan}, + journal={Marine Geology}, + volume={141}, + number={1-4}, + pages={193--207}, + year={1997}, + publisher={Elsevier} +} + +@article{buckley2012inverse, + title={Inverse modeling of velocities and inferred cause of overwash that emplaced inland fields of boulders at Anegada, British Virgin Islands}, + author={Buckley, Mark L and Wei, Yong and Jaffe, Bruce E and Watt, Steve G}, + journal={Natural Hazards}, + volume={63}, + number={1}, + pages={133--149}, + year={2012}, + publisher={Springer} +} + +@inproceedings{liu2014experimental, + title={An experimental study on the tsunami boulder movement}, + author={Liu, Haijiang and Sakashita, Taiki and Sato, Shinji}, + booktitle={Proceedings of the 34th International Conference on Coastal Engineering, ASCE, Seoul, Korea}, + volume={16}, + year={2014} +} + +@article{kennedy2017extreme, + title={Extreme block and boulder transport along a cliffed coastline (Calicoan Island, Philippines) during Super Typhoon Haiyan}, + author={Kennedy, Andrew B and Mori, Nobuhito and Yasuda, Tomohiro and Shimozono, Takenori and Tomiczek, Tori and Donahue, Aaron and Shimura, Tomoya and Imai, Yuki}, + journal={Marine Geology}, + volume={383}, + pages={65--77}, + year={2017}, + publisher={Elsevier} +} + +@article{bressan2018laboratory, + title={A laboratory experiment on the incipient motion of boulders by high-energy coastal flows}, + author={Bressan, L and Guerrero, M and Antonini, A and Petruzzelli, V and Archetti, R and Lamberti, A and Tinti, S}, + journal={Earth Surface Processes and Landforms}, + volume={43}, + number={14}, + pages={2935--2947}, + year={2018}, + publisher={Wiley Online Library} +} + +@article{cox2020systematic, + title={Systematic review shows that work done by storm waves can be misinterpreted as tsunami-related because commonly used hydrodynamic equations are flawed}, + author={Cox, R{\'o}nadh and Ardhuin, Fabrice and Dias, Fr{\'e}d{\'e}ric and Autret, Ronan and Beisiegel, Nicole and Earlie, Claire S and Herterich, James G and Kennedy, Andrew and Paris, Rapha{\"e}l and Raby, Alison and others}, + journal={Frontiers in Marine Science}, + pages={4}, + year={2020}, + publisher={Frontiers} +} + +@book{hudson1975reliability, + title={Reliability of rubble-mound breakwater stability models}, + author={Hudson, Robert Y}, + year={1975}, + publisher={US Army Engineer Waterways Experiment Station} +} + +@article{hudson1959laboratory, + title={Laboratory investigation of rubble-mound breakwaters}, + author={Hudson, Robert Y}, + journal={Journal of the waterways and Harbors division}, + volume={85}, + number={3}, + pages={93--121}, + year={1959}, + publisher={American Society of Civil Engineers} +} + +@article{van1987stability, + title={Stability of breakwater armour layers—design formulae}, + author={Van der Meer, Jentsje W}, + journal={Coastal engineering}, + volume={11}, + number={3}, + pages={219--239}, + year={1987}, + publisher={Elsevier} +} + +@incollection{galland1995rubble, + title={Rubble mound breakwater stability under oblique waves: an experimental study}, + author={Galland, J-C}, + booktitle={Coastal Engineering 1994}, + pages={1061--1074}, + year={1995} +} + +@article{etemad2012stability, + title={Stability of rubble-mound breakwater using H50 wave height parameter}, + author={Etemad-Shahidi, Amir and Bali, Meysam}, + journal={Coastal Engineering}, + volume={59}, + number={1}, + pages={38--45}, + year={2012}, + publisher={Elsevier} +} + +@incollection{van1995conceptual, + title={Conceptual design of rubble mound breakwaters}, + author={Van der Meer, Jentsje W}, + booktitle={Advances In Coastal And Ocean Engineering: (Volume 1)}, + pages={221--315}, + year={1995}, + publisher={World Scientific} +} + +@article{van2014oblique, + title={Oblique wave attack on rubble mound breakwaters}, + author={van Gent, Marcel RA}, + journal={Coastal Engineering}, + volume={88}, + pages={43--54}, + year={2014}, + publisher={Elsevier} +} + +@article{iglesias2008virtual, + title={A virtual laboratory for stability tests of rubble-mound breakwaters}, + author={Iglesias, G and Rabu{\~n}al, J and Losada, MA and Pach{\'o}n, H and Castro, A and Carballo, R}, + journal={Ocean engineering}, + volume={35}, + number={11-12}, + pages={1113--1120}, + year={2008}, + publisher={Elsevier} +} + diff --git a/report/main.tex b/report/main.tex index 634d7f4..f5c6aa4 100644 --- a/report/main.tex +++ b/report/main.tex @@ -1,3 +1,44 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d62ab7176f583acebf417bafe0a2733caae19e5b986161188f3c0ba124abff36 -size 1084 +\documentclass[english, a4paper]{book} +\usepackage{cours} +\setmainlanguage{english} + +\usepackage[ + backend=biber, + style=iso-authoryear, + sorting=nyt, +]{biblatex} +\bibliography{library} + +\hypersetup{ + pdftitle = {M2 Internship}, + pdfauthor = {Edgar P. Burkhart}, +} + +\title{\interlight\huge M2 Internship\\{\Huge Bibliography review}\\ +\vspace{1em} Simulation of the breaking wave flow which generated the 50T +concrete block displacement at the Artha breakwater on February 28, 2017} +\author{\Large Edgar P. +Burkhart\thanks{\email{edgar-pierre.burkhart@etud.univ-pau.fr}, +\email{edgar.burkhart@ens-paris-saclay.fr}.}} +\affil{Université de Pau et des Pays de l'Adour} +\affil{École Normale Supérieure Paris-Saclay} +\date{February 2022} + +\setcounter{tocdepth}{3} + +\begin{document} +\frontmatter +\maketitle + +\tableofcontents + +\mainmatter +%\include{notes/bibliography_research} +\include{chapters/introduction} +\include{chapters/literature} + +\backmatter +%\nocite{*} +\defbibnote{bibstyle}{\emph{Bibliographic style: ISO690 Author-Year.}} +\printbibliography[prenote=bibstyle] +\end{document} diff --git a/report/notes/bibliography_research.tex b/report/notes/bibliography_research.tex index 7ae41bd..2ec0422 100644 --- a/report/notes/bibliography_research.tex +++ b/report/notes/bibliography_research.tex @@ -1,3 +1,69 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d2758378f678604e9cd2f59edeeed3d1a67d4b03ef711f2bf081909b57454901 -size 2606 +\chapter{Bibliography research} +\section{Extracting components from buoy data} +\paragraph{incident and reflected wave separation} +\cite{mansard1980measurement}: extract incident and reflected spectra from +spectrum measurements at three different points. +\cite{suh2001separation,frigaard1995time,baldock1999separation, +roge2019estimation,andersen2017estimation} + +\paragraph{incident and reflected wave separation single gauge} +\paragraph{incident and reflected wave separation puv method} +Probablement très intéressant: \cite{inch2016accurate}: +\cite{sheremet2002observations,guza1977resonant} +Très bien: \cite{huntley1999use,tatavarti1989incoming} + +\cite{pedersen2007resolving} +\paragraph{puv method} +\cite{sobey1999locally} +\paragraph{artha breakwater reflection} +\cite{poncet2020wave,larroque2018situ} + +\section{Reflection} +\paragraph{wave reflection analysis} +\cite{davidson1996new} + +\section{Modeling wave impact on porous media} +\paragraph{olaFlow} +\cite{olaFlow,higuera2015application}: \cite{bogdanov2011direct,del2011three} + +\section{Breakwater modeling} +\paragraph{modelling breakwater} sph: \cite{altomare2014numerical} (SPH); + +\paragraph{rubble-mound breakwater model} \cite{vanneste20152d} (RANS) +\cite{sumer2000experimental} (experimental) +\cite{kim2005neural} (neural networks for breakwater design) +\cite{troch1999development} (VOFbreak, NS) +\cite{koley2020numerical} +\cite{losada1979joint} +\cite{lara2008wave} (COBRAS-UC, VARANS) +\cite{losada2008numerical} (COBRAS-UC, VARANS) + +\paragraph{breakwater model} \cite{hsu2002} (VARANS) + +\section{Modeling} +\paragraph{using wave buoy data in numerical models} \cite{thomas2015, +mentaschi2013,rusu2011} + +\section{Block displacement} +\paragraph{boulder transport by waves} \cite{erdmann2018boulder,may2015block, +weiss2012mystery,weiss2015untangling,zainali2015boulder,zainali2016high} +\paragraph{boulder transport flow} \cite{nandasena2011reassessment, +nandasena2013boulder,martinez2011quasi,kennedy2016observations,lodhi2020role, +oetjen2021experiments,oetjen2020significance} +\paragraph{storm waves boulder interaction} \cite{nandasena2011numerical} +Très intéressant: \cite{weiss2017toward}, +\cite{sheremet2002observations,sheremet2016triads} +\paragraph{block transport by waves} \cite{imamura2008numerical, +barbano2010large,paris2011,biolchi2016} + +\section{GPS buoys} +\paragraph{Datawell DWR-G reflected wave} \cite{herbers2012observing} + +\paragraph{gps wave buoy reflected wave} \cite{doong2011wave} + +\section{Other} +\cite{miche1951} + +\cite{isobe1985method} +\section{Flow in porous media} +\paragraph{wave flow porous media} \cite{shao2010} diff --git a/swash/.gitignore b/swash/.gitignore index 19d7ef0..d4df5e8 100644 --- a/swash/.gitignore +++ b/swash/.gitignore @@ -1,3 +1,3 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:483eba7c2aaf6013155873bc675ab40e96c433a9c31b8dd056af8049c1f7d3c7 -size 31 +/inp* +/out* +/swash_buoytoartha diff --git a/swash/config.ini b/swash/config.ini index a843d39..b155e45 100644 --- a/swash/config.ini +++ b/swash/config.ini @@ -1,3 +1,28 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:81e07a16f52e1a07ab145ebb68357d54d37656432009e40e5a88eb0439bccbae -size 323 +[proc] +#plot=True + +[data] +root=data +hires=bathyhires.dat +bathy=buoyarthabathy.dat +hstru=Hstru.dat +poro=Poro.dat +psize=Psize.dat +out=out_data +out_nb=out_data_nb + +[swash] +nb=True +input=sws/INPUT.sws +path=/opt/swash +out=out_sws +mpi=4 + +[post] +inp=inp_post +compare=inp_post_nb +out=out_post +#nperseg=1024 +dt=0.25 +x0=-1250 +t0=180 diff --git a/swash/data/Hstru.dat b/swash/data/Hstru.dat index 7572dc3..4168f19 100644 --- a/swash/data/Hstru.dat +++ b/swash/data/Hstru.dat @@ -1,3 +1 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:752dec83ecb9ee7fb94f4b1d2f46ce0e4ebbf504002714b798e704fd705e64e8 -size 2639 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.09053913636363475 0.12857195454545334 0.1106843636363628 0.08742181818181649 0.05449704545454637 0.19579977272727156 0.47464572727272625 0.7977639000000014 1.2037601545454546 1.5225200999999977 1.7882055545454527 2.024811236363634 2.256461418181816 2.7078580227272706 3.3284555954545443 4.016352159090907 4.587657986363634 4.972522395454543 5.264216395454545 5.512329618181816 5.8869764545454535 6.372828168181817 6.94589004090909 7.571161649999999 8.023941072727272 8.39270449090909 8.77935388181818 8.805197545454547 8.601612395454545 8.292523681818182 7.930243750000001 7.646413318181818 7.526211804545455 7.564564154090908 7.746881157727273 7.834589710454546 7.754542366818181 7.49324825090909 7.207938067272727 7.178323675454545 7.217737861818183 7.161903220909092 7.1852990436363635 7.206258208636364 7.038393730000001 6.763687682727273 6.502847790000001 6.291055629545454 6.077600841363637 5.790635207727273 5.443607505909091 5.103184435909092 4.86922702 4.617471335454545 4.3047238850000005 4.031671995909091 3.8282986531818186 3.6257627568181823 3.385370432272728 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 1.8351631188311681 1.8344353740259738 1.8088506428571423 1.7847644344155826 1.7829720396103879 1.7923390038961013 1.7139384863636344 1.6436818051948028 1.6240780240259713 1.60447424285714 1.4623914616883082 1.320308680519477 1.1642865493506456 1.0082644181818141 0.8563518870129894 0.7044393558441584 0.5246033246753274 0.3447672935064956 0.16403271233766414 -0.01670186883116731 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \ No newline at end of file diff --git a/swash/data/Poro.dat b/swash/data/Poro.dat index ead67c1..6f646e3 100644 --- a/swash/data/Poro.dat +++ b/swash/data/Poro.dat @@ -1,3 +1 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0b1ea84701b4c5daa9e37293b3a8c84aff9357a425969c5d1720f13ab4ec7606 -size 1308 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \ No newline at end of file diff --git a/swash/data/Psize.dat b/swash/data/Psize.dat index 6adc185..c45e001 100644 --- a/swash/data/Psize.dat +++ b/swash/data/Psize.dat @@ -1,3 +1 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eaa82206c1a952bdfd10ba322149514d2a3aaf7db7a08d0f89d96fa282bfdc43 -size 900 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \ No newline at end of file diff --git a/swash/data/bathyhires.dat b/swash/data/bathyhires.dat index 2a86fb2..54099d5 100644 --- a/swash/data/bathyhires.dat +++ b/swash/data/bathyhires.dat @@ -1,3 +1 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cd7a7e42abc9ec28c5cfe91964e8cb6d7807a947463cd708edf835386b6f5c2c -size 4809 +-16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0030005 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -15.943623500000001 -15.881246 -15.816197500000001 -15.751149 -15.773361 -15.795573 -15.8146685 -15.833764 -15.778788 -15.723812 -15.689659 -15.655506 -15.6387295 -15.621953 -15.661657 -15.701361 -15.7411355 -15.78091 -15.755651499999999 -15.730393 -15.688119 -15.645845 -15.631902499999999 -15.61796 -15.589325500000001 -15.560691 -15.5670085 -15.573326 -15.486844 -15.400362 -15.214036 -15.02771 -14.9567825 -14.885855 -14.882393 -14.878931 -14.9088545 -14.938778 -14.8344285 -14.730079 -14.7571455 -14.784212 -14.7689165 -14.753621 -14.7533025 -14.752984 -14.706036000000001 -14.659088 -14.7279955 -14.796903 -14.814821 -14.832739 -14.8244145 -14.81609 -14.7981595 -14.780229 -14.771710500000001 -14.763192 -14.7391665 -14.715141 -14.759877 -14.804613 -14.762627 -14.720641 -14.789644500000001 -14.858648 -14.862199 -14.86575 -14.799389999999999 -14.73303 -14.760145999999999 -14.787262 -14.737239500000001 -14.687217 -14.715263 -14.743309 -14.737463 -14.731617 -14.7335975 -14.735578 -14.7440185 -14.752459 -14.800866 -14.849273 -14.8300105 -14.810748 -14.7690775 -14.727407 -14.699237 -14.671067 -14.697172 -14.723277 -14.7142905 -14.705304 -14.6880615 -14.670819 -14.727667 -14.784515 -14.708768 -14.633021 -14.675764999999998 -14.718509 -14.597324 -14.476139 -14.459793999999999 -14.443449 -14.4187075 -14.393966 -14.3316695 -14.002316272727272 -13.855776363636364 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.73685518181818 -13.480393763636364 -13.02899715909091 -12.408399586363636 -11.720503022727273 -11.149197195454546 -10.764332786363637 -10.472638786363635 -10.224525563636364 -9.849878727272728 -9.364027013636363 -8.79096514090909 -8.165693531818182 -7.712914109090909 -7.344150690909092 -6.9575013000000006 -6.675196218181818 -6.427384763636364 -6.115875904545455 -5.790259272727273 -5.502783877272728 -5.238120981818182 -4.9080746322727276 -4.477644405909091 -4.015289016818182 -3.6094846468181823 -3.2977168900000002 -2.9577554645454542 -2.534590433636364 -2.126412829090909 -1.795598079090909 -1.4898971745454546 -1.2211265550000001 0.18171014090909088 0.225112168181818 0.2626339090909089 0.3160848454545455 0.3755115090909089 0.44294754090909105 0.5119367499999998 0.579982840909091 0.6242613363636367 0.6613643272727274 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.7182761454545452 0.8831130266233771 1.0479499077922085 1.21278678896104 1.3776236701298714 1.5424605512987029 1.7072974324675343 1.8721343136363657 2.036971194805197 2.2018080759740286 2.36664495714286 2.5314818383116915 2.696318719480523 2.8611556006493544 3.025992481818186 3.19082936298701 3.3556662441558416 3.520503125324673 3.6853400064935045 3.850176887662336 4.015013768831167 4.1798506500000006 4.3613894 5.0562667 5.751144 7.12597825 8.5008125 8.95175665 9.4027008 9.39748715 9.3922735 9.389079899999999 9.3858863 9.3923233 9.3987603 9.394938549999999 9.3911168 9.3864873 9.3818578 9.364699 9.3475402 9.3475402 \ No newline at end of file diff --git a/swash/data/buoyarthabathy.dat b/swash/data/buoyarthabathy.dat index 98b7dfc..040d1ee 100644 --- a/swash/data/buoyarthabathy.dat +++ b/swash/data/buoyarthabathy.dat @@ -1,3 +1 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d76300be9349c43d90b0db444f00667a34617d0c2c53164a1e5504d1fe1f9bf7 -size 21996 +-18.630917739070004 -18.396850213715396 -18.16278268836079 -17.97697218418998 -18.009337789878305 -18.04170339556663 -18.062344725725 -18.062344725725 -18.062344725725 -18.062344725725 -18.062344725725 -18.062344725725 -18.062344725725 -18.062344725725 -18.062344725725 -17.925174203890386 -17.773707036118076 -17.644882122960535 -17.754466831923214 -17.864051540885896 -17.944283202805 -17.944283202805 -17.944283202805 -17.944283202805 -17.944283202805 -17.944283202805 -17.944283202805 -17.944283202805 -17.944283202805 -17.951058787500973 -17.959411080585316 -17.96776337366966 -18.07657334475572 -18.1861580537184 -18.276733170310003 -18.276733170310003 -18.276733170310003 -18.276733170310003 -18.276733170310003 -18.276733170310003 -18.276733170310003 -18.276733170310003 -18.276733170310003 -18.30525844383993 -18.345051707981323 -18.384844972122714 -18.528282969478806 -18.683498777427477 -18.826439865870004 -18.826439865870004 -18.826439865870004 -18.826439865870004 -18.826439865870004 -18.826439865870004 -18.826439865870004 -18.826439865870004 -18.826439865870004 -18.676429769230275 -18.435429941841857 -18.194430114453443 -18.12954951448041 -18.107720281208916 -18.085891047937423 -18.08555692702 -18.08555692702 -18.08555692702 -18.08555692702 -18.08555692702 -18.08555692702 -18.08555692702 -18.08555692702 -17.976113005564642 -17.768856883774777 -17.56160076198491 -17.4858463621545 -17.464017128883008 -17.442187895611514 -17.439793362369997 -17.439793362369997 -17.439793362369997 -17.439793362369997 -17.439793362369997 -17.439793362369997 -17.439793362369997 -17.439793362369997 -17.35971095086923 -17.175050331408634 -16.990389711948037 -16.94736112180117 -16.99307293176374 -17.03878474172631 -17.048113682535 -17.048113682535 -17.048113682535 -17.048113682535 -17.048113682535 -17.048113682535 -17.048113682535 -17.048113682535 -17.01604301460557 -16.921518940708307 -16.82699486681104 -16.805450691657157 -16.851162501619726 -16.896874311582295 -16.910517887515002 -16.910517887515002 -16.910517887515002 -16.910517887515002 -16.910517887515002 -16.910517887515002 -16.910517887515002 -16.910517887515002 -16.89915702219779 -16.852766822152503 -16.80637662210722 -16.806661262861773 -16.869831168167003 -16.933001073472234 -16.957817821985003 -16.957817821985003 -16.957817821985003 -16.957817821985003 -16.957817821985003 -16.957817821985003 -16.957817821985003 -16.957817821985003 -16.94188143920322 -16.835999031568328 -16.730116623933434 -16.660567924705596 -16.664245622421216 -16.667923320136836 -16.669715259585008 -16.669715259585008 -16.669715259585008 -16.669715259585008 -16.669715259585008 -16.669715259585008 -16.669715259585008 -16.669715259585008 -16.66357220389442 -16.554114120680303 -16.44465603746618 -16.36203884105427 -16.36571653876989 -16.36939423648551 -16.371533305565002 -16.371533305565002 -16.371533305565002 -16.371533305565002 -16.371533305565002 -16.371533305565002 -16.371533305565002 -16.371533305565002 -16.371533305565002 -16.266263669412652 -16.156805586198534 -16.06946932587589 -16.1148640029021 -16.160258679928305 -16.190946408020004 -16.190946408020004 -16.190946408020004 -16.190946408020004 -16.190946408020004 -16.190946408020004 -16.190946408020004 -16.190946408020004 -16.190946408020004 -16.132191368920004 -16.06445026501647 -16.0021927831478 -16.04758746017401 -16.09298213720022 -16.127954566950002 -16.127954566950002 -16.127954566950002 -16.127954566950002 -16.127954566950002 -16.127954566950002 -16.127954566950002 -16.127954566950002 -16.127954566950002 -16.075593458575593 -16.007852354672064 -15.940111250768533 -16.037239058773466 -16.142301734196447 -16.233159507075005 -16.233159507075005 -16.233159507075005 -16.233159507075005 -16.233159507075005 -16.233159507075005 -16.233159507075005 -16.233159507075005 -16.233159507075005 -16.23127543160381 -16.22849889933047 -16.225722367057134 -16.371504185888472 -16.54153143294165 -16.704618792360005 -16.704618792360005 -16.704618792360005 -16.704618792360005 -16.704618792360005 -16.704618792360005 -16.704618792360005 -16.704618792360005 -16.704618792360005 -16.733863891985003 -16.78392537256578 -16.833986853146556 -16.975858869292942 -17.14588611634612 -17.315913363399297 -17.32502196592001 -17.32502196592001 -17.32502196592001 -17.32502196592001 -17.32502196592001 -17.32502196592001 -17.32502196592001 -17.32502196592001 -17.3495418747759 -17.39960335535668 -17.449664835937458 -17.571554036731104 -17.72867432462537 -17.885794612519632 -17.90904200205501 -17.90904200205501 -17.90904200205501 -17.90904200205501 -17.90904200205501 -17.90904200205501 -17.90904200205501 -17.90904200205501 -17.92373320312743 -17.960887724549295 -17.998042245971156 -18.10436070418578 -18.261480992080042 -18.4186012799743 -18.456678900765006 -18.456678900765006 -18.456678900765006 -18.456678900765006 -18.456678900765006 -18.456678900765006 -18.456678900765006 -18.456678900765006 -18.467863169968524 -18.50501769139039 -18.54217221281225 -18.6206111773879 -18.743392692017615 -18.866174206647333 -18.907519002389996 -18.907519002389996 -18.907519002389996 -18.907519002389996 -18.907519002389996 -18.907519002389996 -18.907519002389996 -18.907519002389996 -18.904747228230132 -18.891333210073753 -18.877919191917375 -18.897707477249753 -18.969920452301228 -19.042133427352706 -19.073266062005 -19.073266062005 -19.073266062005 -19.073266062005 -19.073266062005 -19.073266062005 -19.073266062005 -19.073266062005 -19.07554153668766 -19.095813947496822 -19.11608635830598 -19.151596434645413 -19.223809409696887 -19.296022384748362 -19.333971040005004 -19.333971040005004 -19.333971040005004 -19.333971040005004 -19.333971040005004 -19.333971040005004 -19.333971040005004 -19.333971040005004 -19.33433304734088 -19.35460545815004 -19.3748778689592 -19.395412353826593 -19.417001854774572 -19.438591355722554 -19.4519746433 -19.4519746433 -19.4519746433 -19.4519746433 -19.4519746433 -19.4519746433 -19.4519746433 -19.4519746433 -19.4519746433 -19.423946365461866 -19.393595302167537 -19.36867679788834 -19.39026629883632 -19.4118557997843 -19.427276871889998 -19.427276871889998 -19.427276871889998 -19.427276871889998 -19.427276871889998 -19.427276871889998 -19.427276871889998 -19.427276871889998 -19.427276871889998 -19.402113362781176 -19.37176229948684 -19.34241621198872 -19.41055277672367 -19.478689341458615 -19.533789573654996 -19.533789573654996 -19.533789573654996 -19.533789573654996 -19.533789573654996 -19.533789573654996 -19.533789573654996 -19.533789573654996 -19.533789573654996 -19.56040968463172 -19.59664261346115 -19.63287554229058 -19.759305048830505 -19.894025605689222 -20.01568651673 -20.01568651673 -20.01568651673 -20.01568651673 -20.01568651673 -20.01568651673 -20.01568651673 -20.01568651673 -20.01568651673 -20.020790949292312 -20.02876281209879 -20.03673467490527 -20.148383511102057 -20.282570819775 -20.416415813885003 -20.416415813885003 -20.416415813885003 -20.416415813885003 -20.416415813885003 -20.416415813885003 -20.416415813885003 -20.416415813885003 -20.416415813885003 -20.420767800213028 -20.42873966301951 -20.43671152582599 -20.51463006031405 -20.618809275047482 -20.72298848978091 -20.732555968685002 -20.732555968685002 -20.732555968685002 -20.732555968685002 -20.732555968685002 -20.732555968685002 -20.732555968685002 -20.732555968685002 -20.725238159640618 -20.709031486502774 -20.692824813364926 -20.74909255300583 -20.847442209744077 -20.94579186648232 -20.96410698113001 -20.96410698113001 -20.96410698113001 -20.96410698113001 -20.96410698113001 -20.96410698113001 -20.96410698113001 -20.96410698113001 -20.958318883580777 -20.942112210442932 -20.925905537305084 -20.882589763692913 -20.81601926408144 -20.749448764469964 -20.730768267130006 -20.730768267130006 -20.730768267130006 -20.730768267130006 -20.730768267130006 -20.730768267130006 -20.730768267130006 -20.730768267130006 -20.73720649152481 -20.761709248444845 -20.786212005364884 -20.79152885378794 -20.772808184668808 -20.754087515549674 -20.747067264629997 -20.747067264629997 -20.747067264629997 -20.747067264629997 -20.747067264629997 -20.747067264629997 -20.747067264629997 -20.747067264629997 -20.74695583423091 -20.746294005193917 -20.74563217615692 -20.713648252055574 -20.623364078016913 -20.533079903978248 -20.490701618204994 -20.490701618204994 -20.490701618204994 -20.490701618204994 -20.490701618204994 -20.490701618204994 -20.490701618204994 -20.490701618204994 -20.490652656362972 -20.489990827325975 -20.489328998288983 -20.48520857200221 -20.4709890417461 -20.45676951148999 -20.44875288856499 -20.44875288856499 -20.44875288856499 -20.44875288856499 -20.44875288856499 -20.44875288856499 -20.44875288856499 -20.44875288856499 -20.44875288856499 -20.447109975695053 -20.44543283547366 -20.45412780390209 -20.516988228612934 -20.579848653323776 -20.621221075709993 -20.621221075709993 -20.621221075709993 -20.621221075709993 -20.621221075709993 -20.621221075709993 -20.621221075709993 -20.621221075709993 -20.621221075709993 -20.619736464340544 -20.61805932411915 -20.607253995595524 -20.46795186250966 -20.328649729423798 -20.223817767025 -20.223817767025 -20.223817767025 -20.223817767025 -20.223817767025 -20.223817767025 -20.223817767025 -20.223817767025 -20.223817767025 -20.210298458386585 -20.19320307455994 -20.176107690733296 -20.02711710615422 -19.87431852365315 -19.74490747929 -19.74490747929 -19.74490747929 -19.74490747929 -19.74490747929 -19.74490747929 -19.74490747929 -19.74490747929 -19.74490747929 -19.745084941524354 -19.745339759091628 -19.745594576658906 -19.585864658960666 -19.40381128983002 -19.232439623479994 -19.232439623479994 -19.232439623479994 -19.232439623479994 -19.232439623479994 -19.232439623479994 -19.232439623479994 -19.232439623479994 -19.232439623479994 -19.23259303405621 -19.23284785162349 -19.233102669190767 -19.16018239389269 -19.067001913729612 -18.97382143356654 -18.970493559274995 -18.970493559274995 -18.970493559274995 -18.970493559274995 -18.970493559274995 -18.970493559274995 -18.970493559274995 -18.970493559274995 -18.995278273689053 -19.044100424695635 -19.09292257570223 -19.071698271547643 -19.018823346912818 -18.965948422277997 -18.959069286674996 -18.959069286674996 -18.959069286674996 -18.959069286674996 -18.959069286674996 -18.959069286674996 -18.959069286674996 -18.959069286674996 -18.97924578785629 -19.02806793886288 -19.07689008986946 -19.01771810908991 -18.884850561984184 -18.751983014878444 -18.7221556063445 -18.7221556063445 -18.7221556063445 -18.7221556063445 -18.7221556063445 -18.7221556063445 -18.7221556063445 -18.7221556063445 -18.734366519116616 -18.772659941569966 -18.810953364023323 -18.75079279623869 -18.592178238216057 -18.43356368019344 -18.382985058375002 -18.382985058375002 -18.382985058375002 -18.382985058375002 -18.382985058375002 -18.382985058375002 -18.382985058375002 -18.382985058375002 -18.382985058375002 -18.382985058375002 -18.382985058375002 -18.313780733542444 -18.143163781753998 -17.972546829965534 -17.902036763155003 -17.902036763155003 -17.902036763155003 -17.902036763155003 -17.902036763155003 -17.902036763155003 -17.902036763155003 -17.902036763155003 -17.902036763155003 -17.902036763155003 -17.902036763155003 -17.85502909987865 -17.703988083449644 -17.552947067020654 -17.476270632660004 -17.476270632660004 -17.476270632660004 -17.476270632660004 -17.476270632660004 -17.476270632660004 -17.476270632660004 -17.476270632660004 -17.476270632660004 -17.476270632660004 -17.476270632660004 -17.447764173754617 -17.31629909268509 -17.18483401161555 -17.105686666890005 -17.105686666890005 -17.105686666890005 -17.105686666890005 -17.105686666890005 -17.105686666890005 -17.105686666890005 -17.105686666890005 -17.105686666890005 -17.105686666890005 -17.105686666890005 -17.07668885205667 -16.83987336425093 -16.60305787644522 -16.43813280458051 -16.43813280458051 -16.43813280458051 -16.43813280458051 -16.43813280458051 -16.43813280458051 -16.43813280458051 -16.43813280458051 -16.43813280458051 -16.43813280458051 -16.43813280458051 -16.439049987294954 -16.471735044027955 -16.504420100760964 -16.530267977259005 -16.530267977259005 -16.530267977259005 -16.530267977259005 -16.530267977259005 -16.530267977259005 -16.530267977259005 -16.530267977259005 -16.530267977259005 -16.530267977259005 -16.530267977259005 -16.530267977259005 -16.52621944756576 -16.521883317402505 -16.5180449572835 -16.5180449572835 -16.5180449572835 -16.5180449572835 -16.5180449572835 -16.5180449572835 -16.5180449572835 -16.5180449572835 -16.5180449572835 -16.5180449572835 -16.5180449572835 -16.5180449572835 -16.503284257470536 -16.485697040672118 -16.468468746665497 -16.468468746665497 -16.468468746665497 -16.468468746665497 -16.468468746665497 -16.468468746665497 -16.468468746665497 -16.468468746665497 -16.468468746665497 -16.468468746665497 -16.468468746665497 -16.468468746665497 -16.44549735737313 -16.414659053939538 -16.38382075050595 -16.381539345404995 -16.381539345404995 -16.381539345404995 -16.381539345404995 -16.381539345404995 -16.381539345404995 -16.381539345404995 -16.381539345404995 -16.381539345404995 -16.381539345404995 -16.381539345404995 -16.354244597864074 -16.312285613409014 -16.270326628953946 -16.263262106061 -16.263262106061 -16.263262106061 -16.263262106061 -16.263262106061 -16.263262106061 -16.263262106061 -16.263262106061 -16.263262106061 -16.263262106061 -16.263262106061 -16.280066529570856 -16.310283658084003 -16.340500786597143 -16.348440491283 -16.348440491283 -16.348440491283 -16.348440491283 -16.348440491283 -16.348440491283 -16.348440491283 -16.348440491283 -16.348440491283 -16.348440491283 -16.348440491283 -16.340230009618892 -16.322448192976182 -16.30466637633347 -16.2983157275325 -16.2983157275325 -16.2983157275325 -16.2983157275325 -16.2983157275325 -16.2983157275325 -16.2983157275325 -16.2983157275325 -16.2983157275325 -16.2983157275325 -16.2983157275325 -16.306822376046192 -16.329979363666805 -16.353136351287414 -16.363592440085498 -16.363592440085498 -16.363592440085498 -16.363592440085498 -16.363592440085498 -16.363592440085498 -16.363592440085498 -16.363592440085498 -16.363592440085498 -16.363592440085498 -16.363592440085498 -16.381087975115037 -16.44518376699897 -16.509279558882906 -16.544270628941998 -16.544270628941998 -16.544270628941998 -16.544270628941998 -16.544270628941998 -16.544270628941998 -16.544270628941998 -16.544270628941998 -16.544270628941998 -16.544270628941998 -16.544270628941998 -16.551547971274363 -16.592301088335585 -16.63305420539681 -16.65914867576 -16.65914867576 -16.65914867576 -16.65914867576 -16.65914867576 -16.65914867576 -16.65914867576 -16.65914867576 -16.65914867576 -16.65914867576 -16.65914867576 -16.663049522834612 -16.709386857781542 -16.755724192728465 -16.789767949016003 -16.789767949016003 -16.789767949016003 -16.789767949016003 -16.789767949016003 -16.789767949016003 -16.789767949016003 -16.789767949016003 -16.789767949016003 -16.789767949016003 -16.789767949016003 -16.789767949016003 -16.790678696668884 -16.791598833472825 -16.7923617019965 -16.7923617019965 -16.7923617019965 -16.7923617019965 -16.7923617019965 -16.7923617019965 -16.7923617019965 -16.7923617019965 -16.7923617019965 -16.7923617019965 -16.7923617019965 -16.7923617019965 -16.805300553774796 -16.819750781401837 -16.833095124261504 -16.833095124261504 -16.833095124261504 -16.833095124261504 -16.833095124261504 -16.833095124261504 -16.833095124261504 -16.833095124261504 -16.833095124261504 -16.833095124261504 -16.833095124261504 -16.833095124261504 -16.855507930366972 -16.883488248817113 -16.911468567267253 -16.911968215811005 -16.911968215811005 -16.911968215811005 -16.911968215811005 -16.911968215811005 -16.911968215811005 -16.911968215811005 -16.911968215811005 -16.911968215811005 -16.911968215811005 -16.911968215811005 -16.90646774757785 -16.898683691450064 -16.890899635322278 -16.890025914736505 -16.890025914736505 -16.890025914736505 -16.890025914736505 -16.890025914736505 -16.890025914736505 -16.890025914736505 -16.890025914736505 -16.890025914736505 -16.890025914736505 -16.890025914736505 -16.857080236819442 -16.80326896288823 -16.74945768895702 -16.73833852266 -16.73833852266 -16.73833852266 -16.73833852266 -16.73833852266 -16.73833852266 -16.73833852266 -16.73833852266 -16.73833852266 -16.73833852266 -16.73833852266 -16.686721544239823 -16.58704737901463 -16.487373213789432 -16.45736925589 -16.45736925589 -16.45736925589 -16.45736925589 -16.45736925589 -16.45736925589 -16.45736925589 -16.45736925589 -16.45736925589 -16.45736925589 -16.45736925589 -16.45149383497077 -16.437619347016923 -16.423744859063078 -16.418258773265 -16.418258773265 -16.418258773265 -16.418258773265 -16.418258773265 -16.418258773265 -16.418258773265 -16.418258773265 -16.418258773265 -16.418258773265 -16.418258773265 -16.44192803199448 -16.513853221311987 -16.585778410629487 -16.621007074785002 -16.621007074785002 -16.621007074785002 -16.621007074785002 -16.621007074785002 -16.621007074785002 -16.621007074785002 -16.621007074785002 -16.621007074785002 -16.621007074785002 -16.621007074785002 -16.62540487607617 -16.644143333751593 -16.66288179142702 -16.673828492467 -16.673828492467 -16.673828492467 -16.673828492467 -16.673828492467 -16.673828492467 -16.673828492467 -16.673828492467 -16.673828492467 -16.673828492467 -16.673828492467 -16.671447835061425 -16.65448024046169 -16.63751264586196 -16.625998920955 -16.625998920955 -16.625998920955 -16.625998920955 -16.625998920955 -16.625998920955 -16.625998920955 -16.625998920955 -16.625998920955 -16.625998920955 -16.625998920955 -16.620351328542352 -16.497359316000168 -16.37436730345797 -16.279299497845 -16.279299497845 -16.279299497845 -16.279299497845 -16.279299497845 -16.279299497845 -16.279299497845 -16.279299497845 -16.279299497845 -16.279299497845 -16.279299497845 -16.279299497845 -16.212403728271894 -16.142100399390774 -16.081123022299998 -16.081123022299998 -16.081123022299998 -16.081123022299998 -16.081123022299998 -16.081123022299998 -16.081123022299998 -16.081123022299998 -16.081123022299998 -16.081123022299998 -16.081123022299998 -16.081123022299998 -16.066024754968524 -16.04841010974847 -16.031469494319996 -16.031469494319996 -16.031469494319996 -16.031469494319996 -16.031469494319996 -16.031469494319996 -16.031469494319996 -16.031469494319996 -16.031469494319996 -16.031469494319996 -16.031469494319996 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.0 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -16.006001 -15.881246 -15.751149 -15.795573 -15.833764 -15.723812 -15.655506 -15.621953 -15.701361 -15.78091 -15.730393 -15.645845 -15.61796 -15.560691 -15.573326 -15.400362 -15.02771 -14.885855 -14.878931 -14.938778 -14.730079 -14.784212 -14.753621 -14.752984 -14.659088 -14.796903 -14.832739 -14.81609 -14.780229 -14.763192 -14.715141 -14.804613 -14.720641 -14.858648 -14.86575 -14.73303 -14.787262 -14.687217 -14.743309 -14.731617 -14.735578 -14.752459 -14.849273 -14.810748 -14.727407 -14.671067 -14.723277 -14.705304 -14.670819 -14.784515 -14.633021 -14.718509 -14.476139 -14.443449 -14.393966 -14.269373 -14.05046 -13.024493 -12.847855 -13.422777 -14.528433 -14.522089 -10.470171 -8.4702152 -10.212776 -11.427453 -7.6986877 -6.2117659 -6.2615591 -5.2203804 -4.5164339 -4.5824967 -2.7020835 -3.5107365 -2.1591868 -1.9571153 0.18526719 0.82155797 0.63316568 1.654992 1.3045589 0.69416413 0.79640311 2.009869 2.4126834 2.3356892 2.2139549 2.1471391 1.7152973 2.6886985 2.9621466 3.0166184 2.929054 2.3393511 2.3433035 2.3469653 2.3569901 2.3717335 1.9496872 2.8759647 3.8800847 3.4182367 2.9677069 3.3933076 2.4650057 2.1025229 2.5621633 2.7726328 2.4773913 1.8696259 1.5122613 1.7835063 2.02013 2.2776287 2.077631 3.1871877 3.3939833 3.4914926 3.680653 3.9711192 4.0166274 4.0342569 4.0601056 4.0301073 3.9983119 4.3613894 5.751144 8.5008125 9.4027008 9.3922735 9.3858863 9.3987603 9.3911168 9.3818578 9.3475402 \ No newline at end of file diff --git a/swash/processing/animate.py b/swash/processing/animate.py index feca76a..4e04b95 100644 --- a/swash/processing/animate.py +++ b/swash/processing/animate.py @@ -1,3 +1,60 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4ab57e0a813e6ea3086045717e251b2c44e00891a858d9f6365e3e604fefee03 -size 1316 +import argparse +import configparser +import logging +import pathlib + +import matplotlib.animation as animation +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd + +parser = argparse.ArgumentParser(description="Animate swash output") +parser.add_argument("-v", "--verbose", action="count", default=0) +args = parser.parse_args() + +logging.basicConfig(level=max((10, 20 - 10 * args.verbose))) +log = logging.getLogger("post") + +log.info("Starting post-processing") +config = configparser.ConfigParser() +config.read("config.ini") + +inp = pathlib.Path(config.get("post", "inp")) +root = pathlib.Path(config.get("swash", "out")) + +bathy = pd.read_hdf( + pathlib.Path(config.get("data", "out")).joinpath("bathy.h5"), "bathy" +) + + +def data(var): + return np.load(inp.joinpath(f"{var}.npy")) + + +x = data("xp") +t = data("tsec") + +watl = data("watl") +botl = data("botl") + +wl = np.maximum(watl, -botl) +# print(x.size, -np.arange(0, 1 * bathy.hstru.size, 1)[::-1].size) + +fig, ax = plt.subplots() +ax.plot(x, -botl, c="k") +# ax.fill_between( +# x, -botl, -data["botl"] + bathy.hstru, color="k", alpha=0.2 +# ) +(line,) = ax.plot(x, wl[0]) + + +def animate(i): + line.set_ydata(wl[i]) + return (line,) + + +ani = animation.FuncAnimation( + fig, animate, frames=wl[:, 0].size, interval=20, blit=True +) + +plt.show(block=True) diff --git a/swash/processing/bathy.py b/swash/processing/bathy.py index 3c76609..e6ac55c 100644 --- a/swash/processing/bathy.py +++ b/swash/processing/bathy.py @@ -1,3 +1,93 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:93e058c82e05d4d81cb1bb68459b978780f6c32fd0ba6c5d3662212542a0d118 -size 2877 +import argparse +import configparser +import logging +import pathlib +import sys + +import numpy as np +import pandas as pd + +try: + import matplotlib.pyplot as plt +except ImportError: + plt = None + + +parser = argparse.ArgumentParser(description="Pre-process bathymetry") +parser.add_argument("-v", "--verbose", action="count", default=0) +args = parser.parse_args() + +logging.basicConfig(level=max((10, 20 - 10 * args.verbose))) +log = logging.getLogger("bathy") + +log.info("Starting bathymetry pre-processing") +config = configparser.ConfigParser() +config.read("config.ini") + +root = pathlib.Path(config.get("data", "root")) + +log.info(f"Reading input data from '{root}'") +bathy_hires = np.loadtxt(root.joinpath(config.get("data", "hires"))) +bathy_lores = np.loadtxt(root.joinpath(config.get("data", "bathy"))) +hstru = np.loadtxt(root.joinpath(config.get("data", "hstru"))) +poro = np.loadtxt(root.joinpath(config.get("data", "poro"))) +psize = np.loadtxt(root.joinpath(config.get("data", "psize"))) + +log.info("Generating grid") +x_hires = -np.arange(0, 0.5 * bathy_hires.size, 0.5)[::-1] +x_lores = -np.arange(0, 1 * bathy_lores.size, 1)[::-1] +x_hstru = -np.arange(0, 0.5 * hstru.size, 0.5)[::-1] + +log.info("Generating output data") +bathy_hires_pd = pd.Series(bathy_hires.copy(), index=x_hires) +bathy_lores_pd = pd.Series(bathy_lores.copy(), index=x_lores) + +bathy = pd.DataFrame( + index=bathy_lores_pd.index.union(bathy_hires_pd.index), + columns=("z", "hstru", "poro", "psize"), + data=0, +) +bathy.z[bathy_lores_pd.index] = bathy_lores_pd +bathy.z[bathy_hires_pd.index] = bathy_hires_pd + +bathy.loc[x_hstru, ("hstru", "poro", "psize")] = np.array( + (hstru, poro, psize) +).T + +bathy = bathy.reindex(bathy_lores_pd.index) +log.debug(f"Bathymetry:\n{bathy}") +log.info( + f"xmin: {bathy.index.min()}, " + f"xmax: {bathy.index.max()}, " + f"n: {bathy.index.size}" +) + +if config.has_option("data", "out"): + out = pathlib.Path(config.get("data", "out")) + log.info(f"Writing output data to '{out}'") + out.mkdir(exist_ok=True) + np.savetxt(out.joinpath("bathy.dat"), bathy.z, newline=" ") + np.savetxt(out.joinpath("hstru.dat"), bathy.hstru, newline=" ") + np.savetxt(out.joinpath("poro.dat"), bathy.poro, newline=" ") + np.savetxt(out.joinpath("psize.dat"), bathy.psize, newline=" ") + + bathy.to_hdf(out.joinpath("bathy.h5"), "bathy", mode="w") + +if config.getboolean("proc", "plot", fallback=False): + if plt is None: + log.error("Could not import PyPlot") + sys.exit(1) + + log.info("Plotting data") + + fig, ax = plt.subplots() + ax.plot(x_hires, bathy_hires, label="High-res") + ax.plot(x_lores, bathy_lores, label="Low-res") + ax.plot(bathy.index, bathy.z, ls="-.", c="k", label="Combined") + ax.plot(bathy.index, bathy.z + bathy.hstru, label="Hstru") + + ax.grid() + ax.legend() + plt.show(block=True) + +log.info("Processing finished") diff --git a/swash/processing/bathy_nb.py b/swash/processing/bathy_nb.py index fe2912a..ead906d 100644 --- a/swash/processing/bathy_nb.py +++ b/swash/processing/bathy_nb.py @@ -1,3 +1,94 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8e3a75a559d7bf52e3e1703c5e45c8e473cd813aa99a95169bd9a500285f5a2d -size 2923 +import argparse +import configparser +import logging +import pathlib +import sys + +import numpy as np +import pandas as pd + +try: + import matplotlib.pyplot as plt +except ImportError: + plt = None + + +parser = argparse.ArgumentParser(description="Pre-process bathymetry") +parser.add_argument("-v", "--verbose", action="count", default=0) +args = parser.parse_args() + +logging.basicConfig(level=max((10, 20 - 10 * args.verbose))) +log = logging.getLogger("bathy") + +log.info("Starting bathymetry pre-processing") +config = configparser.ConfigParser() +config.read("config.ini") + +root = pathlib.Path(config.get("data", "root")) + +log.info(f"Reading input data from '{root}'") +bathy_hires = np.loadtxt(root.joinpath(config.get("data", "hires"))) +bathy_lores = np.loadtxt(root.joinpath(config.get("data", "bathy"))) +hstru = np.loadtxt(root.joinpath(config.get("data", "hstru"))) +poro = np.loadtxt(root.joinpath(config.get("data", "poro"))) +psize = np.loadtxt(root.joinpath(config.get("data", "psize"))) + +log.info("Generating grid") +x_hires = -np.arange(0, 0.5 * bathy_hires.size, 0.5)[::-1] +x_lores = -np.arange(0, 1 * bathy_lores.size, 1)[::-1] +x_hstru = -np.arange(0, 0.5 * hstru.size, 0.5)[::-1] + +log.info("Generating output data") +bathy_hires_pd = pd.Series(bathy_hires.copy(), index=x_hires) +bathy_lores_pd = pd.Series(bathy_lores.copy(), index=x_lores) + +bathy = pd.DataFrame( + index=bathy_lores_pd.index.union(bathy_hires_pd.index), + columns=("z", "hstru", "poro", "psize"), + data=0, +) +bathy.z[bathy_lores_pd.index] = bathy_lores_pd +bathy.z[bathy_hires_pd.index] = bathy_hires_pd +bathy.z = np.minimum(bathy.z, -15) + +# bathy.loc[x_hstru, ("hstru", "poro", "psize")] = np.array( +# (hstru, poro, psize) +# ).T + +bathy = bathy.reindex(bathy_lores_pd.index) +log.debug(f"Bathymetry:\n{bathy}") +log.info( + f"xmin: {bathy.index.min()}, " + f"xmax: {bathy.index.max()}, " + f"n: {bathy.index.size}" +) + +if config.has_option("data", "out_nb"): + out = pathlib.Path(config.get("data", "out_nb")) + log.info(f"Writing output data to '{out}'") + out.mkdir(exist_ok=True) + np.savetxt(out.joinpath("bathy.dat"), bathy.z, newline=" ") + np.savetxt(out.joinpath("hstru.dat"), bathy.hstru, newline=" ") + np.savetxt(out.joinpath("poro.dat"), bathy.poro, newline=" ") + np.savetxt(out.joinpath("psize.dat"), bathy.psize, newline=" ") + + bathy.to_hdf(out.joinpath("bathy.h5"), "bathy", mode="w") + +if config.getboolean("proc", "plot", fallback=False): + if plt is None: + log.error("Could not import PyPlot") + sys.exit(1) + + log.info("Plotting data") + + fig, ax = plt.subplots() + ax.plot(x_hires, bathy_hires, label="High-res") + ax.plot(x_lores, bathy_lores, label="Low-res") + ax.plot(bathy.index, bathy.z, ls="-.", c="k", label="Combined") + ax.plot(bathy.index, bathy.z + bathy.hstru, label="Hstru") + + ax.grid() + ax.legend() + plt.show(block=True) + +log.info("Processing finished") diff --git a/swash/processing/layers.py b/swash/processing/layers.py index df9e897..d1656b4 100644 --- a/swash/processing/layers.py +++ b/swash/processing/layers.py @@ -1,3 +1,92 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:60aeefb03fe5f6ec669d64cd781e7254d7aeace3a2faab75098a4734343385a0 -size 1992 +import argparse +import configparser +import logging +import pathlib + +import matplotlib.animation as animation +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd + +parser = argparse.ArgumentParser(description="Animate swash output") +parser.add_argument("-v", "--verbose", action="count", default=0) +args = parser.parse_args() + +logging.basicConfig(level=max((10, 20 - 10 * args.verbose))) +log = logging.getLogger("post") + +log.info("Starting post-processing") +config = configparser.ConfigParser() +config.read("config.ini") + +inp = pathlib.Path(config.get("post", "inp")) +root = pathlib.Path(config.get("swash", "out")) + +bathy = pd.read_hdf( + pathlib.Path(config.get("data", "out")).joinpath("bathy.h5"), "bathy" +) + + +def data(var): + return np.load(inp.joinpath(f"{var}.npy")) + + +x = data("xp") +t = data("tsec") + +watl = data("watl") +botl = data("botl") +zk = data("zk") +velk = data("velk") +vz = data("vz") + +wl = np.maximum(watl, -botl) +# print(x.size, -np.arange(0, 1 * bathy.hstru.size, 1)[::-1].size) + +fig, ax = plt.subplots() +# ax.plot(x, -botl, c="k") +# ax.fill_between( +# x, -botl, -data["botl"] + bathy.hstru, color="k", alpha=0.2 +# ) + +n = 0 +vk = np.sqrt((velk[n] ** 2).sum(axis=1)) +# print(vk.shape) +# plt.imshow(vk) +# plt.colorbar() + +lines = ax.plot(x, zk[n].T, c="#0066cc") +quiv = [] +for i in range(10): + quiv.append( + ax.quiver( + x[::50], + (zk[n, i, ::50] + zk[n, i + 1, ::50]) / 2, + velk[n, i, 0, ::50], + vz[n, i, ::50], + units="dots", + width=2, + scale=0.05, + ) + ) + +ax.autoscale(True, "w", True) +ax.set_ylim(top=15) + + +def animate(k): + for i, q in enumerate(quiv): + q.set_UVC( + velk[k, i, 0, ::50], + vz[k, i, ::50], + ) + for i, l in enumerate(lines): + l.set_ydata(zk[k, i]) + return *quiv, *lines + + +ani = animation.FuncAnimation( + fig, animate, frames=wl[:, 0].size, interval=20, blit=True +) + +plt.show(block=True) diff --git a/swash/processing/post.py b/swash/processing/post.py index 81b28c9..7b70cca 100644 --- a/swash/processing/post.py +++ b/swash/processing/post.py @@ -1,3 +1,169 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c8fefac1023d769a2a43c86f159cf33155f5462aed2dcd4ac968d782f79760d4 -size 4665 +import argparse +import configparser +import logging +import pathlib + +import matplotlib.pyplot as plt +import numpy as np +import scipy.fft as fft +import scipy.signal as sgl + +from .read_swash import * + +parser = argparse.ArgumentParser(description="Post-process swash output") +parser.add_argument("-v", "--verbose", action="count", default=0) +args = parser.parse_args() + +logging.basicConfig(level=max((10, 20 - 10 * args.verbose))) +log = logging.getLogger("post") + +log.info("Starting post-processing") +config = configparser.ConfigParser() +config.read("config.ini") + +inp = pathlib.Path(config.get("post", "inp")) +root = pathlib.Path(config.get("swash", "out")) + +log.info(f"Reading data from '{inp}'") +x = np.load(inp.joinpath("xp.npy")) +t = np.load(inp.joinpath("tsec.npy")) + +botl = np.load(inp.joinpath("botl.npy")) +watl = np.load(inp.joinpath("watl.npy")) +vel = np.load(inp.joinpath("vel.npy")) + +# Cospectral calculations +x0 = config.getint("post", "x0") +arg_x0 = np.abs(x - x0).argmin() +t0 = config.getfloat("post", "t0") +arg_t0 = np.abs(t - t0).argmin() +dt = config.getfloat("post", "dt") +f = 1 / dt +nperseg = config.getint("post", "nperseg", fallback=None) +log.info(f"Computing reflection coefficient at x={x0}") + +eta = watl[t > t0, arg_x0] +u = vel[t > t0, 0, arg_x0] + +phi_eta = sgl.welch(eta, f, nperseg=nperseg) +phi_u = sgl.welch(u, f, nperseg=nperseg) +phi_eta_u = sgl.csd(eta, u, f, nperseg=nperseg) + +H = np.sqrt(np.abs(phi_eta[1])) +U = np.sqrt(np.abs(phi_u[1])) +G = H / U +th_eta_u = np.angle(phi_eta_u[1]) + +# R1 = np.sqrt( +# (np.abs(phi_eta[1]) + np.abs(phi_u[1]) - 2 * np.abs(phi_eta_u[1])) +# / (np.abs(phi_eta[1]) + np.abs(phi_u[1]) + 2 * np.abs(phi_eta_u[1])) +# ) +R = np.sqrt( + (1 + G**2 - 2 * G * np.cos(th_eta_u)) + / (1 + G**2 + 2 * G * np.cos(th_eta_u)) +) + +if config.has_option("post", "compare"): + inp_comp = pathlib.Path(config.get("post", "compare")) + x_ = np.load(inp_comp.joinpath("xp.npy")) + t_ = np.load(inp_comp.joinpath("tsec.npy")) + + botl_ = np.load(inp_comp.joinpath("botl.npy")) + watl_ = np.load(inp_comp.joinpath("watl.npy")) + vel_ = np.load(inp_comp.joinpath("vel.npy")) + + arg_x0_ = np.abs(x_ - x0).argmin() + arg_t0_ = np.abs(t_ - t0).argmin() + + eta_ = watl_[t_ > t0, arg_x0_] + u_ = vel_[t_ > t0, 0, arg_x0_] + + phi_eta_ = sgl.welch(eta_, f, nperseg=nperseg) + phi_u_ = sgl.welch(u_, f, nperseg=nperseg) + phi_eta_u_ = sgl.csd(eta_, u_, f, nperseg=nperseg) + + H_ = np.sqrt(np.abs(phi_eta_[1])) + U_ = np.sqrt(np.abs(phi_u_[1])) + G_ = H_ / U_ + th_eta_u_ = np.angle(phi_eta_u_[1]) + + R_ = np.sqrt( + (1 + G_**2 - 2 * G_ * np.cos(th_eta_u_)) + / (1 + G_**2 + 2 * G_ * np.cos(th_eta_u_)) + ) + + +# Plotting +log.info("Plotting results") +fig, (ax_watl, ax_vel) = plt.subplots(2) + +ax_watl.plot(t, watl[:, arg_x0], lw=1, label="watl") +ax_watl.set(xlabel="t (s)", ylabel="z (m)") +ax_watl.autoscale(axis="x", tight=True) +ax_watl.grid() +ax_watl.axvline(t0, c="k", alpha=0.2) + +ax_vel.plot(t, vel[:, 0, arg_x0], lw=1, label="vel") +ax_vel.set(xlabel="t (s)", ylabel="U (m/s)") +ax_vel.autoscale(axis="x", tight=True) +ax_vel.grid() +ax_vel.axvline(t0, c="k", alpha=0.2) + +fig.tight_layout() + +fig_r, ax_r = plt.subplots() +ax_fft = ax_r.twinx() + +ax_fft.plot( + *sgl.welch(eta, 1 / dt, nperseg=nperseg), + lw=1, + c="k", + alpha=0.2, + label="PSD ($\\eta$, cas 1)", +) +ax_r.plot(phi_eta[0], R, marker="+", label="R (cas 1)") +if config.has_option("post", "compare"): + ax_fft.plot( + *sgl.welch(eta_, 1 / dt, nperseg=nperseg), + lw=1, + c="k", + alpha=0.2, + label="PSD ($\\eta$, cas 2)", + ) + ax_r.plot(phi_eta[0], R_, marker="+", label="R (cas 2)") +ax_r.set(xlim=(0, 0.3), ylim=(0, 1), xlabel="f (Hz)", ylabel="R") +ax_fft.set(ylim=0, ylabel="PSD (m²/Hz)") +ax_r.grid() +ax_r.legend(loc="upper left") +ax_fft.legend(loc="upper right") +fig_r.tight_layout() + +fig_x, ax_x = plt.subplots(figsize=(10, 1)) +ax_x.plot(x, -botl, color="k") +ax_x.plot( + x, + np.maximum(watl[arg_t0, :], -botl), +) +if config.has_option("post", "compare"): + ax_x.plot(x, -botl_, color="k", ls="-.") + ax_x.plot( + x, + np.maximum(watl_[arg_t0, :], -botl_), + ls="-.", + ) +ax_x.axvline(x0, c="k", alpha=0.2) +ax_x.set(xlabel="x (m)", ylabel="z (m)") +ax_x.autoscale(axis="x", tight=True) +ax_x.set(aspect="equal") +fig_x.tight_layout() + +out = pathlib.Path(config.get("post", "out")).joinpath(f"t{t0}x{x0}") +log.info(f"Saving plots in '{out}'") +out.mkdir(parents=True, exist_ok=True) + +fig.savefig(out.joinpath("t.png")) +fig_r.savefig(out.joinpath("R.png")) +fig_x.savefig(out.joinpath("x.png")) +plt.show(block=True) + +log.info("Finished post-processing") diff --git a/swash/processing/read_swash.py b/swash/processing/read_swash.py index 81fb8e9..8a983b7 100644 --- a/swash/processing/read_swash.py +++ b/swash/processing/read_swash.py @@ -1,3 +1,52 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:81ddc1baff1a727e68dc2819fe3f39ca657c488ab8cbeb83c2d260ae7c9c13fd -size 1349 +import subprocess +import tempfile + +import numpy as np + + +class ReadSwash: + def __init__(self): + self._n_x = None + self._n_t = None + self._t = None + self._x = None + + @classmethod + def read_nohead(cls, path): + subprocess.run(("sed", "-i", r"s/ /\n/g", path)) + return np.loadtxt(path) + + def read_time(self, path): + self._t = np.unique(self.read_nohead(path)) + self._n_t = self._t.size + return self.t + + def read_x(self, path): + self._x = np.unique(self.read_nohead(path)) + self._n_x = self._x.size + return self.x + + def read_scalar(self, path, const=False): + if const: + return self.read_nohead(path).reshape((self._n_t, self._n_x))[0, :] + return self.read_nohead(path).reshape((self._n_t, self._n_x)) + + def read_const(self, path): + return self.read_scalar(path, const=True) + + def read_vector(self, path): + return self.read_nohead(path).reshape((self._n_t, 2, self._n_x)) + + def read_scalar_lay(self, path): + return self.read_nohead(path).reshape((self._n_t, -1, self._n_x)) + + def read_vector_lay(self, path): + return self.read_nohead(path).reshape((self._n_t, -1, 2, self._n_x)) + + @property + def t(self): + return self._t + + @property + def x(self): + return self._x diff --git a/swash/processing/swash.py b/swash/processing/swash.py index 46f503d..0d8b294 100644 --- a/swash/processing/swash.py +++ b/swash/processing/swash.py @@ -1,3 +1,67 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b17bd29f45896e07ef9e48ab27c905158de21bdedc7b9ecbf1a7943e4af7ae70 -size 1962 +import argparse +import configparser +import logging +import os +import pathlib +import shutil +import subprocess +import sys +import tempfile + +parser = argparse.ArgumentParser(description="Run swash model") +parser.add_argument("-v", "--verbose", action="count", default=0) +args = parser.parse_args() + +logging.basicConfig(level=max((10, 20 - 10 * args.verbose))) +log = logging.getLogger("swash") + +log.info("Starting swash model") +config = configparser.ConfigParser() +config.read("config.ini") + +inp = pathlib.Path(config.get("swash", "input")) +out = pathlib.Path(config.get("swash", "out")) +if out.exists(): + log.error(f"Swash output '{out}' already exists") + sys.exit(1) + +with tempfile.TemporaryDirectory(prefix="swash_", dir=".") as tmp_raw: + tmpdir = pathlib.Path(tmp_raw) + + log.info(f"Copying files to '{tmpdir}'") + shutil.copy2(inp, tmpdir) + if config.getboolean("swash", "nb", fallback=False): + path = pathlib.Path(config.get("data", "out_nb")) + else: + path = pathlib.Path(config.get("data", "out")) + shutil.copytree(path, tmpdir, dirs_exist_ok=True) + + if config.has_option("swash", "mpi"): + mpi = ("-mpi", config.get("swash", "mpi")) + log.info(f"Using mpi with {mpi}") + else: + mpi = () + + with open(tmpdir.joinpath("sws.log"), "w") as logfile: + log.info(f"Runing swash in '{tmpdir}'") + path = pathlib.Path(config.get("swash", "path")) + + cmd = (path.joinpath("swashrun"), "-input", inp.name, *mpi) + log.info(f"Running {cmd}") + + swash_run = subprocess.Popen( + cmd, + cwd=tmpdir, + stdout=logfile, + stderr=logfile, + env={"PATH": f"{path}:{os.environ['PATH']}"}, + ) + + code = swash_run.wait() + if code != 0: + log.error(f"Swash returned error code {code}") + + log.info(f"Moving swash output to '{out}'") + shutil.move(tmpdir, out) + +log.info(f"Swash model finished successfully") diff --git a/swash/processing/sws_npz.py b/swash/processing/sws_npz.py index 292ba91..6b61507 100644 --- a/swash/processing/sws_npz.py +++ b/swash/processing/sws_npz.py @@ -1,3 +1,51 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f3b186f594089b65b3739d2f03855c691f45e0b2744e37196e07cdf60c896cfc -size 1393 +import argparse +import configparser +import logging +import pathlib +from multiprocessing.pool import ThreadPool + +import numpy as np +import pandas as pd + +from .read_swash import ReadSwash + +parser = argparse.ArgumentParser(description="Convert swash output to numpy") +parser.add_argument("-v", "--verbose", action="count", default=0) +args = parser.parse_args() + +logging.basicConfig(level=max((10, 20 - 10 * args.verbose))) +log = logging.getLogger("sws_npz") + +log.info("Starting sws -> npz converter") +config = configparser.ConfigParser() +config.read("config.ini") + +sws_out = pathlib.Path(config.get("swash", "out")) +inp = pathlib.Path(config.get("post", "inp")) + +log.info(f"Reading swash output from '{sws_out}'") +rsws = ReadSwash() +np.save(inp.joinpath("tsec"), rsws.read_time(sws_out.joinpath("tsec.dat"))) +np.save(inp.joinpath("xp"), rsws.read_x(sws_out.joinpath("xp.dat"))) + +var = { + "dep": rsws.read_scalar, + "botl": rsws.read_const, + "watl": rsws.read_scalar, + "vel": rsws.read_vector, + "press": rsws.read_scalar, + "zk": rsws.read_scalar_lay, + "velk": rsws.read_vector_lay, + "vz": rsws.read_scalar_lay, +} + +inp.mkdir(exist_ok=True) +with ThreadPool() as pool: + log.info("Converting all data") + pool.map( + lambda x: np.save( + inp.joinpath(x[0]), + x[1](sws_out.joinpath(x[0]).with_suffix(".dat")), + ), + var.items(), + ) diff --git a/swash/sws/INPUT.sws b/swash/sws/INPUT.sws index 59b817c..1be733d 100644 --- a/swash/sws/INPUT.sws +++ b/swash/sws/INPUT.sws @@ -1,3 +1,58 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3f85c1b0ecdfa156bd0d04a7654abd412080df57aa4a24190bbaac57b0335a12 -size 2300 +$************************* GENERAL *************************************** +PROJ 'GW' 'T1' +SET NAUT +SET LEVEL 0.94 +SET MAXERR 1 +SET DEPMIN 0.001 +MODE DYN ONED +$************************ GRIDS *************************************** +CGRID REG -1251 0 0 1251 0 1250 0 +INPGRID BOT REG -1251 0 0 1250 0 1 0 $x0 y0 theta nx-1 ny-1 dx dy +VERT 10 $nb couches +READ BOTTOM -1 'bathy.dat' 3 0 FREE + +INPGRID PORO REG -1251 0 0 1250 0 1 0 +INPGRID PSIZ REG -1251 0 0 1250 0 1 0 +INPGRID HSTRUC REG -1251 0 0 1250 0 1 0 + +READINP PORO 1 'poro.dat' 3 0 FREE +READINP PSIZ 1 'psize.dat' 3 0 FREE +READINP HSTRUC 1 'hstru.dat' 3 0 FREE + + +$*********************** BOUNDARIES **************************************** +INIT ZERO +BOUN SHAP JON SIG PEAK DSPR DEGR +BOUN SIDE W BTYPE WEAK SMOOT 10 SEC ADDBOUNDWAVE CON SPECT 1.55 13.3 0 0 CYCLE 20 MIN +BOUN SIDE E BTYPE SOMMERFELD + + +$*********************** PHYSICS ******************************************* +BRE 0.6 0.2 +FRICTION MANN 0.08 +POROsity 4 200 1.1 13 +VISC V KEPS + +$*********************** NUMERICS ****************************************** +NONHYD BOX 1.0 PREC ILU +DISCRET UPW MOM +TIMEI 0.2 0.6 + +$*********************** OUTPUTS ******************************************* +SET OUTLEV 1 +$BLOCK 'COMPGRID' HEAD 'test.txt' LAY 4 TSEC XP DEP BOTL WATL PRESS DISCH USTAR VEL VZ VELK ZK BRKP OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'tsec.dat' TSEC OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'xp.dat' XP OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'dep.dat' DEP OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'botl.dat' BOTL OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'watl.dat' WATL OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'press.dat' PRESS OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'disch.dat' DISCH OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'ustar.dat' USTAR OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'vel.dat' VEL OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'vz.dat' VZ OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'velk.dat' VELK OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'zk.dat' ZK OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'brkp.dat' BRKP OUTPUT 000000.00 0.25 SEC +COMPUTE 000000.000 0.015 SEC 003000.000 $timeini dtini unit timefin +STOP diff --git a/swash/sws/SPEC_buoy.sws b/swash/sws/SPEC_buoy.sws index 33b4ca1..607ef1b 100644 --- a/swash/sws/SPEC_buoy.sws +++ b/swash/sws/SPEC_buoy.sws @@ -1,3 +1,58 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ce3044df5425b1858aada8e6a1aab3f081f0b48151902c66a3c02f0463f13d98 -size 2299 +$************************* GENERAL *************************************** +PROJ 'GW' 'T1' +SET NAUT +SET LEVEL 4.5 +SET MAXERR 1 +SET DEPMIN 0.001 +MODE DYN ONED +$************************ GRIDS *************************************** +CGRID REG -1250 0 0 1250 0 1250 0 +INPGRID BOT REG -1250 0 0 1250 0 1 0 $x0 y0 theta nx-1 ny-1 dx dy +VERT 10 $nb couches +READ BOTTOM -1 'bathy.dat' 3 0 FREE + +INPGRID PORO REG -1251 0 0 1250 0 1 0 +INPGRID PSIZ REG -1251 0 0 1250 0 1 0 +INPGRID HSTRUC REG -1251 0 0 1250 0 1 0 + +READINP PORO 1 'poro.dat' 3 0 FREE +READINP PSIZ 1 'psize.dat' 3 0 FREE +READINP HSTRUC 1 'hstru.dat' 3 0 FREE + + +$*********************** BOUNDARIES **************************************** +INIT ZERO +BOUN SHAP JON SIG PEAK DSPR DEGR +BOUN SIDE W BTYPE WEAK SMOOT 10 SEC ADDBOUNDWAVE CON SPECT 7.31 16.9 0 0 CYCLE 20 MIN +BOUN SIDE E BTYPE SOMMERFELD + + +$*********************** PHYSICS ******************************************* +BRE 0.6 0.2 +FRICTION MANN 0.08 +POROsity 4 200 1.1 13 +VISC V KEPS + +$*********************** NUMERICS ****************************************** +NONHYD BOX 1.0 PREC ILU +DISCRET UPW MOM +TIMEI 0.2 0.6 + +$*********************** OUTPUTS ******************************************* +SET OUTLEV 1 +$BLOCK 'COMPGRID' HEAD 'test.txt' LAY 4 TSEC XP DEP BOTL WATL PRESS DISCH USTAR VEL VZ VELK ZK BRKP OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'tsec.dat' TSEC OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'xp.dat' XP OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'dep.dat' DEP OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'botl.dat' BOTL OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'watl.dat' WATL OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'press.dat' PRESS OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'disch.dat' DISCH OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'ustar.dat' USTAR OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'vel.dat' VEL OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'vz.dat' VZ OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'velk.dat' VELK OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'zk.dat' ZK OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'brkp.dat' BRKP OUTPUT 000000.00 0.25 SEC +COMPUTE 000000.000 0.015 SEC 002500.000 $timeini dtini unit timefin +STOP diff --git a/swash/sws/SPEC_buoy_nb.sws b/swash/sws/SPEC_buoy_nb.sws index 89d6d7b..13a693c 100644 --- a/swash/sws/SPEC_buoy_nb.sws +++ b/swash/sws/SPEC_buoy_nb.sws @@ -1,3 +1,59 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e307c866ed9c49575428171b676dfb21a1af867f99dab1c99aa095ab9520d5e2 -size 2310 +$************************* GENERAL *************************************** +PROJ 'GW' 'T1' +SET NAUT +SET LEVEL 4.5 +SET MAXERR 1 +SET DEPMIN 0.001 +MODE DYN ONED +$************************ GRIDS *************************************** +CGRID REG -1250 0 0 1250 0 1250 0 +INPGRID BOT REG -1250 0 0 1250 0 1 0 $x0 y0 theta nx-1 ny-1 dx dy +VERT 10 $nb couches +READ BOTTOM -1 'bathy.dat' 3 0 FREE + +INPGRID PORO REG -1251 0 0 1250 0 1 0 +INPGRID PSIZ REG -1251 0 0 1250 0 1 0 +INPGRID HSTRUC REG -1251 0 0 1250 0 1 0 + +READINP PORO 1 'poro.dat' 3 0 FREE +READINP PSIZ 1 'psize.dat' 3 0 FREE +READINP HSTRUC 1 'hstru.dat' 3 0 FREE + + +$*********************** BOUNDARIES **************************************** +INIT ZERO +BOUN SHAP JON SIG PEAK DSPR DEGR +BOUN SIDE W BTYPE WEAK SMOOT 10 SEC ADDBOUNDWAVE CON SPECT 7.31 16.9 0 0 CYCLE 20 MIN +BOUN SIDE E BTYPE SOMMERFELD +SPON E 250 + + +$*********************** PHYSICS ******************************************* +BRE 0.6 0.2 +FRICTION MANN 0.08 +POROsity 4 200 1.1 13 +VISC V KEPS + +$*********************** NUMERICS ****************************************** +NONHYD BOX 1.0 PREC ILU +DISCRET UPW MOM +TIMEI 0.2 0.6 + +$*********************** OUTPUTS ******************************************* +SET OUTLEV 1 +$BLOCK 'COMPGRID' HEAD 'test.txt' LAY 4 TSEC XP DEP BOTL WATL PRESS DISCH USTAR VEL VZ VELK ZK BRKP OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'tsec.dat' TSEC OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'xp.dat' XP OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'dep.dat' DEP OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'botl.dat' BOTL OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'watl.dat' WATL OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'press.dat' PRESS OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'disch.dat' DISCH OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'ustar.dat' USTAR OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'vel.dat' VEL OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'vz.dat' VZ OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'velk.dat' VELK OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'zk.dat' ZK OUTPUT 000000.00 0.25 SEC +BLOCK 'COMPGRID' NOHEAD 'brkp.dat' BRKP OUTPUT 000000.00 0.25 SEC +COMPUTE 000000.000 0.015 SEC 002500.000 $timeini dtini unit timefin +STOP diff --git a/tasks.md b/tasks.md index 550b554..757d498 100644 --- a/tasks.md +++ b/tasks.md @@ -1,3 +1,5 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:039b226e1905ffff4943cc6ad2b34e53f901b98658ee9fd35cbec3ba151e8ecf -size 170 +# Tasks + +- 1D SWASH with buoy input -> reflection depending on breakwater +- Input 1D SWASH output as initial and boundary conditions in olaFlow +- 2Dh SWASH -> 3D olaFlow