diff --git a/README.md b/README.md index fef06dae..4f09fff8 100644 --- a/README.md +++ b/README.md @@ -61,9 +61,16 @@ aeolis run aeolis wind --mean=6 --duration=3600 ``` -## Documentation +## Documentation and help Detailed documentation can be found at [AeoLiS ReadTheDocs](http://aeolis.readthedocs.io/) +A couple of short courses are available to help new users get acquainted with the model: +- [AeoLiS short course](https://github.com/openearth/aeolis-shortcourse) +- [AeoLiS case study documentation by ERDC](https://github.com/erdc/aeolis-python/tree/master/tutorial) + +Example case studies can also be found in the [examples folder](https://github.com/openearth/aeolis-python/tree/main/aeolis/examples) that is part of the AeoLiS installation. + +We encourage (new) users to post questions and case studies on the [AeoLiS Discussion Board](https://github.com/openearth/aeolis-python/discussions). We use this public forum so our help and advice is available to everyone. ## AeoLiS Developer Team The maintenance and development is done by a group of very enthusiastic people. @@ -74,18 +81,18 @@ Read our [Contribution Guidelines](CONTRIBUTING.md) to know how you can help to **Current Members:** - [Bart van Westen](mailto:Bart.vanWesten@deltares.nl) at Deltares -- [Nick Cohn](mailto:nick.cohn@usace.army.mil) at U.S. Army Engineer Research and Development Center (ERDC) +- [Nick Cohn](mailto:nicholas.t.cohn@usace.army.mil) at U.S. Army Engineer Research and Development Center (ERDC) - [Sierd de Vries](mailto:Sierd.deVries@tudelft.nl) (founder) at Delft University of Technology -- [Christa van IJzendoorn](mailto:C.O.vanIJzendoorn@tudelft.nl) at Delft University of Technology -- [Caroline Hallin](mailto:E.C.Hallin@tudelft.nl) at Delft University of Technology +- [Christa van IJzendoorn](mailto:vanijzec@oregonstate.edu) at Oregon State University +- [Caroline Hallin](mailto:caroline.hallin@tvrl.lth.se) at Lund University - [Glenn Strypsteen](mailto:glenn.strypsteen@kuleuven.be) at Katholieke Universiteit Leuven -- [Janelle Skaden](mailto:Janelle.E.Skaden@usace.army.mil) at U.S. Army Engineer Research and Development Center (ERDC) **Previous Members & Contributors:** - [Bas Hoonhout](mailto:bas@hoonhout.com) (founder) - Tom Pak - Pieter Rauwoens - Lisa Meijer +- Janelle Skaden ## Citation diff --git a/aeolis/console.py b/aeolis/console.py index 70281e8c..676538b7 100644 --- a/aeolis/console.py +++ b/aeolis/console.py @@ -70,6 +70,7 @@ @aeolis_app.command(name="mycommand", help="My command help") def mycommand(): + You can then run the command from the command line as follows: @@ -79,6 +80,7 @@ def mycommand(): *************************************************************************** + """ diff --git a/aeolis/constants.py b/aeolis/constants.py index a07fd23a..541b4843 100644 --- a/aeolis/constants.py +++ b/aeolis/constants.py @@ -323,7 +323,7 @@ 'wind_convention' : 'nautical', # Convention used for the wind direction in the input files (cartesian or nautical) 'alfa' : 0, # [deg] Real-world grid cell orientation wrt the North (clockwise) 'dune_toe_elevation' : 3, # Choose dune toe elevation, only used in the PH12 dune erosion solver - 'beach_slope' : 0.1, # Define the beach slope, only used in the PH12 dune erosion solver + 'beach_slope' : 0.1, # Define the beach slope 'veg_min_elevation' : 3, # Choose the minimum elevation where vegetation can grow 'vegshear_type' : 'raupach', # Choose the Raupach grid based solver (1D or 2D) or the Okin approach (1D only) 'okin_c1_veg' : 0.48, #x/h spatial reduction factor in Okin model for use with vegetation diff --git a/docs/aeolis.bib b/docs/aeolis.bib index 1d46d31c..13c72037 100644 --- a/docs/aeolis.bib +++ b/docs/aeolis.bib @@ -1,5 +1,3 @@ -% This file was created with JabRef 2.9.2. -% Encoding: UTF-8 @MANUAL{Simunek1998, title = {The HYDRUS-1D software package for simulating the one-dimensional movement of water, heat, and multiple solutes in variably- saturated @@ -14,76 +12,108 @@ @MANUAL{Simunek1998 timestamp = {2014.03.07} } -@article{Aagaard2014, - author = {Aagaard, T.}, - title = {Sediment supply to beaches: Cross-shore sand transport on the lower shoreface}, - journal = {Journal of Geophysical Research}, - year = {2014}, - volume = {119}, - pages = {913--926}, - number = {4}, - note = {2013JF003041}, - doi = {10.1002/2013JF003041}, - issn = {2169-9011}, - keywords = {Marine sediments: processes and transport, Littoral processes, Nearshore - processes, sediment transport, sediment budgets, shoreline change, - equilibrium profile}, - owner = {hoonhout}, - timestamp = {2015.06.15} +@article{Keijsers2016, + author = {Keijsers, J. G. S. and de Groot, A. V. and Riksen, M. J. P. M.}, + title = {Modeling the biogeomorphic evolution of coastal dunes in response to climate change}, + journal = {Journal of Geophysical Research: Earth Surface}, + year = {2016}, + volume = {121}, + pages = {1161–1181}, + doi = {10.1002/2015JF003815}, } -@article{Arens2002, - author = {Arens, SM and Van Boxel, JH and Abuodha, JOZ}, - title = {Changes in grain size of sand in transport over a foredune}, +@article{DuranMoore2013, + author = {Durán, O. and Moore, L. J.}, + title = {Vegetation controls on the maximum size of coastal dunes}, + journal = {Proceedings of the National Academy of Sciences}, + year = {2013}, + volume = {110}, + number = {43}, + pages = {17217–17222}, + doi = {10.1073/pnas.1307580110}, +} + +@article{Strypsteen2024, + author = {Strypsteen, G. and Bonte, D. and Taelman, C. and Derijckere, J. and Rauwoens, P.}, + title = {Vertical Growth Rate of Planted Vegetation Controls Dune Growth on a Sandy Beach}, + journal = {Coastal Engineering}, + year = {2024}, + doi = {10.2139/ssrn.4872614}, +} + +@article{DuranHerrmann2006, + author = {Durán, O. and Herrmann, H. J.}, + title = {Vegetation against dune mobility}, + journal = {Physical Review Letters}, + year = {2006}, + volume = {97}, + number = {18}, + pages = {1–4}, + doi = {10.1103/PhysRevLett.97.188001}, +} + +@article{Strypsteen2024b, + author = {Strypsteen, G. and Bonte, D. and Taelman, C. and Derijckere, J. and Rauwoens, P.}, + title = {Three years of morphological dune development after planting marram grass on a beach}, journal = {Earth Surface Processes and Landforms}, - year = {2002}, - volume = {27}, - pages = {1163--1175}, - number = {11}, - owner = {hoonhout}, - publisher = {Wiley Online Library}, - timestamp = {2016.04.29} + year = {2024}, + doi = {10.1002/esp.5870}, } -@article{Arens1996, - author = {Arens, S. M.}, - title = {Patterns of sand transport on vegetated foredunes}, - journal = {Geomorphology}, - year = {1996}, - volume = {17}, - pages = {339--350}, - file = {Arens1996.pdf:Arens1996.pdf:PDF}, - owner = {hoonhout}, - timestamp = {2015.05.26} +@article{Nolet2018, + author = {Nolet, C. and van Puijenbroek, M. and Suomalainen, J. and Limpens, J. and Riksen, M.}, + title = {UAV-imaging to model growth response of marram grass to sand burial: Implications for coastal dune development}, + journal = {Aeolian Research}, + year = {2018}, + volume = {31}, + pages = {50–61}, + note = {March 2017}, + doi = {10.1016/j.aeolia.2017.08.006}, +} + +@article{VANWESTEN2024106093, +title = {AeoLiS: Numerical modelling of coastal dunes and aeolian landform development for real-world applications}, +journal = {Environmental Modelling & Software}, +volume = {179}, +pages = {106093}, +year = {2024}, +issn = {1364-8152}, +doi = {https://doi.org/10.1016/j.envsoft.2024.106093}, +author = {Bart {van Westen} and Sierd {de Vries} and Nicholas Cohn and Christa {van IJzendoorn} and Glenn Strypsteen and Caroline Hallin}, +keywords = {Aeolian sediment transport, Dune vegetation, Dune geomorphology, Blowout, Embryo dune, Parabolic dune}, +} + +@article{Maun1998, + author = {Maun, M. A.}, + title = {Adaptations of plants to burial in coastal sand dunes}, + journal = {Canadian Journal of Botany}, + year = {1998}, + volume = {76}, + number = {5}, + pages = {713–738}, + doi = {10.1139/cjb-76-5-713}, } -@techreport{Arens2010, - author = {Arens, S M and Puijvelde, S P and Bri\`{e}re, C}, - title = {Effecten van suppleties op duinontwikkeling}, - institution = {Arens Bureau voor Strand- en Duinonderzoek}, - year = {2010}, - number = {2010.03}, - note = {for LNV Directie Kennis (OBN) en Rijkswaterstaat Waterdienst}, - owner = {hoonhout}, - timestamp = {2015.05.26}, - url = {http://dt.natuurkennis.nl/uploads/OBN142_DK_Effecten_van_suppleties_op_duinontwikkeling.zip} +@article{Danin1991, + author = {Danin, A.}, + title = {Plant adaptations in desert dunes}, + journal = {Journal of Arid Environments}, + year = {1991}, + volume = {21}, + number = {2}, + pages = {193–212}, + doi = {10.1016/s0140-1963(18)30682-7}, } -@article{Baas2005, - author = {Baas, A. C. W. and Sherman, D. J.}, - title = {Formation and behavior of aeolian streamers}, - journal = {Journal of Geophysical Research}, - year = {2005}, - volume = {110}, - number = {F3}, - note = {F03011}, - doi = {10.1029/2004JF000270}, - issn = {2156-2202}, - keywords = {Atmospheric Processes: Boundary layer processes, Atmospheric Processes: - Turbulence, Nonlinear Geophysics: Complex systems, aeolian, sediment - transport, streamers}, - owner = {hoonhout}, - timestamp = {2015.06.15} +@article{Hesp1991, + author = {Hesp, P. A.}, + title = {Ecological processes and plant adaptations on coastal dunes}, + journal = {Journal of Arid Environments}, + year = {1991}, + volume = {21}, + number = {2}, + pages = {165–191}, + doi = {10.1016/s0140-1963(18)30681-5}, } @article{Bagnold1937a, @@ -109,40 +139,6 @@ @article{Bagnold1937b timestamp = {2015.10.01} } -@article{Bagnold1936, - author = {Bagnold, RA}, - title = {The movement of desert sand}, - journal = {Proceedings of the Royal Society of London. Series A, Mathematical - and Physical Sciences}, - year = {1936}, - pages = {594--620}, - owner = {hoonhout}, - publisher = {JSTOR}, - timestamp = {2015.10.01} -} - -@article{Bagnold1935, - author = {Bagnold, RA}, - title = {The movement of desert sand}, - journal = {Geographical Journal}, - year = {1935}, - pages = {342--365}, - owner = {hoonhout}, - publisher = {JSTOR}, - timestamp = {2015.10.01} -} - -@book{Bagnold1941, - title = {The Physics of Blown Sand and Desert Dunes}, - publisher = {Methuen}, - year = {1941}, - author = {Bagnold, R A}, - pages = {265 pp.}, - address = {London}, - owner = {hoonhout}, - timestamp = {2015.05.26} -} - @article{Baird1998, abstract = {A numerical solution to the 1-D Boussinesq ground water equation is used to predict water table response to tidal and wave forcing. We argue that the solution presented here offers considerable advantages over other solutions to the 1-D Boussinesq ground water equation and is simpler to apply than 2-D ground water models. The main assumption in using the Boussinesq equation is that ground water flow in a shallow aquifer can be described using the Dupuit-Forchheimer approximation, in which it is assumed that changes in hydraulic head with depth below the water table are negligible. The predictive ability of the solution was tested against field data from ten wells and ten piezometers on a microtidal sandy beach. Two model runs were carried out: in the first the effect of tides only was considered; in the second setup due to waves was also considered. The arithmetic mean of independently measured values of hydraulic conductivity was used to describe sediment characteristics. The piezometer data show that changes in hydraulic head with depth are negligible for much of the beach, suggesting that the use of the Boussinesq equation is appropriate. The correspondence between model predictions of water table elevations and field observations is good for both the tide-only and the tide plus setup model runs, with the latter giving the better predictions.}, author = {Baird, Andrew J. and Mason, Travis and Horn, Diane P.}, @@ -157,93 +153,6 @@ @article{Baird1998 year = {1998} } -@article{Barchyn2015, - author = {Barchyn, T. E. and Hugenholtz, C. H.}, - title = {Predictability of dune activity in real dune fields under unidirectional - wind regimes}, - journal = {Journal of Geophysical Research}, - year = {2015}, - volume = {120}, - pages = {159--182}, - number = {2}, - note = {2014JF003248}, - doi = {10.1002/2014JF003248}, - issn = {2169-9011}, - keywords = {Modeling, Land cover change, Earth system modeling, aeolian, stabilization, - reactivation, vegetation cover}, - owner = {hoonhout}, - timestamp = {2015.06.15} -} - -@article{Barchyn2014, - author = {Barchyn, T. E. and Hugenholtz, C. H. and Li, B. and McKenna Neuman, - C. and Sanderson, S.}, - title = {From particle counts to flux: Wind tunnel testing and calibration of the "Wenglor" aeolian sediment transport sensor}, - journal = {Aeolian Research}, - year = {2014}, - volume = {15}, - pages = {311--318}, - doi = {10.1016/j.aeolia.2014.06.009}, - owner = {hoonhout}, - timestamp = {2016.06.09} -} - -@PHDTHESIS{Battjes1974, - author = {Battjes, Jurjen Anno}, - title = {Computation of set-up, longshore currents, run-up and overtopping due to wind-generated waves}, - school = {TU Delft, Delft University of Technology}, - year = {1974}, - owner = {hoonhout}, - timestamp = {2016.07.08}, - url = {http://repository.tudelft.nl/assets/uuid:e126e043-a858-4e58-b4c7-8a7bc5be1a44/Battjes.pdf} -} - -@article{Bauer2014, - author = {Bauer, B. O. and Davidson-Arnott, R. G. D.}, - title = {Aeolian particle flux profiles and transport unsteadiness}, - journal = {Journal of Geophysical Research}, - year = {2014}, - volume = {119}, - pages = {1542--1563}, - number = {7}, - note = {2014JF003128}, - doi = {10.1002/2014JF003128}, - issn = {2169-9011}, - keywords = {Geomorphology and weathering, Land/atmosphere interactions, Geomorphology: - general, Sediment transport, Surface materials and properties, sediment - flux profiles, exponential decay, vegetated coastal foredune, wind - gusts, transport intermittency, sediment flurries}, - owner = {hoonhout}, - timestamp = {2015.06.15}, - url = {http://dx.doi.org/10.1002/2014JF003128} -} - -@article{Bauer2002, - author = {Bauer, B O and Davidson-Arnott, R G D}, - title = {A general framework for modeling sediment supply to coastal dunes - including wind angle, beach geometry, and fetch effects}, - journal = {Geomorphology}, - year = {2002}, - volume = {49}, - pages = {89--108}, - doi = {10.1016/S0169-555X(02)00165-4}, - owner = {hoonhout}, - timestamp = {2015.05.24} -} - -@article{Bauer2009, - author = {Bauer, B O and Davidson-Arnott, R G D and Hesp, P A and Namikas, - S L and Ollerhead, J and Walker, I J}, - title = {Aeolian sediment transport on a beach: Surface moisture, wind fetch, and mean transport}, - journal = {Geomorphology}, - year = {2009}, - volume = {105}, - pages = {106--116}, - doi = {10.1016/j.geomorph.2008.02.016}, - owner = {hoonhout}, - timestamp = {2015.05.24} -} - @techreport{Belly1964, author = {Belly, P Y}, title = {Sand movement by wind}, @@ -268,998 +177,64 @@ @article{Brakenhoff2019 year = {2019} } -@article{Buscombe2010, - author = {Buscombe, D and Rubin, D M and Warrick, J A}, - title = {A universal approximation of grain size from images of noncohesive sediment}, - journal = {Journal of Geophysical Research}, - year = {2010}, - volume = {115}, - number = {F2}, - note = {F02015}, - doi = {10.1029/2009JF001477}, - owner = {hoonhout}, - timestamp = {2015.05.26} -} - -@article{Cheng2015, - author = {Cheng, Hong and Liu, Chenchen and Zou, Xueyong and Li, Jifeng and - He, Jiajia and Liu, Bo and Wu, Yongqiu and Kang, Liqiang and Fang, - Yi}, - title = {Aeolian creeping mass of different grain sizes over sand beds of varying length}, - journal = {Journal of Geophysical Research}, - year = {2015}, - note = {2014JF003367}, - doi = {10.1002/2014JF003367}, - issn = {2169-9011}, - keywords = {Aerosols and particles, Erosion and weathering, creeping sand grains, - transport mass, length of sand bed, grain size, wind tunnel}, - owner = {hoonhout}, - timestamp = {2015.07.07}, - url = {http://dx.doi.org/10.1002/2014JF003367} -} - -@inproceedings{Cohn2015, - author = {Cohn, N and Anderson, D and Ruggiero, P}, - title = {Observations of intertidal bar welding along a high energy, dissipative coastline}, - booktitle = {Proceedings Coastal Sediments}, - year = {2015}, - owner = {hoonhout}, - timestamp = {2015.05.26} -} - -@article{Courant1967, - author = {Courant, Richard and Friedrichs, Kurt and Lewy, Hans}, - title = {On the partial difference equations of mathematical physics}, - journal = {IBM journal of Research and Development}, - year = {1967}, - volume = {11}, - pages = {215--234}, - number = {2}, - owner = {hoonhout}, - publisher = {IBM}, - timestamp = {2015.10.06}, - url = {http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5391985} -} - -@techreport{Curto2013, - author = {Curto, V}, - title = {Field measurements of grain size distributions - {K}ijkduin and {S}and {M}otor}, - institution = {Delft University of Technology / Deltares}, - year = {2013}, - number = {4257162}, - note = {Traineeship Report}, - owner = {hoonhout}, - timestamp = {2015.05.26} -} - -@article{Darke2008, - author = {Darke, I and McKenna Neuman, C}, - title = {Field study of beach water content as a guide to wind erosion potential}, - journal = {Journal of Coastal Research}, - year = {2008}, - volume = {24}, - pages = {1200--1208}, - number = {5}, - doi = {10.2112/00-000.1}, - owner = {hoonhout}, - timestamp = {2015.05.26} -} - -@article{DavidsonArnott1997, - author = {Davidson-Arnott, Robin GD and White, Davina C and Ollerhead, Jeff}, - title = {The effects of artificial pebble concentrations on eolion sand transport on a beach}, - journal = {Canadian Journal of Earth Sciences}, - year = {1997}, - volume = {34}, - pages = {1499--1508}, - number = {11}, - owner = {hoonhout}, - publisher = {NRC Research Press}, - timestamp = {2015.10.01}, - url = {http://www.nrcresearchpress.com/doi/pdf/10.1139/e17-122} -} - -@article{DavidsonArnott2009, - author = {Davidson-Arnott, R G D and Bauer, B O}, - title = {Aeolian sediment transport on a beach: Thresholds, intermittency, and high frequency variability}, - journal = {Geomorphology}, - year = {2009}, - volume = {105}, - pages = {117--126}, - doi = {10.1016/j.geomorph.2008.02.018}, - owner = {hoonhout}, - timestamp = {2015.05.24} -} - -@article{DavidsonArnott2005, - author = {Davidson-Arnott, R G D and MacQuarrie, K and Aagaard, T}, - title = {The effect of wind gusts, moisture content and fetch length on sand transport on a beach}, - journal = {Geomorphology}, - year = {2005}, - volume = {68}, - pages = {115--129}, - doi = {10.1016/j.geomorph.2004.04.008}, - owner = {hoonhout}, - timestamp = {2015.05.24} -} - -@article{DavidsonArnott2008, - author = {Davidson-Arnott, R G D and Yang, Y and Ollerhead, J and Hesp, P A - and Walker, I J}, - title = {The effects of surface moisture on aeolian sediment transport threshold and mass flux on a beach}, - journal = {Earth Surface Processes and Landforms}, - year = {2008}, - volume = {33}, - pages = {55--74}, - number = {1}, - doi = {10.1002/esp.1527}, - owner = {hoonhout}, - timestamp = {2015.05.24} -} - -@manual{Delft3DManual, - title = {Delft3D - 3D/2D modelling suite for integral water solutions - Hydro-Morphodynamics}, - author = {{Delft3D-FLOW Manual}}, - organization = {Deltares}, - address = {Delft}, - month = {May}, - year = {2014}, - note = {Version 3.15.34158}, - owner = {hoonhout}, - timestamp = {2015.05.26} -} - @article{DelgadoFernandez2010, author = {Delgado-Fernandez, I}, title = {A review of the application of the fetch effect to modelling sand supply to coastal foredunes}, journal = {Aeolian Research}, year = {2010}, volume = {2}, - pages = {61--70}, - doi = {10.1016/j.aeolia.2010.04.001}, - owner = {hoonhout}, - timestamp = {2015.05.24} -} - -@article{DelgadoFernandez2011, - author = {Delgado-Fernandez, Irene and Davidson-Arnott, Robin A}, - title = {Meso-scale aeolian sediment input to coastal dunes: The nature of aeolian transport events}, - journal = {Geomorphology}, - year = {2011}, - volume = {126}, - pages = {217--232}, - number = {1}, - doi = {10.1016/j.geomorph.2010.11.005}, - owner = {hoonhout}, - publisher = {Elsevier}, - timestamp = {2015.10.02} -} - -@article{DelgadoFernandez2012, - author = {Delgado-Fernandez, Irene and Davidson-Arnott, Robin and Bauer, Bernard - O and Walker, Ian J and Ollerhead, Jeff and Rhew, Hosahng}, - title = {Assessing aeolian beach-surface dynamics using a remote sensing approach}, - journal = {Earth Surface Processes and Landforms}, - year = {2012}, - volume = {37}, - pages = {1651--1660}, - number = {15}, - doi = {10.1002/esp.3301}, - owner = {hoonhout}, - publisher = {Wiley Online Library}, - timestamp = {2015.10.07} -} - -@article{Dong2004a, - author = {Dong, Zhibao and Wang, Hongtao and Liu, Xiaoping and Wang, Xunming}, - title = {The blown sand flux over a sandy surface: a wind tunnel investigation on the fetch effect}, - journal = {Geomorphology}, - year = {2004}, - volume = {57}, - pages = {117--127}, - doi = {10.1016/S0169-555X(03)00087-4}, - owner = {hoonhout}, - timestamp = {2015.05.26} -} - -@article{Dong2004b, - author = {Dong, Zhibao and Wang, Hongtao and Liu, Xiaoping and Wang, Xunming}, - title = {A wind tunnel investigation of the influences of fetch length on the flux profile of a sand cloud blowing over a gravel surface}, - journal = {Earth Surface Processes and Landforms}, - year = {2004}, - volume = {29}, - pages = {1613--1626}, - number = {13}, - doi = {10.1002/esp.1116}, - owner = {hoonhout}, - publisher = {Wiley Online Library}, - timestamp = {2015.10.01} -} - -@article{Dupont2014, - author = {Dupont, S. and Bergametti, G. and Simo\"{e}ns, S.}, - title = {Modeling aeolian erosion in presence of vegetation}, - journal = {Journal of Geophysical Research}, - year = {2014}, - volume = {119}, - pages = {168--187}, - number = {2}, - doi = {10.1002/2013JF002875}, - issn = {2169-9011}, - keywords = {Erosion, saltation, vegetation, large-eddy simulation, erosion}, - owner = {hoonhout}, - timestamp = {2015.06.15} -} - -@article{Duran2013, - author = {Dur\'{a}n, O. and Moore, L. J.}, - title = {Vegetation controls on the maximum size of coastal dunes}, - journal = {Proceedings of the National Academy of Sciences of the United States of America}, - year = {2013}, - volume = {110}, - pages = {17217--17222}, - doi = {10.1073/pnas.1307580110}, - owner = {hoonhout}, - timestamp = {2015.05.27} -} - -@book{Dyer1986, - title = {Coastal and estuarine sediment dynamics}, - publisher = {Wiley}, - year = {1986}, - author = {Dyer, K R}, - pages = {342 pp}, - address = {Chichester}, - owner = {hoonhout}, - timestamp = {2014.06.11} -} - -@article{Dymin1954, - author = {Dymin}, - title = {}, - year = {1954}, - note = {quoted by Greeley and Iverson (1985)}, - owner = {hoonhout}, - journal = {}, - timestamp = {2015.10.01} -} - -@article{Edwards2009, - author = {Edwards, B L and Namikas, S L}, - title = {Small-scale variability in surface moisture on a fine-grained beach: implications for modeling aeolian transport}, - journal = {Earth Surface Processes and Landforms}, - year = {2009}, - volume = {34}, - pages = {1333--1338}, - doi = {10.1002/esp.1817}, - owner = {hoonhout}, - timestamp = {2015.05.26} -} - -@article{Edwards2013, - author = {Edwards, Brandon L and Namikas, Steven L and D'Sa, Eurico J}, - title = {Simple infrared techniques for measuring beach surface moisture}, - journal = {Earth Surface Processes and Landforms}, - year = {2013}, - volume = {38}, - pages = {192--197}, - number = {2}, - doi = {10.1002/esp.3319}, - owner = {hoonhout}, - publisher = {Wiley Online Library}, - timestamp = {2015.10.07} -} - -@article{Furieri2013, - author = {Furieri, B and Russeil, S and Santos, JM and Harion, JL}, - title = {Effects of non-erodible particles on aeolian erosion: Wind-tunnel simulations of a sand oblong storage pile}, - journal = {Atmospheric Environment}, - year = {2013}, - volume = {79}, - pages = {672--680}, - doi = {10.1016/j.atmosenv.2013.07.026}, - owner = {hoonhout}, - publisher = {Elsevier}, - timestamp = {2015.10.01} -} - -@article{Gallagher2011, - author = {Gallagher, Edith L and MacMahan, Jamie and Reniers, AJHM and Brown, - Jenna and Thornton, Edward B}, - title = {Grain size variability on a rip-channeled beach}, - journal = {Marine Geology}, - year = {2011}, - volume = {287}, - pages = {43--53}, - number = {1}, - doi = {10.1016/j.margeo.2011.06.010}, - owner = {hoonhout}, - publisher = {Elsevier}, - timestamp = {2015.10.06} -} - -@techreport{Genuchten1978, - author = {van Genuchten, M. Th.}, - title = {Mass transport in saturated-unsaturated media: one-dimensional solutions}, - institution = {Univ. Princeton}, - year = {1978}, - number = {Research Report No. 78-WR-11}, - address = {NJ}, - note = {Water Resources Program}, - owner = {hoonhout}, - timestamp = {2014.03.07} -} - -@article{VanGenuchten1980, -author = {van Genuchten, M. Th}, -doi = {10.2136/sssaj1980.03615995004400050002x}, -isbn = {0361599500440}, -issn = {03615995}, -journal = {Soil Science Society of America Journal}, -number = {5}, -pages = {892--898}, -title = {{Closed-Form Equation for Predicting the Hydraulic Conductivity of Unsaturated Soils.}}, -volume = {44}, -year = {1980} -} - -@article{Gillette1989, - author = {Gillette, Dale A and Stockton, Paul H}, - title = {The effect of nonerodible particles on wind erosion of erodible surfaces}, - journal = {Journal of Geophysical Research: Atmospheres}, - year = {1989}, - volume = {94}, - pages = {12885--12893}, - number = {D10}, - owner = {hoonhout}, - publisher = {Wiley Online Library}, - timestamp = {2015.10.01}, - url = {http://onlinelibrary.wiley.com/doi/10.1029/JD094iD10p12885/full} -} - -@article{Gillies2006, - author = {Gillies, J. A. and Nickling, W. G. and King, J.}, - title = {Aeolian sediment transport through large patches of roughness in - the atmospheric inertial sublayer}, - journal = {Journal of Geophysical Research: Earth Surface}, - year = {2006}, - volume = {111}, - number = {F2}, - note = {F02006}, - doi = {10.1029/2005JF000434}, - issn = {2156-2202}, - keywords = {Hydrology: Sediment transport, Hydrology: Geomorphology: general, - Atmospheric Processes: Boundary layer processes, Atmospheric Processes: - Land/atmosphere interactions}, - owner = {hoonhout}, - timestamp = {2015.06.15} -} - -@article{Greeley1985, - author = {Greeley, Ronald and Iversen, JD}, - title = {Wind as a geologic process}, - journal = {Cambridge Univ, Cambridge}, - year = {1985}, - owner = {hoonhout}, - timestamp = {2015.10.01} -} - -@inproceedings{Heijer2011, - author = {den Heijer, Cand Walstra, D J R and van Thiel de Vries, J S M and - Huisman, B J A and Hoonhout, B M and Diermanse, F L M and van Gelder, - P H A J M}, - title = {Importance of dune erosion influencing processes}, - booktitle = {Journal of Coastal Research}, - year = {2011}, - volume = {64}, - number = {1}, - pages = {283-287}, - address = {Poland}, - organization = {13th International Coastal Symposium}, - note = {Special Issue}, - owner = {hoonhout}, - timestamp = {2015.05.22} -} - -@article{Hesp2016, - author = {Hesp, P. A. and Smyth, T. A. G.}, - title = {Surfzone-Beach-Dune interactions: Flow and Sediment Transport across - the Intertidal Beach and Backshore}, - journal = {Journal of Coastal Research}, - year = {2016}, - volume = {SI 75}, - pages = {8--12}, - doi = {10.2112/SI75-002.1}, - owner = {hoonhout}, - timestamp = {2016.06.08} -} - -@article{Hill2004, - author = {Hill, Chris and DeLuca, Cecelia and Suarez, Max and Da Silva, Arlindo}, - title = {The architecture of the earth system modeling framework}, - journal = {Computing in Science \& Engineering}, - year = {2004}, - volume = {6}, - pages = {18--28}, - number = {1}, - doi = {10.1109/MCISE.2004.1255817}, - owner = {hoonhout}, - publisher = {AIP Publishing}, - timestamp = {2015.11.16} -} - -@article{Hoonhout2017a, - author = {Hoonhout, B. M.}, - title = {Aeolian Sediment Supply from the Intertidal Beach}, - journal = {Coastal Engineering}, - year = {2017}, - note = {Submitted}, - owner = {hoonhout}, - timestamp = {2016.05.27} -} - -@MISC{megapex, - author = {Hoonhout, B M}, - title = {MegaPEX measurement data}, - howpublished = {OpenDAP server}, - year = {2017}, - organization = {Delft University of Technology}, - owner = {hoonhout}, - timestamp = {2015.05.26} -} - -@MISC{aeolis_models_v2.0, - author = {Hoonhout, B M}, - title = {AeoLiS model setups v2.0}, - howpublished = {GIT repository}, - year = {2016}, - doi = {10.5281/zenodo.58837}, - owner = {hoonhout}, - timestamp = {2016.07.27} -} - -@MISC{aeolis_v1.1, - author = {Hoonhout, B M}, - title = {AeoLiS v1.1: A process-based model for simulating availability-limited - aeolian sediment transport}, - howpublished = {GIT repository}, - year = {2016}, - doi = {10.5281/zenodo.58854}, - owner = {hoonhout}, - timestamp = {2016.07.27} -} - -@MISC{aeolis_models_v1.0, - author = {Hoonhout, B M}, - title = {AeoLiS availability v1.0}, - howpublished = {GIT repository}, - year = {2015}, - doi = {10.5281/zenodo.28013}, - organization = {Delft University of Technology}, - owner = {hoonhout}, - timestamp = {2015.05.26} -} - -@MISC{aeolis_v1.0, - author = {Hoonhout, B M}, - title = {AeoLiS v1.0: A process-based model for simulating supply-limited - aeolian sediment transport}, - howpublished = {GIT repository}, - year = {2015}, - doi = {10.5281/zenodo.28012}, - organization = {Delft University of Technology}, - owner = {hoonhout}, - timestamp = {2015.05.26} -} - -@inproceedings{Hoonhout2013a, - author = {Hoonhout, B. M.}, - title = {Monitoring the Process of Aeolian Transport}, - booktitle = {Proceedings of the NCK-days 2013}, - year = {2013}, - owner = {hoonhout}, - timestamp = {2016.06.15} -} - -@article{Hoonhout2014, - author = {Hoonhout, B M and Baart, F and Van Thiel de Vries, J S M}, - title = {Intertidal beach classification in infrared images}, - journal = {Journal of Coastal Research}, - year = {2014}, - volume = {SI 66}, - pages = {657-662}, - address = {Durban, South Africa}, - booktitle = {Journal of Coastal Research}, - editor = {Green, A N and Cooper, J A G}, - organization = {13th International Coastal Symposium}, - owner = {hoonhout}, - timestamp = {2015.05.22} -} - -@inproceedings{Hoonhout2016a, - author = {Hoonhout, B. M. and Cohn, N. and de Vries, S. and Roelvink, J. A. - and Ruggiero, P. and Moore, L. J. and Dur\'{a}n, O. and Goldstein, - E.}, - title = {How Tides and Waves Enhance Aeolian Sediment Transport at The Sand - Motor}, - booktitle = {Proceedings of the 35th International Conference on Coastal Engineering}, - year = {2016}, - owner = {hoonhout}, - timestamp = {2016.06.15} -} - -@inproceedings{Hoonhout2016c, - author = {Hoonhout, B. M. and Cohn, N. and de Vries, S. and Roelvink, J. A. - and Ruggiero, P. and Moore, L. J. and Dur\'{a}n, O. and Goldstein, - E.}, - title = {How Tides and Waves Enhance Aeolian Sediment Transport at The Sand - Motor}, - booktitle = {Proceedings of the Ocean Sciences Meeting 2016}, - year = {2016}, - owner = {hoonhout}, - timestamp = {2016.06.15} -} - -@inproceedings{Hoonhout2010, - author = {Hoonhout, B M and den Heijer, C}, - title = {Reliability of dune erosion assessment along curved coastlines}, - booktitle = {Proceedings of the 32nd International Conference on Coastal Engineering}, - year = {2010}, - address = {Shanghai, China}, - owner = {hoonhout}, - timestamp = {2015.05.22} -} - -@MISC{argusnl, - author = {Hoonhout, B M and Radermacher, M.}, - title = {Annotated images of the dutch coast}, - howpublished = {FTP server}, - year = {2015}, - doi = {10.4121/uuid:08400507-4731-4cb2-a7ec-9ed2937db119}, - organization = {Delft University of Technology}, - owner = {hoonhout}, - timestamp = {2015.05.26} -} - -@MISC{flamingo, - author = {Hoonhout, B M and Radermacher, M.}, - title = {Flamingo: a coastal image analysis toolbox}, - howpublished = {GIT repository}, - year = {2015}, - doi = {10.5281/zenodo.14596}, - organization = {Delft University of Technology}, - owner = {hoonhout}, - timestamp = {2015.05.26} -} - -@article{Hoonhout2015a, - author = {Hoonhout, B. M. and Radermacher, M. and Baart, F. and Van der Maaten, - L. J. P.}, - title = {An Automated Method for Semantic Classification of Regions in Coastal - Images}, - journal = {Coastal Engineering}, - year = {2015}, - volume = {105}, - pages = {1--12}, - doi = {10.1016/j.coastaleng.2015.07.010}, - file = {:Hoonhout2015.pdf:PDF}, - owner = {hoonhout}, - timestamp = {2015.08.14} -} - -@inproceedings{Hoonhout2012, - author = {Hoonhout, B M and van Thiel de Vries, J S M}, - title = {Modeling dune erosion, overwash and inundation of barrier islands}, - booktitle = {Proceedings of the 33rd International Conference on Coastal Engineering}, - year = {2012}, - address = {Santander, Spain}, - owner = {hoonhout}, - timestamp = {2015.05.22} -} - -@inproceedings{Hoonhout2014b, - author = {Hoonhout, B. M. and van Thiel de Vries, J. S. M. and Curto, V. and - Stive, M. J. F.}, - title = {Monitoring Supply Limiting Conditions using Imageing Techniques}, - booktitle = {Proceedings of the 34th International Conference on Coastal Engineering}, - year = {2014}, - owner = {hoonhout}, - timestamp = {2016.06.15} -} - -@article{Hoonhout2017b, - author = {Hoonhout, B. M. and de Vries, S.}, - title = {Spatial Variations in Aeolian Sediment Availability}, - journal = {Aeolian Research}, - year = {2017}, - note = {Submitted}, - owner = {hoonhout}, - timestamp = {2016.05.27} -} - -@article{Hoonhout2016, - author = {Hoonhout, B. M. and de Vries, S.}, - title = {A Process-based Model for Aeolian Sediment Transport and Spatiotemporal - Varying Supply}, - journal = {Journal of Geophysical Research -- Earth Surface}, - year = {2016}, - note = {Submitted}, - doi = {10.1002/}, - owner = {hoonhout}, - timestamp = {2015.09.25} -} - -@inproceedings{Hoonhout2016b, - author = {Hoonhout, B. M. and de Vries, S.}, - title = {AeoLiS: A New Model for Aeolian Sediment Supply and Transport}, - booktitle = {Proceedings of the NCK-days 2016}, - year = {2016}, - owner = {hoonhout}, - timestamp = {2016.06.15} -} - -@inproceedings{Hoonhout2014a, - author = {Hoonhout, B. M. and de Vries, S.}, - title = {Process-based Modeling of Supply-Limited Aeolian Transport in Coastal - Environments}, - booktitle = {Proceedings of the International Conference on Aeolian Research 2014}, - year = {2014}, - owner = {hoonhout}, - timestamp = {2016.06.15} -} - -@inproceedings{Hoonhout2014c, - author = {Hoonhout, B. M. and de Vries, S.}, - title = {Modelling and Monitoring of Meso-Scale Supply-limited Aeolian Transport}, - booktitle = {Proceedings of the NCK-days 2014}, - year = {2014}, - owner = {hoonhout}, - timestamp = {2016.06.15} -} - -@inproceedings{Hoonhout2013, - author = {Hoonhout, B M and de Vries, S and Baart, F and van Thiel de Vries, - J S M and van der Weerd, L and Wijnberg, K M}, - title = {Monitoring of beach surface properties with remote sensing}, - booktitle = {Proceedings of Coastal Dynamics}, - year = {2013}, - address = {Arcachon, France}, - owner = {hoonhout}, - timestamp = {2015.05.22} -} - -@inproceedings{Hoonhout2015, - author = {Hoonhout, B M and de Vries, S and Cohn, N}, - title = {The influence of spatially varying supply on coastal aeolian transport: - a field experiment}, - booktitle = {Proceedings of Coastal Sediments}, - year = {2015}, - address = {San Diego, USA}, - owner = {hoonhout}, - timestamp = {2015.05.22} -} - -@inproceedings{Hoonhout2015b, - author = {Hoonhout, B. M. and de Vries, S. and Cohn, N.}, - title = {The Influence of Spatially Varying Supply on Coastal Aeolian Transport: - A Field Experiment}, - booktitle = {Proceedings of the NCK-days 2015}, - year = {2015}, - owner = {hoonhout}, - timestamp = {2016.06.15} -} - -@article{Horikawa1983, - author = {Horikawa, Kiyoshi and Hotta, Shintaro and Kubota, Susumu and Katori, - Sadakazu}, - title = {On the sand transport rate by wind on a beach}, - journal = {Coastal Engineering in Japan}, - year = {1983}, - volume = {26}, - pages = {101--120}, - owner = {hoonhout}, - timestamp = {2016.06.28} -} - -@inproceedings{Hotta1984, - author = {Hotta, S and Kubota, S and Katori, S and Horikawa, K}, - title = {Sand transport by wind on a wet sand beach}, - booktitle = {Proceedings of the 19th Conference on Coastal Engineering}, - year = {1984}, - pages = {1264-1281}, - organization = {ASCE}, - owner = {hoonhout}, - timestamp = {2014.06.11} -} - -@article{Houser2009, - author = {Houser, C}, - title = {Synchronization of transport and supply in beach-dune interaction}, - journal = {Progress in Physical Geography}, - year = {2009}, - volume = {33}, - pages = {733--746}, - number = {6}, - doi = {10.1177/0309133309350120}, - owner = {hoonhout}, - timestamp = {2015.05.24} -} - -@article{Houser2015, - author = {Houser, C. and Wernette, P. and Rentschlar, E. and Jones, H. and - Hammond, B. and Trimble, S.}, - title = {Post-storm beach and dune recovery: Implications for barrier island - resilience}, - journal = {Geomorphology}, - year = {2015}, - volume = {234}, - pages = {54--63}, - doi = {10.1016/j.geomorph.2014.12.044}, - owner = {hoonhout}, - timestamp = {2015.05.27} -} - -@article{Howard1977, - author = {Howard, A D}, - title = {Effect of slope on the threshold of motion and its application to - orientation of wind ripples}, - journal = {Geological Society of America Bulletin}, - year = {1977}, - volume = {88}, - pages = {853--856}, - number = {6}, - doi = {10.1130/0016-7606(1977)88<853:EOSOTT>2.0.CO;2}, - owner = {hoonhout}, - timestamp = {2014.06.11} -} - -@article{Hsu1971, - author = {Hsu, Shih-Ang}, - title = {Wind stress criteria in eolian sand transport}, - journal = {Journal of Geophysical Research}, - year = {1971}, - volume = {76}, - pages = {8684--8686}, - number = {36}, - owner = {hoonhout}, - publisher = {Wiley Online Library}, - timestamp = {2015.10.01} -} - -@article{Hugenholtz2011, - author = {Hugenholtz, C. H. and Barchyn, T. E.}, - title = {Laboratory and field performance of a laser particle counter for - measuring aeolian sand transport}, - journal = {Journal of Geophysical Research}, - year = {2011}, - volume = {116}, - number = {F1}, - note = {F01010}, - doi = {10.1029/2010JF001822}, - issn = {2156-2202}, - keywords = {Instruments and techniques, aeolian sediment transport, laser sensor, - performance}, - owner = {hoonhout}, - timestamp = {2015.06.15} -} - -@unpublished{ImaresSamples, - author = {Imares}, - title = {Yearly sediment samples in the {S}and {M}otor domain}, - year = {2010 -- 2015}, - note = {Unpublished}, - owner = {hoonhout}, - timestamp = {2016.05.25}, - url = {https://zandmotordata.nl/thredds/catalog/opendap/morphology/sediment\_composition/} -} - -@article{Iversen2006, - author = {Iversen, J D and Rasmussen, K R}, - title = {The effect of surface slope on saltation threshold}, - journal = {Sedimentology}, - year = {2006}, - volume = {41}, - pages = {721--728}, - number = {4}, - doi = {10.1111/j.1365-3091.1994.tb01419.x}, - owner = {hoonhout}, - timestamp = {2015.05.24} -} - -@article{Jackson1999, - author = {Jackson, D W T and Cooper, J A G}, - title = {Beach fetch distance and aeolian sediment transport}, - journal = {Sedimentology}, - year = {1999}, - volume = {46}, - pages = {517--522}, - doi = {10.1046/j.1365-3091.1999.00228.x}, - owner = {hoonhout}, - timestamp = {2015.05.24} -} - -@techreport{Johnson1965, - author = {Johnson, J W}, - title = {Sand movement on coastal dunes}, - institution = {U.S. Department of Agriculture}, - year = {1965}, - number = {570, Symp. 3, Paper no. 75}, - note = {pp 747-755}, - owner = {hoonhout}, - timestamp = {2014.06.11} -} - -@inproceedings{Kang1994, -author = {Kang, H.Y. and Nielsen, P. and Hanslow, D.J}, -booktitle = {Coastal Engineering 1994}, -keywords = {pter 153,watertable overheight due to,wave runup}, -pages = {2115--2124}, -title = {{Watertable overheight due to wave runup on a sandy beach}}, -year = {1994} -} - -@techreport{Kawamura1951, - author = {Kawamura, R}, - title = {Study of sand movement by wind}, - institution = {Hydraulics Engineering Laboratory, Univeristy of California}, - year = {1951}, - number = {HEL-2-8}, - address = {Berkeley}, - owner = {hoonhout}, - timestamp = {2015.05.26} -} - -@article{King1951, - author = {King, C. A. M.}, - title = {Depth of disturbance of sand on sea beaches by waves}, - journal = {Journal of Sedimentary Petrology}, - year = {1951}, - volume = {21}, - pages = {131--140}, - number = {3}, - owner = {hoonhout}, - timestamp = {2015.08.06}, - url = {http://archives.datapages.com/data/sepm/journals/v01-32/data/021/021003/pdfs/0131.pdf} -} - -@article{King2005, - author = {King, J. and Nickling, W. G. and Gillies, J. A.}, - title = {Representation of vegetation and other nonerodible elements in aeolian - shear stress partitioning models for predicting transport threshold}, - journal = {Journal of Geophysical Research}, - year = {2005}, - volume = {110}, - number = {F4}, - note = {F04015}, - doi = {10.1029/2004JF000281}, - issn = {2156-2202}, - keywords = {Boundary layer processes, Land/atmosphere interactions, shear stress - partitioning models, wind erosion, dust emissions}, - owner = {hoonhout}, - timestamp = {2015.06.15} -} - -@misc{KNMI2013, - author = {KNMI}, - year = {2014}, - title = {Uurgegevens van het weer in {N}ederland - {H}oek van {H}olland (330)}, - howpublished = {ASCII}, - organization = {Royal Netherlands Meteorological Insititute}, - address = {de Bilt}, - note = {http://www.knmi.nl/klimatologie/uurgegevens/datafiles/330/ uurgeg\_330\_2011-2020.zip}, - url = {http://www.knmi.nl/klimatologie/uurgegevens/datafiles/330/ uurgeg\_330\_2011-2020.zip}, - owner = {hoonhout}, - timestamp = {2015.05.26} -} - -@article{Kocurek1999, - author = {Kocurek, Gary and Lancaster, Nicholas}, - title = {Aeolian system sediment state: theory and Mojave Desert Kelso dune - field example}, - journal = {Sedimentology}, - year = {1999}, - volume = {46}, - pages = {505--515}, - number = {3}, - doi = {10.1046/j.1365-3091.1999.00227.x}, - owner = {hoonhout}, - publisher = {Wiley Online Library}, - timestamp = {2015.10.02} -} - -@article{Kroon1990, - author = {Kroon, A. and Hoekstra, P.}, - title = {Eolian Sediment Transport on a Natural Beach}, - journal = {Journal of Coastal Research}, - year = {1990}, - volume = {6}, - pages = {367--379}, - number = {2}, - note = {ISSN 0749-0208}, - file = {Kroon1990.pdf:Kroon1990.pdf:PDF}, - owner = {hoonhout}, - timestamp = {2015.06.15} -} - -@article{kroy2002, - author = {Kroy, Klaus and Sauermann, Gerd and Herrmann, Hans J}, - title = {Minimal model for sand dunes}, - journal = {Physical Review Letters}, - year = {2002}, - volume = {88}, - pages = {054301}, - number = {5}, - doi = {10.1103/PhysRevLett.88.054301}, - owner = {hoonhout}, - publisher = {APS}, - timestamp = {2016.07.21} -} - -@article{Lancaster1998, - author = {Lancaster, Nicholas and Baas, Andy}, - title = {Influence of vegetation cover on sand transport by wind: field studies at Owens Lake, California}, - journal = {Earth Surface Processes and Landforms}, - year = {1998}, - volume = {23}, - pages = {69--82}, - number = {1}, + pages = {61--70}, + doi = {10.1016/j.aeolia.2010.04.001}, owner = {hoonhout}, - timestamp = {2016.04.29} + timestamp = {2015.05.24} } -@article{Lettau1978, - author = {Lettau, K and Lettau, H}, - title = {Experimental and micrometeorological field studies of dune migration.}, - year = {1978}, - owner = {hoonhout}, - publisher = {Madison}, - journal = {}, - timestamp = {2015.10.01} + +@article{VanGenuchten1980, +author = {van Genuchten, M. Th}, +doi = {10.2136/sssaj1980.03615995004400050002x}, +isbn = {0361599500440}, +issn = {03615995}, +journal = {Soil Science Society of America Journal}, +number = {5}, +pages = {892--898}, +title = {{Closed-Form Equation for Predicting the Hydraulic Conductivity of Unsaturated Soils.}}, +volume = {44}, +year = {1980} } -@article{Li2013, - author = {Li, J. and Okin, G. S. and Herrick, J. E. and Belnap, J. and Miller, M. E. and Vest, K. and Draut, A. E.}, - title = {Evaluation of a new model of aeolian transport in the presence of - vegetation}, - journal = {Journal of Geophysical Research}, - year = {2013}, - volume = {118}, - pages = {288--306}, - number = {1}, - doi = {10.1002/jgrf.20040}, - issn = {2169-9011}, - keywords = {Geomorphology and weathering, Earth system modeling, Erosion, Estimation - and forecasting, Geomorphology: general, arid and semiarid, model - evaluation, aeolian transport, cross-validation, shear stress partitioning}, - owner = {hoonhout}, - timestamp = {2015.06.15}, - url = {http://dx.doi.org/10.1002/jgrf.20040} +@article{Hoonhout2016, +author = {Hoonhout, Bas M. and Vries, Sierd de}, +title = {A process-based model for aeolian sediment transport and spatiotemporal varying sediment availability}, +journal = {Journal of Geophysical Research: Earth Surface}, +volume = {121}, +number = {8}, +pages = {1555-1575}, +keywords = {aeolian, sediment transport, sediment supply, sediment sorting, beach armoring, modeling}, +doi = {https://doi.org/10.1002/2015JF003692}, +year = {2016} } -@article{lynch2016, - author = {Lynch, Kevin and Jackson, Derek WT and Cooper, J Andrew G}, - title = {The fetch effect on aeolian sediment transport on a sandy beach: - a case study from Magilligan Strand, Northern Ireland}, - journal = {Earth Surface Processes and Landforms}, - year = {2016}, - doi = {10.1002/esp.3930}, - owner = {hoonhout}, - publisher = {Wiley Online Library}, - timestamp = {2016.05.03} +@inproceedings{Kang1994, +author = {Kang, H.Y. and Nielsen, P. and Hanslow, D.J}, +booktitle = {Coastal Engineering 1994}, +keywords = {pter 153,watertable overheight due to,wave runup}, +pages = {2115--2124}, +title = {{Watertable overheight due to wave runup on a sandy beach}}, +year = {1994} } -@article{Lynch2008, - author = {Lynch, K and Jackson, D W T and Cooper, J A G}, - title = {Aeolian fetch distance and secondary airflow effects: the influence - of micro-scale variables on meso-scale foredune development}, - journal = {Earth Surface Processes and Landforms}, - year = {2008}, - volume = {33}, - pages = {991--1005}, - number = {7}, - doi = {10.1002/esp.1582}, +@article{King1951, + author = {King, C. A. M.}, + title = {Depth of disturbance of sand on sea beaches by waves}, + journal = {Journal of Sedimentary Petrology}, + year = {1951}, + volume = {21}, + pages = {131--140}, + number = {3}, owner = {hoonhout}, - timestamp = {2015.05.26} + timestamp = {2015.08.06}, + url = {http://archives.datapages.com/data/sepm/journals/v01-32/data/021/021003/pdfs/0131.pdf} } @article{Masselink2007, @@ -1271,84 +246,10 @@ @article{Masselink2007 volume = {54}, pages = {39--53}, doi = {10.1111/j.1365-3091.2006.00825.x}, - dor = {10.1111/j.1365-3091.2006.00825.x}, - owner = {hoonhout}, - timestamp = {2015.05.26} -} - -@inproceedings{McCall2011, - author = {McCall, R T and van Geer, P F C and Hoonhout, B M}, - title = {Physical modeling of storm-induced erosion and overwash}, - booktitle = {Proceedings 7th Coastal Sediments Conference}, - year = {2011}, - address = {Miami, Florida, USA}, - owner = {hoonhout}, - timestamp = {2015.05.22} -} - -@article{McKennaNeuman2012, - author = {McKenna Neuman, C. and Li, B. and Nash, D.}, - title = {Micro-topographic analysis of shell pavements formed by aeolian transport - in a wind tunnel simulation}, - journal = {Journal of Geophysical Research}, - year = {2012}, - volume = {117}, - number = {F4}, - note = {F04003}, - doi = {10.1029/2012JF002381}, - issn = {2156-2202}, - keywords = {Erosion, Hydrology: Geographic Information Systems (GIS), Geomechanics, - Geomorphology: general, armoring, beach, shear stress, shells, wind - erosion, wind tunnel}, - owner = {hoonhout}, - timestamp = {2015.06.15} -} - -@article{McKennaNeuman1995, - author = {McKenna Neuman, Cheryl and Nickling, WG}, - title = {Aeolian sediment flux decay: Non-linear behaviour on developing deflation - lag surfaces}, - journal = {Earth Surface Processes and Landforms}, - year = {1995}, - volume = {20}, - pages = {423--435}, - number = {5}, - owner = {hoonhout}, - publisher = {Wiley Online Library}, - timestamp = {2015.10.01}, - url = {http://onlinelibrary.wiley.com/doi/10.1002/esp.3290200504/abstract} -} - -@article{McKennaNeuman1989, - author = {McKenna Neuman, C. and Nickling, W. G.}, - title = {A theoretical and wind tunnel investigation of the effect of capillary - water on the entrainment of sediment by wind}, - journal = {Canadian Journal of Soil Science}, - year = {1989}, - volume = {69}, - pages = {79--96}, owner = {hoonhout}, timestamp = {2015.05.26} } -@article{McKennaNeuman2008, - author = {McKenna Neuman, C. and Sanderson, S.}, - title = {Humidity control of particle emissions in aeolian systems}, - journal = {Journal of Geophysical Research}, - year = {2008}, - volume = {113}, - number = {F2}, - note = {F02S14}, - doi = {10.1029/2007JF000780}, - issn = {2156-2202}, - keywords = {Global Change: Land/atmosphere interactions, Global Change: Earth - system modeling, Global Change: Instruments and techniques, Global - Change: Atmosphere, humidity, adhesion, wind erosion, transport threshold, - wind tunnel}, - owner = {hoonhout}, - timestamp = {2015.06.15} -} - @article{Mualem1974, author = {Mualem, Y}, journal = {Water Resources Research}, @@ -1359,34 +260,6 @@ @article{Mualem1974 year = {1974} } -@article{Namikas2010, - author = {Namikas, S L and Edwards, B L and Bitton, M C A and Booth, J L and - Zhu, Y}, - title = {Temporal and spatial variabilities in the surface moisture content - of a fine-grained beach}, - journal = {Geomorphology}, - year = {2010}, - volume = {114}, - pages = {303--310}, - doi = {10.1016/j.geomorph.2009.07.011}, - owner = {hoonhout}, - timestamp = {2015.05.26} -} - -@article{Nickling1995, - author = {Nickling, WG and McKenna Neuman, C.}, - title = {Development of deflation lag surfaces}, - journal = {Sedimentology}, - year = {1995}, - volume = {42}, - pages = {403--414}, - number = {3}, - owner = {hoonhout}, - publisher = {Wiley Online Library}, - timestamp = {2015.10.01}, - url = {http://onlinelibrary.wiley.com/store/10.1111/j.1365-3091.1995.tb00381.x/asset/j.1365-3091.1995.tb00381.x.pdf?v=1&t=if84x8ic&s=48d0b8adf74d856b7d050fc83e67448c24808e05} -} - @article{Nickling1981, author = {Nickling, W G and Ecclestone, M}, title = {The effects of soluble salts on the threshold shear velocity of fine @@ -1428,47 +301,6 @@ @book{Nielsen2009 year = {2009} } -@article{Okin2008, - author = {Okin, G S}, - title = {A new model of wind erosion in the presence of vegetation}, - journal = {Journal of Geophysical Research}, - year = {2008}, - volume = {113}, - number = {F2}, - note = {F02S10}, - doi = {10.1029/2007JF000758}, - owner = {hoonhout}, - timestamp = {2015.05.26} -} - -@article{Owen1964, - author = {Owen, P R}, - title = {Saltation of uniform grains in air}, - journal = {J. Fluid Mech}, - year = {1964}, - volume = {20}, - pages = {225--242}, - number = {2}, - owner = {hoonhout}, - publisher = {Cambridge Univ Press}, - timestamp = {2015.10.01} -} - -@article{Parteli2009, - author = {Parteli, E. J. R. and Dur\'{a}n, O. and Tsoar, H. and Schw\"{a}mmle, - V. and Hermann, H. J.}, - title = {Dune formation under bimodal winds}, - journal = {Proceedings of the National Academy of Sciences of the United States - of America}, - year = {2009}, - volume = {106}, - pages = {22085--22089}, - number = {52}, - doi = {10.1073/pnas.0808646106}, - owner = {hoonhout}, - timestamp = {2015.05.27} -} - @article{Peckham2013, author = {Peckham, S. D. and Hutton, E. W. H. and Norris, B.}, title = {A component-based approach to integrated modeling in the geosciences: @@ -1482,16 +314,6 @@ @article{Peckham2013 timestamp = {2015.05.26} } -@techreport{dePree2009, - author = {de Pree, E}, - title = {Field measurements of grain size distributions - {V}lugtenburg}, - institution = {Delft University of Technology}, - year = {2009}, - file = {:Verslag_21novemberdeel2.docx:Word 2007+;:Verslag_21novemberdeel1.docx:Word 2007+}, - owner = {hoonhout}, - timestamp = {2015.05.26} -} - @book{Pye1990, title = {Aeolian Sand and Sand Dunes}, publisher = {Unwin Hyman}, @@ -1530,157 +352,6 @@ @article{Raupach1993 timestamp = {2015.10.01} } -@article{Raupach1992, - author = {Raupach, M R}, - title = {Drag and drag partition on rough surfaces}, - journal = {Boundary-Layer Meteorology}, - year = {1992}, - volume = {60}, - pages = {375--395}, - number = {4}, - owner = {hoonhout}, - publisher = {Springer}, - timestamp = {2015.10.01}, - url = {http://link.springer.com/article/10.1007/BF00155203} -} - -@article{Reniers2013, - author = {Reniers, AJHM and Gallagher, EL and MacMahan, JH and Brown, JA and - Rooijen, AA and Thiel de Vries, JSM and Prooijen, BC}, - title = {Observations and modeling of steep-beach grain-size variability}, - journal = {Journal of Geophysical Research: Oceans}, - year = {2013}, - volume = {118}, - pages = {577--591}, - number = {2}, - owner = {hoonhout}, - publisher = {Wiley Online Library}, - timestamp = {2016.04.29} -} - -@misc{Waterbase2013, - author = {Rijkswaterstaat}, - year = {2013}, - title = {http://live.waterbase.nl}, - howpublished = {website}, - organization = {Directorate-General for Public Works and Water Management}, - url = {http://live.waterbase.nl}, - owner = {hoonhout}, - timestamp = {2015.07.06} -} - -@article{Roelvink2009, - author = {Roelvink, J. A. and Reniers, A. and van Dongeren, A. P. and van Thiel - de Vries, J. S. M. and McCall, R. T. and Lescinski, J.}, - title = {Modelling storm impacts on beaches, dunes and barrier islands}, - journal = {Coastal Engineering}, - year = {2009}, - volume = {56}, - pages = {1133--1152}, - number = {11}, - doi = {10.1016/j.coastaleng.2009.08.006}, - owner = {hoonhout}, - timestamp = {2015.05.26} -} - -@inproceedings{Roelvink2012, - author = {Roelvink, J A and Stelling, G and Hoonhout, B M and Risandi, J and - Jacobs, W and Merli, D}, - title = {Development and field validation of a 2DH curvilinear storm impact - model}, - booktitle = {Proceedings of 33nd International Conference on Coastal Engineering}, - year = {2012}, - address = {Santander, Spain}, - owner = {hoonhout}, - timestamp = {2015.05.22} -} - -@article{Sorensen2004, - author = {S{\o}rensen, Michael}, - title = {On the rate of aeolian sand transport}, - journal = {Geomorphology}, - year = {2004}, - volume = {59}, - pages = {53--62}, - number = {1}, - owner = {hoonhout}, - publisher = {Elsevier}, - timestamp = {2015.10.01} -} - -@article{Scheidt2010, - author = {Scheidt, S. and Ramsey, M. and Lancaster, N.}, - title = {Determining soil moisture and sediment availability at White Sands - Dune Field, New Mexico, from apparent thermal inertia data}, - journal = {Journal of Geophysical Research}, - year = {2010}, - volume = {115}, - number = {F2}, - note = {F02019}, - doi = {10.1029/2009JF001378}, - issn = {2156-2202}, - keywords = {Geomorphology and weathering, Remote sensing, Sediment transport, - Soil moisture, Erosion and weathering, apparent thermal inertia, - soil moisture, sediment availability}, - owner = {hoonhout}, - timestamp = {2015.06.15} -} - -@article{deSchipper2016, - author = {de Schipper, Matthieu A and de Vries, Sierd and Ruessink, Gerben - and de Zeeuw, Roeland C and Rutten, Jantien and van Gelder-Maas, - Carola and Stive, Marcel JF}, - title = {Initial spreading of a mega feeder nourishment: Observations of the - Sand Engine pilot project}, - journal = {Coastal Engineering}, - year = {2016}, - volume = {111}, - pages = {23--38}, - doi = {10.1016/j.coastaleng.2015.10.011}, - owner = {hoonhout}, - publisher = {Elsevier}, - timestamp = {2016.02.24} -} - -@inproceedings{deSchipper2012, - author = {M.A. de {Schipper} and S. de {Vries} and R. {Ranasinghe} and A.J.H.M. - {Reniers} and M.J.F. {Stive}}, - title = {Morphological developments after a beach and shoreface nourishment - at Vlugtenburg beach}, - booktitle = {NCK-days 2012 : Crossing borders in coastal research}, - year = {2012}, - pages = {115--118}, - abstract = {Typically a beach is out of equilibrium after a nourishment is installed. - To observe how a nourished beach behaves on the timescale of storms - a monitoring campaign was set up at Vlugtenburg beach after a nourishment - in the spring of 2009. Here we show a sediment budget analysis of - the first 2.5 years for a coastal domain spanning 1750 m alongshore - from -9 to +5 m NAP. To investigate the redistribution of nourished - sand different sections of the profile are examined. Observations - show that the initial response (first 6 to 12 months after construction) - is large where the sediment eroded from the beach is transported - offshore to form a subtidal bar. In the following period (until present) - the losses in the domain are on the order of 40 m3 per m alongshore - per year. These losses are concentrated in the profile around the - waterline.}, - doi = {10.3990/2.180}, - owner = {hoonhout}, - timestamp = {2015.08.05} -} - -@article{Schlichting1936, - author = {Schlichting, Hermann}, - title = {Experimentelle untersuchungen zum rauhigkeitsproblem}, - journal = {Archive of Applied Mechanics}, - year = {1936}, - volume = {7}, - pages = {1--34}, - number = {1}, - owner = {hoonhout}, - publisher = {Springer}, - timestamp = {2015.10.01}, -} - @PHDTHESIS{Schmutz2014, author = {Schmutz, Phillip P}, title = {Investigation of Factors Controlling the Dynamics of Beach Surface Moisture}, @@ -1688,51 +359,6 @@ @PHDTHESIS{Schmutz2014 year = {2014} } - -@article{Sherman1998, - author = {Sherman, Douglas J and Jackson, Derek WT and Namikas, Steven L and - Wang, Jinkang}, - title = {Wind-blown sand on beaches: an evaluation of models}, - journal = {Geomorphology}, - year = {1998}, - volume = {22}, - pages = {113--133}, - number = {2}, - doi = {10.1016/S0169-555X(97)00062-7}, - owner = {hoonhout}, - publisher = {Elsevier}, - timestamp = {2015.10.01} -} - -@article{Sherman2012, - author = {Sherman, Douglas J and Li, Bailiang}, - title = {Predicting aeolian sand transport rates: a reevaluation of models}, - journal = {Aeolian Research}, - year = {2012}, - volume = {3}, - pages = {371--378}, - number = {4}, - doi = {10.1016/j.aeolia.2011.06.002}, - owner = {hoonhout}, - publisher = {Elsevier}, - timestamp = {2015.10.01} -} - -@article{Sherman2013, - author = {Sherman, Douglas J and Li, Bailiang and Ellis, Jean T and Farrell, - Eugene J and Maia, Luis Parente and Granja, Helena}, - title = {Recalibrating aeolian sand transport models}, - journal = {Earth Surface Processes and Landforms}, - year = {2013}, - volume = {38}, - pages = {169--178}, - number = {2}, - doi = {10.1002/esp.3310}, - owner = {hoonhout}, - publisher = {Wiley Online Library}, - timestamp = {2015.10.01} -} - @INCOLLECTION{Shuttleworth1993, author = {Shuttleworth, W J}, title = {Evaporation}, @@ -1746,48 +372,6 @@ @INCOLLECTION{Shuttleworth1993 timestamp = {2015.10.07} } -@article{Spearman1904, - author = {Spearman, C}, - title = {The proof and measurement of association between two things}, - journal = {American Journal of Psychology}, - year = {1904}, - volume = {15}, - pages = {72--101}, - doi = {10.2307/1412159}, - owner = {hoonhout}, - timestamp = {2016.06.21} -} - -@article{Stive2013, - author = {Stive, M J F and de Schipper, M A and Luijendijk, A P and Aarninkhof, - S G J and van Gelder-Maas, C and van Thiel de Vries, J S M and de - Vries, S and Henriquez, M and Marx, S and Ranasinghe, R}, - title = {A new alternative to saving our beaches from sea-level rise: the - {S}and {E}ngine}, - journal = {Journal of Coastal Research}, - year = {2013}, - volume = {29}, - pages = {1001--1008}, - number = {5}, - doi = {10.2112/JCOASTRES-D-13-00070.1}, - owner = {hoonhout}, - timestamp = {2015.05.22} -} - -@article{Stout2004, - author = {Stout, John E}, - title = {A method for establishing the critical threshold for aeolian transport - in the field}, - journal = {Earth Surface Processes and Landforms}, - year = {2004}, - volume = {29}, - pages = {1195--1207}, - number = {10}, - owner = {hoonhout}, - publisher = {Wiley Online Library}, - timestamp = {2016.04.29} -} - @article{Stockdon2006, author = {Hilary F. Stockdon and Rob A. Holman and Peter A. Howd and Asbury H. Sallenger}, title = {Empirical parameterization of setup, swash, and runup}, @@ -1801,134 +385,6 @@ @article{Stockdon2006 url = {https://www.sciencedirect.com/science/article/pii/S0378383906000044}, } -@article{Tan2013, - author = {Tan, Lihai and Zhang, Weimin and Qu, Jianjun and Zhang, Kecun and - An, Zhishan and Wang, Xiao}, - title = {Aeolian sand transport over gobi with different gravel coverages - under limited sand supply: a mobile wind tunnel investigation}, - journal = {Aeolian Research}, - year = {2013}, - volume = {11}, - pages = {67--74}, - doi = {10.1016/j.aeolia.2013.10.003}, - owner = {hoonhout}, - publisher = {Elsevier}, - timestamp = {2015.10.01} -} - -@article{Turpin2010, - author = {Turpin, C and Badr, T and Harion, J L}, - title = {Numerical modelling of aeolian erosion over rough surfaces}, - journal = {Earth Surface Processes and Landforms}, - year = {2010}, - volume = {35}, - pages = {1418--1429}, - number = {12}, - doi = {10.1002/esp.1980}, - owner = {hoonhout}, - publisher = {Wiley Online Library}, - timestamp = {2015.10.01} -} - -@article{Udo2008, - author = {Udo, K. and Kuriyama, Y. and Jackson, D. W. T.}, - title = {Observations of wind-blown sand under various meteorological conditions - at a beach}, - journal = {Journal of Geophysical Research}, - year = {2008}, - volume = {113}, - number = {F4}, - note = {F04008}, - doi = {10.1029/2007JF000936}, - owner = {hoonhout}, - timestamp = {2015.06.15} -} - -@PHDTHESIS{deVries2012, - author = {de Vries, S}, - title = {Physics of Blown Sand and Coastal Dunes}, - school = {Delft University of Technology}, - year = {2012}, - doi = {10.4233/uuid:9a701423-8559-4a44-be5d-370d292b0df3}, - owner = {hoonhout}, - timestamp = {2015.05.24} -} - -@article{deVries2014b, - author = {de Vries, S and Arens, S M and de Schipper, M A and Ranasinghe, R}, - title = {Aeolian sediment transport on a beach with a varying sediment supply}, - journal = {Aeolian Research}, - year = {2014}, - volume = {15}, - pages = {235--244}, - doi = {10.1016/j.aeolia.2014.08.001}, - owner = {hoonhout}, - timestamp = {2015.05.24} -} - -@inproceedings{deVries2011, - author = {de Vries, S and Arens, S M and Stive, M J F and Ranasinghe, R}, - title = {Dune growth trends and the effect of beach width on annual timescales}, - booktitle = {Proceedings 7th Coastal Sediments Conference}, - year = {2011}, - address = {Miami, Florida, USA}, - owner = {hoonhout}, - timestamp = {2015.05.24} -} - -@inproceedings{deVries2015, - author = {de Vries, S. and Radermacher, M. and de Schipper, M.A. and Stive, - M.J.F.}, - title = {Tidal Dynamics in the Sand Motor Lagoon}, - booktitle = {E-proceedings of the 36th IAHR World Congress}, - year = {2015}, - owner = {hoonhout}, - timestamp = {2016.05.26}, - url = {http://repository.tudelft.nl/islandora/object/uuid:e49d8911-72c2-4f6c-a8b4-7009954134c0/?collection=research} -} - -@inproceedings{deVries2010, - author = {de Vries, S and de Schipper, M A and Stive, M J F and Ranasinghe, - R}, - title = {Sediment exchange between the sub-aqueous and sub-aerial coastal - zones}, - booktitle = {Proceedings of 32nd International Conference on Coastal Engineering}, - year = {2010}, - owner = {hoonhout}, - timestamp = {2015.05.22} -} - -@article{deVries2012a, - author = {de Vries, S and Southgate, H N and Kanning, W and Ranasinghe, R}, - title = {Dune behavior and aeolian transport on decadal timescales}, - journal = {Coastal Engineering}, - year = {2012}, - volume = {67}, - pages = {41--53}, - doi = {10.1016/j.coastaleng.2012.04.002}, - owner = {hoonhout}, - timestamp = {2015.05.22} -} - -@inproceedings{deVries2012b, - author = {de Vries, S and Southgate, H N and Kanning, W and Ranasinghe, R}, - title = {Dune development and aeolian transport along the Holland coast}, - booktitle = {Jubilee Conference Proceedings, NCK-Days 2012}, - year = {2012}, - owner = {hoonhout}, - timestamp = {2015.05.22} -} - -@inproceedings{deVries2012c, - author = {de Vries, S and Stive, M J F and van Rijn, L C and Ranasinghe, R}, - title = {A new conceptual model for aeolian transport rates on beaches}, - booktitle = {Proceedings of 33nd International Conference on Coastal Engineering}, - year = {2012}, - address = {Santander, Spain}, - owner = {hoonhout}, - timestamp = {2015.05.22} -} - @article{deVries2014a, author = {de Vries, S and van Thiel de Vries, J S M and van Rijn, L C and Arens, S M and Ranasinghe, R}, @@ -1942,85 +398,14 @@ @article{deVries2014a timestamp = {2015.05.22} } -@article{VanDerWal2000, - author = {van der Wal, Daphne}, - title = {Grain-size-selective aeolian sand transport on a nourished beach}, - journal = {Journal of Coastal Research}, - year = {2000}, - pages = {896--908}, - owner = {hoonhout}, - publisher = {JSTOR}, - timestamp = {2016.04.29} -} - -@article{VanDerWal1998, - author = {van der Wal, Daphne}, - title = {The impact of the grain-size distribution of nourishment sand on - aeolian sand transport}, - journal = {Journal of Coastal Research}, - year = {1998}, - pages = {620--631}, - owner = {hoonhout}, - publisher = {JSTOR}, - timestamp = {2016.04.29} -} - -@inproceedings{Walstra2012, - author = {Walstra, D J R and de Vroeg, J and van Thiel de Vries, J S M and - Swinkels, C and Luijendijk, A P and de Boer, W and Hoekstra, R and - Hoonhout, B M and Henrotte, J and Smolders, T and Dekker, F and Godsey, - E}, - title = {A comprehensive sediment budget for the mississippi barrier islands}, - booktitle = {Proceedings of 33nd International Conference on Coastal Engineering}, - year = {2012}, - address = {Santander, Spain}, - owner = {hoonhout}, - timestamp = {2015.05.22} -} - -@article{Walters2014, - author = {Walters, D. and Moore, L. J. and Dur\'{a}n, O. and Fagherazzi, S. - and Mariotti, G.}, - title = {Interactions between barrier islands and backbarrier marshes affect - island system response to sea level rise: Insights from a coupled - model}, - journal = {Journal of Geophysical Research}, +@manual{Delft3DManual, + title = {Delft3D - 3D/2D modelling suite for integral water solutions - Hydro-Morphodynamics}, + author = {{Delft3D-FLOW Manual}}, + organization = {Deltares}, + address = {Delft}, + month = {May}, year = {2014}, - volume = {119}, - pages = {2013--2031}, - number = {9}, - note = {2014JF003091}, - doi = {10.1002/2014JF003091}, - issn = {2169-9011}, - keywords = {Wetlands, Geomorphology: general, Littoral processes, Coastal processes, - Continental shelf and slope processes, backbarrier marsh, barrier - island, overwash, sea level rise, coastal erosion}, - owner = {hoonhout}, - timestamp = {2015.06.15} -} - -@article{Weng1991, - author = {Weng, W. S. and Hunt, J. C. R. and Carruthers, D. J. and Warren, - A. and Wiggs, G. F. S.}, - title = {Air flow and sand transport over sand-dunes}, - journal = {Acta Mechanica}, - year = {1991}, - volume = {2}, - pages = {1--22}, - file = {Weng1991.pdf:Weng1991.pdf:PDF}, - owner = {hoonhout}, - timestamp = {2015.05.27} -} - -@article{Wiggs2004, - author = {Wiggs, G F S and Baird, A J and Atherton, R J}, - title = {The dynamic effects of moisture on the entrainment and transport - of sand by wind}, - journal = {Geomorphology}, - year = {2004}, - volume = {59}, - pages = {13--30}, - doi = {10.1016/j.geomorph.2003.09.002}, + note = {Version 3.15.34158}, owner = {hoonhout}, timestamp = {2015.05.26} } @@ -2038,21 +423,3 @@ @article{Williams1971 owner = {hoonhout}, timestamp = {2015.08.06} } - -@article{Zhang2010, - author = {Zhang, D. and Narteau, C. and Rozier, O.}, - title = {Morphodynamics of barchan and transverse dunes using a cellular automaton - model}, - journal = {Journal of Geophysical Research}, - year = {2010}, - volume = {115}, - number = {F3}, - note = {F03041}, - doi = {10.1029/2009JF001620}, - issn = {2156-2202}, - keywords = {Cellular automata, Sediment transport, Geomorphology: general, Geomorphology: - fluvial, dunes, bed shear stress, cellular automaton}, - owner = {hoonhout}, - timestamp = {2015.06.15} -} - diff --git a/docs/conf.py b/docs/conf.py index a11e1d75..fda47403 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -44,6 +44,7 @@ def setup(app): 'sphinx.ext.viewcode', 'sphinx_copybutton', 'sphinxcontrib.bibtex', + 'sphinx_rtd_theme', # 'nbsphinx', ] @@ -134,6 +135,11 @@ def setup(app): # further. For a list of options available for each theme, see the # documentation. #html_theme_options = {} +html_theme_options = { + 'collapse_navigation': True, # Enable collapsing titles in the sidebar + 'navigation_depth': 3, # Adjust the depth of the navigation tree + 'titles_only': False, # Show only titles in the sidebar +} # Add any paths that contain custom themes here, relative to this directory. html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] diff --git a/docs/developer/modularity.rst b/docs/developer/modularity.rst index 564d2444..15668833 100644 --- a/docs/developer/modularity.rst +++ b/docs/developer/modularity.rst @@ -1,7 +1,7 @@ Modularity ================ -Our ambiton is to make the current version of AeoLiS more modular. Specially, we want the architecture of the software to consist of well defined components (modules) that integrate with each other though well defined interfaces. This will allow us to add new features more easily and to make the software more robust easier to exent. +Our ambition is to make the current version of AeoLiS more modular. Specially, we want the architecture of the software to consist of well-defined components (modules) that integrate with each other through well-defined interfaces. This will allow us to add new features more easily and to make the software more robust and easier to extend. For example, the current version of AeoLiS is organized in a single class, the `AeoLiSRunner`. This class is responsible for the execution of the model. It is also responsible for the reading of the input files, executing the solvers, and writing of the output files. This makes the code difficult to understand, extend and test, see :numref:`fig-uml-model`. @@ -16,25 +16,25 @@ For example, the current version of AeoLiS is organized in a single class, the ` .. _GitHub repository: https://github.com/openearth/aeolis-python/issues -Suggetions for improvement +Suggestions for improvement --------------------------- We have some ideas about how to improve the modularity of the code. However, we are still working on the details of this architecture. If you have any suggestions, please let us know by opening an issue in our `GitHub repository`_ or by proposing improvements to the code via pull requests. -- **Reduce the amount to repeated code by using abstractions.** For example, some of the solvers implement similar alogorithms. We could implement an abstract class that implements the common parts of the algorithms and then extend this class to implement the specific algorithms of each solver. -- **Reduce the number of tasks the `AeoLiSRunner` and AeoLiS classes are responsible for.** This could be achieved by moving some of the code inside those clases to independent fuctions or modules. This will make the code easier to understand and test. -- **Organize code based on componets**.For example, :numref:`fig-step-flowchart` shows a flowchart of a modeling *step* in the AeoLiSRunner. We could use each colored-box in the flowchart to refactor the source code in separated components, each one with a well defined interface that connects to the other components. - +- **Reduce the amount of repeated code by using abstractions.** For example, some of the solvers implement similar algorithms. We could implement an abstract class that implements the common parts of the algorithms and then extend this class to implement the specific algorithms of each solver. +- **Reduce the number of tasks the `AeoLiSRunner` and AeoLiS classes are responsible for.** This could be achieved by moving some of the code inside those classes to independent functions or modules. This will make the code easier to understand and test. +- **Organize code based on components**. For example, :numref:`fig-step-flowchart` shows a flowchart of a modeling *step* in the AeoLiSRunner. We could use each colored-box in the flowchart to refactor the source code into separate components, each one with a well-defined interface that connects to the other components. .. _fig-step-flowchart: .. figure:: /images/model-step-flowchart.PNG - :alt: AeoLiS architecture + :alt: Step Flowchart + + Flowchart of a modeling step in the AeoLiSRunner. .. seealso:: - Read about `How to write modular code` for more suggestions on how to make a software more modular. + Read about `How to write modular code` for more suggestions on how to make software more modular. .. _How to write modular code: https://dev.to/prxtikk/how-to-write-clean-and-modular-code-1d87 - diff --git a/docs/developer/quickstart.rst b/docs/developer/quickstart.rst index 5f6da394..71a9bf4c 100644 --- a/docs/developer/quickstart.rst +++ b/docs/developer/quickstart.rst @@ -1,3 +1,5 @@ +.. _quickstart: + Quick start ============= diff --git a/docs/user/whatsnew.rst b/docs/developer/whatsnew.rst similarity index 96% rename from docs/user/whatsnew.rst rename to docs/developer/whatsnew.rst index 237d3d56..0ab79da9 100644 --- a/docs/user/whatsnew.rst +++ b/docs/developer/whatsnew.rst @@ -1,280 +1,280 @@ -.. - [Categories] - Breaking changes - Improvements - New functions/methods - Bug fixes - Tests - -What's New -========== - -v2.1.2 (July 2023) ------------------- - -Improvements -^^^^^^^^^^^^ -* New unit test and integration tests procedures (Nike Agrawal, Manuel Garcia) - -Bug fixes -^^^^^^^^^ -* Updated DOI for referencing (Sierd de Vries) - -Documentation -^^^^^^^^^^^^^ -* Updated citation file (Manuel Garcia) -* Advanced description on steps to create release (Manuel Garcia) - -What's Changed -^^^^^^^^^^^^^^ -* Add Github action for running tests automatically by @niketagrawal in https://github.com/openearth/aeolis-python/pull/111 -* Integration test to verify the model's expected result for 1D and 2D base cases by @niketagrawal in https://github.com/openearth/aeolis-python/pull/105 -* add release guidelines by @manuGil in https://github.com/openearth/aeolis-python/pull/109 -* Unit-Tests for Model.py by @manuGil in https://github.com/openearth/aeolis-python/pull/112 -* Update citation by @manuGil in https://github.com/openearth/aeolis-python/pull/117 -* Moisture bug fix by @CarolineHalllin in https://github.com/openearth/aeolis-python/pull/116 -* Implementation grain size dependent Bagnold equation by @christavanijzendoorn in https://github.com/openearth/aeolis-python/pull/122 -* Implementing TOML file for packaging by @manuGil in https://github.com/openearth/aeolis-python/pull/125 -* Patch/deprications by @manuGil in https://github.com/openearth/aeolis-python/pull/128 -* loop over fractions replaced by numba enhanced function by @Sierd in https://github.com/openearth/aeolis-python/pull/119 -* Docs: Add developer documentation and fix bugs by @niketagrawal in https://github.com/openearth/aeolis-python/pull/134 - -**Full Changelog**: https://github.com/openearth/aeolis-python/compare/v2.1.1...v2.1.2 - -v2.1.1 (March 2023) -------------------- - -Improvements -^^^^^^^^^^^^ -* New variable to simulate fences `fence_height` (Glenn Strypsteen) - -Bug fixes -^^^^^^^^^ -* Issue with checking the size of `y` in input file for 1D cases (Glenn Strypsteen) - -Documentation -^^^^^^^^^^^^^ -* Update references to default branch in contributing guide - - -v2.1.0 (February 2023) ------------------------ - -Breaking changes -^^^^^^^^^^^^^^^^ -* Solve unrealistic behaviour for large tidal ranges and mildly sloping beaches -* Reduce computational time when using Numba - -Improvements -^^^^^^^^^^^^ -* Better documentation on numerical solvers - -Bug fixes -^^^^^^^^^ -* Solve conflict between versions of Numpy and Numba -* Solve incompatibility with Scipy 1.10 - -Tests -^^^^^^^ -* Adopt Pytest as a testing framework - - -v2.0.0 (April 2022) -------------------- - -Breaking changes -^^^^^^^^^^^^^^^^ -* New vegetation growth/expansion capabilities (Bart Van Westen) -* Addition of groundwater module and new moisture routines (Caroline Hallin) -* Incorporation of Okin (2008) vegetation shear coupler (Nick Cohn) -* Addition of Palmsten and Holman (2012) dune erosion module (Nick Cohn) -* Approach to add sand fences into model (Nick Cohn) - -Improvements -^^^^^^^^^^^^ -* Replacement of wave runup driver with Stockdon et al. (2006) (Nick Cohn) -* Non-FFT 1D based topographic shear coupler added for computational speed up (Nick Cohn) - - -v1.2.2 (18 April 2020) ------------------------ - -Breaking changes -^^^^^^^^^^^^^^^^ - -* Removed support for statistical variable names with dot-notation - (e.g. `.avg` and `.sum`) (Bas Hoonhout) - - - -Improvements -^^^^^^^^^^^^ -* Logger shows minute by minute updates (Tom Pak) - -New functions/methods -^^^^^^^^^^^^^^^^^^^^^ - -* Avalanching process included in bed.py (Tom Pak) -* Implementation of non-erodible layers (Tom Pak) - -Bug fixes -^^^^^^^^^ - -* boundary condition definition updated (Tom Pak) -* compatiblity with new NETCDF4 version restored (Sierd de Vries) -* compatiblity with 1D domains (Sierd de Vries) - -Tests -^^^^^ - -None. - -v1.1.5 (unreleased) -------------------- - -Breaking changes -^^^^^^^^^^^^^^^^ - -None. - -Improvements -^^^^^^^^^^^^ - -* Also enable inundation if process_tide is True, but tide_file not - specified. In this case the water level is constant zero. - -* Changed class attributes into instance attributes to support - parallel independent model instances. - -New functions/methods -^^^^^^^^^^^^^^^^^^^^^ - -None. - -Bug fixes -^^^^^^^^^ - -* Fixed double definition of statistics variables in netCDF file in - case both `output_types` is specified and individual statistics - variables are specified in `output_vars`. - -Tests -^^^^^ - -None. - -v1.1.4 (15 February 2018) -------------------------- - -Improvements -^^^^^^^^^^^^ - -* Route all log messages and exceptions through the logging - module. Consequently, all information, warnings, and exceptions, - including tracebacks can be logged to file. - -* Added model version number and Git hash to log files and model - output. - -v1.1.3 (9 February 2018) ------------------------- - -Bug fixes -^^^^^^^^^ - -* Apply precipitation/eaporation only in top bed layer to prevent - mismatching matrix shapes in the multiplication. In the future, - precipitation might be distributed over multiple layers depending on - the porosity. - -v1.1.2 (21 December 2017) -------------------------- - -Breaking changes -^^^^^^^^^^^^^^^^ - -* Changed name of statistics variables that describe the average, - minimum, maximum, cumulative values, or variance of a model state - variable. The variables names that used to end with `.avg`, `.sum`, - etc. now end with `_avg`, `_sum`, etc. The new naming convention was - already adopted in the netCDF output in order to be compatible with - the CF-1.6 convention, but is now also adopted in, for example, the - Basic Model Interface (BMI). Old notation is deprecated but still - supported. - -Improvements -^^^^^^^^^^^^ - -* Prepared for continuous integration through CircleCI. -* Prepared for code coverage checking through codecov. - -Bug fixes -^^^^^^^^^ - -* Use percentages (0-100) rather than fractions (0-1) in the - formulation of Belly and Johnson that describes the effect of soil - moisture on the shear velocity threshold. Thanks to Dano Roelvink - and Susana Costas (b3d992b). - -Tests -^^^^^ - -* Reduced required accuracy for mass conservation tests from - 0.00000000000001% to 1%. - -v1.1.1 (15 November 2017) -------------------------- - -Improvements -^^^^^^^^^^^^ - -* Made code compatible with Python 3.x. -* Prepared and uploaded package to PyPI. -* Switch back to original working directory after finishing - simulation. -* Removed double definition of model state. Now only defined in - `constants.MODEL_STATE`. -* Also write initial model state to output. -* Made netCDF output compatible with CF-1.6 convention. - -New functions/methods -^^^^^^^^^^^^^^^^^^^^^ - -* Added support to run a default model for testing purposes by setting - the configuration file as "DEFAULT". -* Added generic framework for reading and applying spatial - masks. Implemented support for wave, tide and threshold masks - specifically. -* Added option to include a reference date in netCDF output. -* Added experimental option for constant boundary conditions. -* Added support for reading and writing hotstart files to load a - (partial) model state upon initialisation. -* Added preliminary wind shear perturbation module. Untested. -* Added support to switch on or off specific processes. -* Added support for immutable model state variables. This - functionality can be combined with BMI or hotstart files to prevent - external process results to be overwritten by the model. -* Added option to specify wind direction convention (nautical or - cartesian). - -Bug fixes -^^^^^^^^^ - -* Fixed conversion from volume to mass using porosity and density (fe9aa52). -* Update water level with bed updates to prevent loss of water due to - bed level change (fe9aa52). -* Fixed mass bug in base layer that drained sediment from bottom - layers, resulting in empty layers (f612760). -* Made removal of negative concentrations mass conserving by scraping - the concentrations from all other grid cells (03de813). - -Tests -^^^^^ - -* Added tests to check mass conservation in bed mixing routines. -* Added integration tests. - -v1.1.0 (27 July 2016) ---------------------- - -Initial release +.. + [Categories] + Breaking changes + Improvements + New functions/methods + Bug fixes + Tests + +What's New +========== + +v2.1.2 (July 2023) +------------------ + +Improvements +^^^^^^^^^^^^ +* New unit test and integration tests procedures (Nike Agrawal, Manuel Garcia) + +Bug fixes +^^^^^^^^^ +* Updated DOI for referencing (Sierd de Vries) + +Documentation +^^^^^^^^^^^^^ +* Updated citation file (Manuel Garcia) +* Advanced description on steps to create release (Manuel Garcia) + +What's Changed +^^^^^^^^^^^^^^ +* Add Github action for running tests automatically by @niketagrawal in https://github.com/openearth/aeolis-python/pull/111 +* Integration test to verify the model's expected result for 1D and 2D base cases by @niketagrawal in https://github.com/openearth/aeolis-python/pull/105 +* add release guidelines by @manuGil in https://github.com/openearth/aeolis-python/pull/109 +* Unit-Tests for Model.py by @manuGil in https://github.com/openearth/aeolis-python/pull/112 +* Update citation by @manuGil in https://github.com/openearth/aeolis-python/pull/117 +* Moisture bug fix by @CarolineHalllin in https://github.com/openearth/aeolis-python/pull/116 +* Implementation grain size dependent Bagnold equation by @christavanijzendoorn in https://github.com/openearth/aeolis-python/pull/122 +* Implementing TOML file for packaging by @manuGil in https://github.com/openearth/aeolis-python/pull/125 +* Patch/deprications by @manuGil in https://github.com/openearth/aeolis-python/pull/128 +* loop over fractions replaced by numba enhanced function by @Sierd in https://github.com/openearth/aeolis-python/pull/119 +* Docs: Add developer documentation and fix bugs by @niketagrawal in https://github.com/openearth/aeolis-python/pull/134 + +**Full Changelog**: https://github.com/openearth/aeolis-python/compare/v2.1.1...v2.1.2 + +v2.1.1 (March 2023) +------------------- + +Improvements +^^^^^^^^^^^^ +* New variable to simulate fences `fence_height` (Glenn Strypsteen) + +Bug fixes +^^^^^^^^^ +* Issue with checking the size of `y` in input file for 1D cases (Glenn Strypsteen) + +Documentation +^^^^^^^^^^^^^ +* Update references to default branch in contributing guide + + +v2.1.0 (February 2023) +----------------------- + +Breaking changes +^^^^^^^^^^^^^^^^ +* Solve unrealistic behaviour for large tidal ranges and mildly sloping beaches +* Reduce computational time when using Numba + +Improvements +^^^^^^^^^^^^ +* Better documentation on numerical solvers + +Bug fixes +^^^^^^^^^ +* Solve conflict between versions of Numpy and Numba +* Solve incompatibility with Scipy 1.10 + +Tests +^^^^^^^ +* Adopt Pytest as a testing framework + + +v2.0.0 (April 2022) +------------------- + +Breaking changes +^^^^^^^^^^^^^^^^ +* New vegetation growth/expansion capabilities (Bart Van Westen) +* Addition of groundwater module and new moisture routines (Caroline Hallin) +* Incorporation of Okin (2008) vegetation shear coupler (Nick Cohn) +* Addition of Palmsten and Holman (2012) dune erosion module (Nick Cohn) +* Approach to add sand fences into model (Nick Cohn) + +Improvements +^^^^^^^^^^^^ +* Replacement of wave runup driver with Stockdon et al. (2006) (Nick Cohn) +* Non-FFT 1D based topographic shear coupler added for computational speed up (Nick Cohn) + + +v1.2.2 (18 April 2020) +----------------------- + +Breaking changes +^^^^^^^^^^^^^^^^ + +* Removed support for statistical variable names with dot-notation + (e.g. `.avg` and `.sum`) (Bas Hoonhout) + + + +Improvements +^^^^^^^^^^^^ +* Logger shows minute by minute updates (Tom Pak) + +New functions/methods +^^^^^^^^^^^^^^^^^^^^^ + +* Avalanching process included in bed.py (Tom Pak) +* Implementation of non-erodible layers (Tom Pak) + +Bug fixes +^^^^^^^^^ + +* boundary condition definition updated (Tom Pak) +* compatiblity with new NETCDF4 version restored (Sierd de Vries) +* compatiblity with 1D domains (Sierd de Vries) + +Tests +^^^^^ + +None. + +v1.1.5 (unreleased) +------------------- + +Breaking changes +^^^^^^^^^^^^^^^^ + +None. + +Improvements +^^^^^^^^^^^^ + +* Also enable inundation if process_tide is True, but tide_file not + specified. In this case the water level is constant zero. + +* Changed class attributes into instance attributes to support + parallel independent model instances. + +New functions/methods +^^^^^^^^^^^^^^^^^^^^^ + +None. + +Bug fixes +^^^^^^^^^ + +* Fixed double definition of statistics variables in netCDF file in + case both `output_types` is specified and individual statistics + variables are specified in `output_vars`. + +Tests +^^^^^ + +None. + +v1.1.4 (15 February 2018) +------------------------- + +Improvements +^^^^^^^^^^^^ + +* Route all log messages and exceptions through the logging + module. Consequently, all information, warnings, and exceptions, + including tracebacks can be logged to file. + +* Added model version number and Git hash to log files and model + output. + +v1.1.3 (9 February 2018) +------------------------ + +Bug fixes +^^^^^^^^^ + +* Apply precipitation/eaporation only in top bed layer to prevent + mismatching matrix shapes in the multiplication. In the future, + precipitation might be distributed over multiple layers depending on + the porosity. + +v1.1.2 (21 December 2017) +------------------------- + +Breaking changes +^^^^^^^^^^^^^^^^ + +* Changed name of statistics variables that describe the average, + minimum, maximum, cumulative values, or variance of a model state + variable. The variables names that used to end with `.avg`, `.sum`, + etc. now end with `_avg`, `_sum`, etc. The new naming convention was + already adopted in the netCDF output in order to be compatible with + the CF-1.6 convention, but is now also adopted in, for example, the + Basic Model Interface (BMI). Old notation is deprecated but still + supported. + +Improvements +^^^^^^^^^^^^ + +* Prepared for continuous integration through CircleCI. +* Prepared for code coverage checking through codecov. + +Bug fixes +^^^^^^^^^ + +* Use percentages (0-100) rather than fractions (0-1) in the + formulation of Belly and Johnson that describes the effect of soil + moisture on the shear velocity threshold. Thanks to Dano Roelvink + and Susana Costas (b3d992b). + +Tests +^^^^^ + +* Reduced required accuracy for mass conservation tests from + 0.00000000000001% to 1%. + +v1.1.1 (15 November 2017) +------------------------- + +Improvements +^^^^^^^^^^^^ + +* Made code compatible with Python 3.x. +* Prepared and uploaded package to PyPI. +* Switch back to original working directory after finishing + simulation. +* Removed double definition of model state. Now only defined in + `constants.MODEL_STATE`. +* Also write initial model state to output. +* Made netCDF output compatible with CF-1.6 convention. + +New functions/methods +^^^^^^^^^^^^^^^^^^^^^ + +* Added support to run a default model for testing purposes by setting + the configuration file as "DEFAULT". +* Added generic framework for reading and applying spatial + masks. Implemented support for wave, tide and threshold masks + specifically. +* Added option to include a reference date in netCDF output. +* Added experimental option for constant boundary conditions. +* Added support for reading and writing hotstart files to load a + (partial) model state upon initialisation. +* Added preliminary wind shear perturbation module. Untested. +* Added support to switch on or off specific processes. +* Added support for immutable model state variables. This + functionality can be combined with BMI or hotstart files to prevent + external process results to be overwritten by the model. +* Added option to specify wind direction convention (nautical or + cartesian). + +Bug fixes +^^^^^^^^^ + +* Fixed conversion from volume to mass using porosity and density (fe9aa52). +* Update water level with bed updates to prevent loss of water due to + bed level change (fe9aa52). +* Fixed mass bug in base layer that drained sediment from bottom + layers, resulting in empty layers (f612760). +* Made removal of negative concentrations mass conserving by scraping + the concentrations from all other grid cells (03de813). + +Tests +^^^^^ + +* Added tests to check mass conservation in bed mixing routines. +* Added integration tests. + +v1.1.0 (27 July 2016) +--------------------- + +Initial release diff --git a/docs/images/Veg_growth.png b/docs/images/Veg_growth.png new file mode 100644 index 00000000..9d1a2a4a Binary files /dev/null and b/docs/images/Veg_growth.png differ diff --git a/docs/images/aeolis_developer_group.jpg b/docs/images/aeolis_developer_group.jpg new file mode 100644 index 00000000..29b82fb2 Binary files /dev/null and b/docs/images/aeolis_developer_group.jpg differ diff --git a/docs/images/model_overview.png b/docs/images/model_overview.png new file mode 100644 index 00000000..8ac540d6 Binary files /dev/null and b/docs/images/model_overview.png differ diff --git a/docs/index.rst b/docs/index.rst index 1c5eab26..06dc381c 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -14,58 +14,78 @@ Welcome to AeoLiS's Documentation ------- -AeoLiS is a process-based model for simulating aeolian sediment transport in situations where supply-limiting factors are important, -like in coastal environments. Supply-limitations currently supported are soil moisture contents, sediment sorting and armouring, bed slope effects, air humidity and roughness elements. +This documentation describes the Python implementation of the AeoLiS. AeoLiS is an aeolian sediment transport and landform evolution model that is designed to account for sediment-supply-limiting factors in coastal environments. The source code of the Python implementation can be found in `GitHub `_. -This documentation describes the Python implementation of the AeoLiS -model. The source code of the Python implementation can be found in `GitHub `_. +The code is developed and maintained by a developer group that consists of members from Deltares, U.S. Army Engineer Research and Development Center (ERDC), Delft University of Technology, Oregon State University, and Lund University. We encourage contributions from the community. If you are interested in contributing to the code, please read the :ref:`developer documentation `. + +.. _fig-developer-group: + +.. figure:: images/aeolis_developer_group.jpg + :alt: Aeolis developer group + :width: 550px + :align: center + + AeoLiS developer group Contents --------- +======== .. toctree:: :caption: User Documentation - :maxdepth: 2 + :maxdepth: 3 + user/introduction user/installation - user/whatsnew - user/model - user/implementation - user/defaults - user/inputfiles - user/output + user/model_description + user/model_setup + user/model_interaction user/sourcecode - user/bibliography + user/references + user/appendix .. toctree:: - :caption: Tutorials - :maxdepth: 2 + :caption: Tutorials and examples + :maxdepth: 3 - tutorials/sandmotor - tutorials/2D-parabolic + tutorials/shortcourses + tutorials/demonstration_cases .. toctree:: :caption: Developer Documentation - :maxdepth: 2 + :maxdepth: 3 developer/quickstart developer/testing-introduction developer/unit-testing + developer/whatsnew .. toctree:: :caption: Current Development - :maxdepth: 2 + :maxdepth: 3 developer/modularity developer/domain-decomposition + +Contact +======= +If you have questions about the model that is of interest to the community, please post your question in the `discussion forum `_. + +- Bart van Westen (Bart.vanWesten@deltares.nl) at Deltares +- Nick Cohn (nicholas.t.cohn@usace.army.mil) at U.S. Army Engineer Research and Development Center (ERDC) +- Sierd de Vries (Sierd.deVries@tudelft.nl) (founder) at Delft University of Technology +- Christa van IJzendoorn (vanijzec@oregonstate.edu) at Oregon State University +- Caroline Hallin (caroline.hallin@tvrl.lth.se) at Lund University +- Glenn Strypsteen (glenn.strypsteen@kuleuven.be) at Katholieke Universiteit Leuven + + Acknowledgements ================ * AeoLiS was initially developed at Delft University of Technology with support from the ERC-Advanced Grant 291206 Nearshore Monitoring and Modeling (`NEMO `_) and `Deltares `_. -* AeoLiS is currently maintained by `Bart van Westen `_ at Deltares, `Nick Cohn `_ at U.S. Army Engineer Research and Development Center (ERDC) and `Sierd de Vries `_ at Delft University of Technology. -* Further developement of AeoLiS is supported by the `Digital Competence Centre `_, Delft University of Technology. +* AeoLiS is currently maintained by `Bart van Westen `_ at Deltares, `Nick Cohn `_ at U.S. Army Engineer Research and Development Center (ERDC) and `Sierd de Vries `_ at Delft University of Technology. +* Further development of AeoLiS is supported by the `Digital Competence Centre `_, Delft University of Technology. Indices and tables diff --git a/docs/tutorials/2D-parabolic.rst b/docs/tutorials/2D-parabolic.rst deleted file mode 100644 index 055223de..00000000 --- a/docs/tutorials/2D-parabolic.rst +++ /dev/null @@ -1,34 +0,0 @@ -Parabolic dune model (Tutorial under construction) -=================================================== - - -1. Install aeolis - -pip install aeolis - -2. Install the examples - -To install the examples do the following: - -.. code-block:: bash - - aeolis examples . - -This will install the examples in the current directory. If you want to install them in a different directory, replace the "." with the path to the directory you want to install the examples in. - -3. Run the simulation - -Run the simulation with: - -.. code-block:: bash - - aeolis run aeolis_examples/parabolic_dune_model/aeolis.txt - - -4. View/plot the results - - - - - - diff --git a/docs/tutorials/demonstration_cases.rst b/docs/tutorials/demonstration_cases.rst new file mode 100644 index 00000000..658f17e1 --- /dev/null +++ b/docs/tutorials/demonstration_cases.rst @@ -0,0 +1,34 @@ +Demonstration cases +=================== +The `example folder `_ contains a collection of input files needed to run example models. The different examples are explained in the `readme-file `. They are intended to serve as an example of the model's capabilities and instruction on how to set up and organize models. The model input files can be modified using the `pre-processing tools `, and the model output can be visualized with the `post-processing tools https://github.com/openearth/aeolis-python/tree/main/tools/postprocessing>`. + +To run the examples: + +1. Install aeolis + +.. code-block:: bash + + pip install aeolis + +2. Install the examples + +To install the examples do the following: + +.. code-block:: bash + + aeolis examples . + +This will install the examples in the current directory. If you want to install them in a different directory, replace the "." with the path to the directory you want to install the examples in. + +3. Run the simulation + +Run the simulation with (example parabolic dune model): + +.. code-block:: bash + + aeolis run aeolis_examples/parabolic_dune_model/aeolis.txt + + +4. View/plot the results (example parabolic dune model): + +Run the plotting_run.py file to visualize the example. Make sure the in the code that the correct nc file from the correct directory is being read. diff --git a/docs/tutorials/sandmotor.rst b/docs/tutorials/sandmotor.rst deleted file mode 100644 index d66669f0..00000000 --- a/docs/tutorials/sandmotor.rst +++ /dev/null @@ -1,33 +0,0 @@ -SandMotor model (Tutorial under construction) -============================================== - - -1. Install aeolis - -pip install aeolis - -2. Install the sandengine_small_grids example - -To install the example do the following: - -.. code-block:: bash - - aeolis examples . - -This command will create a directory called "aeolis_examples" in the current directory. The model configuration file for the sandengine_small_grids example is placed in the "sandengine_small_grids" subdirectory of "aeolis_examples". - -This will install the examples in the current directory. If you want to install them in a different directory, replace the "." with the path to the directory you want to install the examples in. - -3. Run the simulation - -Run the simulation with: - -.. code-block:: bash - - aeolis run aeolis_examples/sandengine_small_grids/aeolis.txt - - -4. View/plot the results - - - diff --git a/docs/tutorials/shortcourses.rst b/docs/tutorials/shortcourses.rst new file mode 100644 index 00000000..ea18905f --- /dev/null +++ b/docs/tutorials/shortcourses.rst @@ -0,0 +1,7 @@ +Short courses +=============== +A couple of short courses are available to help new users get acquainted with the model: + +https://github.com/openearth/aeolis-shortcourse + +https://github.com/erdc/aeolis-python/tree/master/tutorial diff --git a/docs/user/implementation.rst b/docs/user/appendix.rst similarity index 78% rename from docs/user/implementation.rst rename to docs/user/appendix.rst index 532b560d..64fdd18e 100644 --- a/docs/user/implementation.rst +++ b/docs/user/appendix.rst @@ -1,36 +1,13 @@ -Numerical implementation -======================== +Appendix +========= -The numerical implementation of the equations presented in -:ref:`model` is explained here. The implementation is available as -Python package through the OpenEarth GitHub repository at: -http://www.github.com/openearth/aeolis-python/ +Numerical details of solving the advection equation +----------------------------------------------------- -Advection equation ------------------- -The advection equation is implemented in two-dimensional form -following: +.. _pieter_num: -.. math:: - :label: apx-advection - - \frac{\partial c}{\partial t} + - u_{z,\mathrm{x}} \frac{\partial c}{\partial x} + - u_{z,\mathrm{y}} \frac{\partial c}{\partial y} = - \frac{c_{\mathrm{sat}} - c}{T} - -in which :math:`c` [:math:`\mathrm{kg/m^2}`] is the sediment mass per -unit area in the air, :math:`c_{\mathrm{sat}}` [:math:`\mathrm{kg/m^2}`] is the -maximum sediment mass in the air that is reached in case of -saturation, :math:`u_{z,\mathrm{x}}` and :math:`u_{z,\mathrm{y}}` are the x- and -y-component of the wind velocity at height :math:`z` [m], :math:`T` [s] is an -adaptation time scale, :math:`t` [s] denotes time and :math:`x` [m] and :math:`y` [m] -denote cross-shore and alongshore distances respectively. - -The formulation is discretized in different ways to allow for different types of simulations balancing accuracy vs. computational resources. The conservative method combined with an euler backward scheme (written by Prof. Rauwoens) is the current default for most simulations. Non-conservative methods end explicit Euler forward schemes are also available. - -Default scheme -- Conservative Euler Backward Implicit +Conservative Euler Backward Implicit (pieter solver) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The default numerical method assumes the advection scheme in a conservative form in combination with an euler backward scheme. This scheme is prepared to use a TVD method but this is not implemented yet (add footnote{Total Variance Diminishing, this is explained in the lecture notes by Zijlema p94}) @@ -244,159 +221,11 @@ Also, the pickup per grid cell can be calculated using: note that this is only valid when using an Euler backward scheme. -Solving the Linear System of Equations -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The linear system of equations can be elaborated : - -.. math:: - :label: apx-system - - \left[ - \begin{array}{cccccc} - A^0_1 & A^{1}_1 & \textbf{0} & \cdots & \textbf{0} & A^{n_{\mathrm{y}}+1}_1 \\ - A^{-1}_2 & A^0_2 & \ddots & \ddots & & \textbf{0} \\ - \textbf{0} & \ddots & \ddots & \ddots & \ddots & \vdots \\ - \vdots & \ddots & \ddots & \ddots & \ddots & \textbf{0} \\ - \textbf{0} & & \ddots & \ddots & A^0_{n_{\mathrm{y}}} & A^1_{n_{\mathrm{y}}} \\ - A^{-n_{\mathrm{y}}-1}_{n_{\mathrm{y}}+1} & \textbf{0} & \cdots & \textbf{0} & A^{-1}_{n_{\mathrm{y}}+1} & A^0_{n_{\mathrm{y}}+1} \\ - \end{array} - \right] \left[ - \begin{array}{c} - \vec{\delta c}_1 \\ \vec{\delta c}_2 \\ \vdots \\ \vdots \\ \vec{\delta c}_{n_{\mathrm{y}}} \\ \vec{\delta c}_{n_{\mathrm{y}}+1} \\ - \end{array} - \right] = \left[ - \begin{array}{c} - \vec{y}_1 \\ \vec{y}_2 \\ \vdots \\ \vdots \\ \vec{y}_{n_{\mathrm{y}}} \\ \vec{y}_{n_{\mathrm{y}}+1} \\ - \end{array} - \right] - -where each item in the matrix is again a matrix :math:`A^l_j` and -each item in the vectors is again a vector :math:`\vec{\delta c}_j` and -:math:`\vec{y}_j` respectively. The form of the matrix :math:`A^l_j` depends on -the diagonal index :math:`l` and reads: - -.. math:: - :label: apx-diagonal - - A^0_j = - \left[ - \begin{array}{ccccccc} - 0 & 0 & 0 & 0 - & \cdots & \cdots & 0 \\ - a^{0,-1}_{2,j} & a^{0,0}_{2,j} & a^{0,1}_{2,j} & \ddots - & & & \vdots \\ - 0 & a^{0,-1}_{3,j} & a^{0,0}_{3,j} & a^{0,1}_{3,j} - & \ddots & & \vdots \\ - \vdots & \ddots & \ddots & \ddots - & \ddots & \ddots & \vdots \\ - \vdots & & \ddots & a^{0,-1}_{n_{\mathrm{x}}-1,j} - & a^{0,0}_{n_{\mathrm{x}}-1,j} & a^{0,1}_{n_{\mathrm{x}}-1,j} & 0 \\ - \vdots & & & 0 - & a^{0,-1}_{n_{\mathrm{x}},j} & a^{0,0}_{n_{\mathrm{x}},j} & a^{0,1}_{n_{\mathrm{x}},j} \\ - 0 & \cdots & \cdots & 0 - & 1 & -2 & 1 \\ - \end{array} - \right] - -for :math:`l = 0` and - -.. math:: - :label: apx-offdiagonal - - A^l_j = - \left[ - \begin{array}{ccccccc} - 1 & 0 & \cdots & \cdots - & \cdots & \cdots & 0 \\ - 0 & a^{l,0}_{2,j} & \ddots & - & & & \vdots \\ - \vdots & \ddots & a^{l,0}_{3,j} & \ddots - & & & \vdots \\ - \vdots & & \ddots & \ddots - & \ddots & & \vdots \\ - \vdots & & & \ddots - & a^{l,0}_{n_{\mathrm{x}}-1,j} & \ddots & \vdots \\ - \vdots & & & - & \ddots & a^{l,0}_{n_{\mathrm{x}},j} & 0 \\ - 0 & \cdots & \cdots & \cdots - & \cdots & 0 & 1 \\ - \end{array} - \right] - -for :math:`l \neq 0`. The vectors :math:`\vec{\delta c}_{j,k}` and :math:`\vec{y}_{j,k}` -read: -.. math:: - :label: c-array - - \begin{array}{rclrcl} - \vec{\delta c}_{j,k} &=& \left[ - \begin{array}{c} - \delta c^{n+1}_{1,j,k} \\ - \delta c^{n+1}_{2,j,k} \\ - \delta c^{n+1}_{3,j,k} \\ - \vdots \\ - \delta c^{n+1}_{n_{\mathrm{x}}-1,j,k} \\ - \delta c^{n+1}_{n_{\mathrm{x}},j,k} \\ - \delta c^{n+1}_{n_{\mathrm{x}}+1,j,k} \\ - \end{array} - \right] & ~ \mathrm{and} ~ - \vec{y}_{j,k} &=& \left[ - \begin{array}{c} - 0 \\ - y^n_{2,j,k} \\ - y^n_{3,j,k} \\ - \vdots \\ - y^n_{n_{\mathrm{x}}-1,j,k} \\ - y^n_{n_{\mathrm{x}},j,k} \\ - 0 \\ - \end{array} - \right] \\ - \end{array} - -:math:`n_{\mathrm{x}}` and :math:`n_{\mathrm{y}}` denote the number of -spatial grid cells in x- and y-direction. - -Iterations to solve for multiple fractions -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The linear system defined in Equation :eq:`apx-system` is solved by a -sparse matrix solver for each sediment fraction separately in -ascending order of grain size. Initially, the weights -:math:`\hat{w}^{n+1}_{i,j,k}` are chosen according to the grain size -distribution in the bed and the air. The sediment availability -constraint is checked after each solve: - -.. math:: - :label: solve - - m_{\mathrm{a}} \geq \frac{\hat{w}^{n+1}_{i,j,k} c^{n+1}_{\mathrm{sat},i,j,k} - c^{n+1}_{i,j,k}}{T} \Delta t^n - -If the constraint if violated, a new estimate for the weights -is back-calculated following: - -.. math:: - :label: solve-weights - - \hat{w}^{n+1}_{i,j,k} = \frac{ c^{n+1}_{i,j,k} + m_{\mathrm{a}} \frac{T}{\Delta t^n} }{c^{n+1}_{\mathrm{sat},i,j,k}} - -The system is solved again using the new weights. This -procedure is repeated until a weight is found that does not violate -the sediment availability constraint. If the time step is not too -large, the procedure typically converges in only a few -iterations. Finally, the weights of the larger grains are increased -proportionally as to ensure that the sum of all weights remains -unity. If no larger grains are defined, not enough sediment is -available for transport and the grid cell is truly -availability-limited. This situation should only occur occasionally as -the weights in the next time step are computed based on the new bed -composition and thus will be skewed towards the large fractions. If -the situation occurs regularly, the time step is chosen too large -compared to the rate of armoring. +.. _trunk_num: -Euler Schemes in non-conservative form -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Euler Schemes in non-conservative form (trunk solver) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Early model results relied on Euler schemes in a non conservative form. This allowed for a relatively easy implementation but did not guarantee mass conservation. In version 2 of AEOLIS the conservative form became the default. However, some users still use the older scheme. @@ -637,100 +466,155 @@ boundaries are circular: c^{n+1}_{i,n_{\mathrm{y}}+1,k} &=& c^{n+1}_{i,1,k} \\ \end{array} -Shear stress perturbation for non-perpendicular wind directions ---------------------------------------------------------------- - -The shear stress perturbation 𝛿𝜏 is estimated following the analytical description of the influence of alow and smooth hill in the wind profile by Weng et al. (1991). The perturbation is given by the Fouriertransformed components of the shear stress perturbation in the unperturbed wind direction which are the functions 𝛿𝜏𝑥(𝑘) and 𝛿𝜏𝑦(𝑘). The x-direction is defined by the direction of the wind velocity 𝑣0 on a flat bed, while the y direction is then the transverse. - -As a result, the perturbation theory can only estimate the shear stress induced by the morphology-wind interaction in parallel direction of wind. Therefore, model simulations were, up to now, limited to input wind directions parallel to the cross­shore axis of the grid. - -To overcome this limitation and to allow for modelling directional winds, an overlaying computational grid is introduced in AeoLiS, which rotates with the changing wind direction per time step. By doing this, the shear stresses are always estimated in the positive x-direction of the computational grid. The following steps are executed for each time step: - -1. Create a computational grid alligned with the wind direction (set_computational_grid) -2. Add and fill buffer around the original grid -3. Populate computation grid by rotating it to the current wind direction and interpolate the original topography on it. Additionally, edges around -4. Compute the morphology-wind induced shear stress by using the perturbation theory -5. Add the only wind induced wind shear stresses to the computational grid -6. Rotate both the grids and the total shear stress results in opposite direction -7. Interpolate the total shear stress results from the computational grid to the original grid -8. Rotate the wind shear stress results and the original grid back to the original orientation - -.. note:: - The extra rotations in the last two steps are necessary as a simplified, but faster in terms of computational time, interpolation method is used. +Solving the Linear System of Equations +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Boussinesq groundwater equation -------------------------------- -The Boussinesq equation is solved numerically with a central finite difference -method in space and a fourth-order Runge-Kutta integration technique in time: +The linear system of equations can be elaborated : .. math:: - :label: solve-boussinesq - - f(\eta ) = \frac{K}{{{n_e}}}\left[ {D\underbrace {\frac{{{\partial ^2}\eta }}{{\partial {x^2}}}}_a + \underbrace {\frac{\partial }{{\partial x}}\underbrace {\left\{ {\eta \frac{{\partial \eta }}{{\partial x}}} \right\}}_b}_c} \right] - -The Runge-Kutta time-stepping, where :math:`\Delta t` is the length of the timestep, is defined as, + :label: apx-system + + \left[ + \begin{array}{cccccc} + A^0_1 & A^{1}_1 & \textbf{0} & \cdots & \textbf{0} & A^{n_{\mathrm{y}}+1}_1 \\ + A^{-1}_2 & A^0_2 & \ddots & \ddots & & \textbf{0} \\ + \textbf{0} & \ddots & \ddots & \ddots & \ddots & \vdots \\ + \vdots & \ddots & \ddots & \ddots & \ddots & \textbf{0} \\ + \textbf{0} & & \ddots & \ddots & A^0_{n_{\mathrm{y}}} & A^1_{n_{\mathrm{y}}} \\ + A^{-n_{\mathrm{y}}-1}_{n_{\mathrm{y}}+1} & \textbf{0} & \cdots & \textbf{0} & A^{-1}_{n_{\mathrm{y}}+1} & A^0_{n_{\mathrm{y}}+1} \\ + \end{array} + \right] \left[ + \begin{array}{c} + \vec{\delta c}_1 \\ \vec{\delta c}_2 \\ \vdots \\ \vdots \\ \vec{\delta c}_{n_{\mathrm{y}}} \\ \vec{\delta c}_{n_{\mathrm{y}}+1} \\ + \end{array} + \right] = \left[ + \begin{array}{c} + \vec{y}_1 \\ \vec{y}_2 \\ \vdots \\ \vdots \\ \vec{y}_{n_{\mathrm{y}}} \\ \vec{y}_{n_{\mathrm{y}}+1} \\ + \end{array} + \right] + +where each item in the matrix is again a matrix :math:`A^l_j` and +each item in the vectors is again a vector :math:`\vec{\delta c}_j` and +:math:`\vec{y}_j` respectively. The form of the matrix :math:`A^l_j` depends on +the diagonal index :math:`l` and reads: .. math:: - :label: runge-kutta - - \begin{gathered} - \eta _i^{t + 1} = \eta _i^t + \frac{{\Delta t}}{6}\left( {{f_1} + 2{f_2} + 2{f_3} + {f_4}} \right) \hfill \\ - {f_1} = f(\eta _i^t) \hfill \\ - {f_2} = f\left( {\eta _i^t + \frac{{\Delta t}}{2}{f_1}} \right) \hfill \\ - {f_3} = f\left( {\eta _i^t + \frac{{\Delta t}}{2}{f_2}} \right) \hfill \\ - {f_4} = f\left( {\eta _i^t + \Delta t{f_3}} \right) \hfill \\ - \end{gathered} + :label: apx-diagonal + + A^0_j = + \left[ + \begin{array}{ccccccc} + 0 & 0 & 0 & 0 + & \cdots & \cdots & 0 \\ + a^{0,-1}_{2,j} & a^{0,0}_{2,j} & a^{0,1}_{2,j} & \ddots + & & & \vdots \\ + 0 & a^{0,-1}_{3,j} & a^{0,0}_{3,j} & a^{0,1}_{3,j} + & \ddots & & \vdots \\ + \vdots & \ddots & \ddots & \ddots + & \ddots & \ddots & \vdots \\ + \vdots & & \ddots & a^{0,-1}_{n_{\mathrm{x}}-1,j} + & a^{0,0}_{n_{\mathrm{x}}-1,j} & a^{0,1}_{n_{\mathrm{x}}-1,j} & 0 \\ + \vdots & & & 0 + & a^{0,-1}_{n_{\mathrm{x}},j} & a^{0,0}_{n_{\mathrm{x}},j} & a^{0,1}_{n_{\mathrm{x}},j} \\ + 0 & \cdots & \cdots & 0 + & 1 & -2 & 1 \\ + \end{array} + \right] -where, :math:`i` is the grid cell in x-direction and :math:`t` is the timestep. The central difference solution to :math:`f(\eta)` is obtained through discretisation of the Boussinesq equation, +for :math:`l = 0` and .. math:: - :label: a-solve - - {a_i} = \frac{{\eta _{i + 1}^{} - 2\eta _i^{} + \eta _{i - 1}^{}}}{{{{(\Delta x)}^2}}} + :label: apx-offdiagonal + + A^l_j = + \left[ + \begin{array}{ccccccc} + 1 & 0 & \cdots & \cdots + & \cdots & \cdots & 0 \\ + 0 & a^{l,0}_{2,j} & \ddots & + & & & \vdots \\ + \vdots & \ddots & a^{l,0}_{3,j} & \ddots + & & & \vdots \\ + \vdots & & \ddots & \ddots + & \ddots & & \vdots \\ + \vdots & & & \ddots + & a^{l,0}_{n_{\mathrm{x}}-1,j} & \ddots & \vdots \\ + \vdots & & & + & \ddots & a^{l,0}_{n_{\mathrm{x}},j} & 0 \\ + 0 & \cdots & \cdots & \cdots + & \cdots & 0 & 1 \\ + \end{array} + \right] -.. math:: - {b_i} = \frac{{\eta _i^{}\left( {\eta _{i + 1}^{} - \eta _{i - 1}^{}} \right)}}{{\Delta x}} +for :math:`l \neq 0`. The vectors :math:`\vec{\delta c}_{j,k}` and :math:`\vec{y}_{j,k}` +read: .. math:: - {c_i} = \frac{{\left( {b_{i + 1}^{} - b_{i - 1}^{}} \right)}}{{\Delta x}} + :label: c-array -The seaward boundary condition is defined as the still water level plus the wave setup . -If the groundwater elevation is larger than the bed elevation, there is a seepage face, -and the groundwater elevation is set equal to the bed elevation. On the landward boundary, -a no-flow condition, :math:`\frac{{\partial \eta }}{{\partial t}} = 0` (Neumann condition), or constant head, :math:`\eta = constant` (Dirichlet condition), is prescribed. + \begin{array}{rclrcl} + \vec{\delta c}_{j,k} &=& \left[ + \begin{array}{c} + \delta c^{n+1}_{1,j,k} \\ + \delta c^{n+1}_{2,j,k} \\ + \delta c^{n+1}_{3,j,k} \\ + \vdots \\ + \delta c^{n+1}_{n_{\mathrm{x}}-1,j,k} \\ + \delta c^{n+1}_{n_{\mathrm{x}},j,k} \\ + \delta c^{n+1}_{n_{\mathrm{x}}+1,j,k} \\ + \end{array} + \right] & ~ \mathrm{and} ~ + \vec{y}_{j,k} &=& \left[ + \begin{array}{c} + 0 \\ + y^n_{2,j,k} \\ + y^n_{3,j,k} \\ + \vdots \\ + y^n_{n_{\mathrm{x}}-1,j,k} \\ + y^n_{n_{\mathrm{x}},j,k} \\ + 0 \\ + \end{array} + \right] \\ + \end{array} +:math:`n_{\mathrm{x}}` and :math:`n_{\mathrm{y}}` denote the number of +spatial grid cells in x- and y-direction. -Basic Model Interface (BMI) ---------------------------- +Iterations to solve for multiple fractions +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -A Basic Model Interface (BMI, :cite:`Peckham2013`) is implemented -that allows interaction with the model during run time. The model can -be implemented as a library within a larger framework as the interface -exposes the initialization, finalization and time stepping -routines. As a convenience functionality the current implementation -supports the specification of a callback function. The callback -function is called at the start of each time step and can be used to -exchange data with the model, e.g. update the topography from -measurements. +The linear system defined in Equation :eq:`apx-system` is solved by a +sparse matrix solver for each sediment fraction separately in +ascending order of grain size. Initially, the weights +:math:`\hat{w}^{n+1}_{i,j,k}` are chosen according to the grain size +distribution in the bed and the air. The sediment availability +constraint is checked after each solve: -An example of a callback function, that is referenced in the model -input file or through the model command-line options as -``callback.py:update``, is: +.. math:: + :label: solve -.. code:: + m_{\mathrm{a}} \geq \frac{\hat{w}^{n+1}_{i,j,k} c^{n+1}_{\mathrm{sat},i,j,k} - c^{n+1}_{i,j,k}}{T} \Delta t^n - import numpy as np +If the constraint if violated, a new estimate for the weights +is back-calculated following: - def update(model): - val = model.get_var('zb') - val_new = val.copy() - val_new[:,:] = np.loadtxt('measured_topography.txt') - model.set_var('zb', val_new) +.. math:: + :label: solve-weights -.. .. rubric:: Bibliography + \hat{w}^{n+1}_{i,j,k} = \frac{ c^{n+1}_{i,j,k} + m_{\mathrm{a}} \frac{T}{\Delta t^n} }{c^{n+1}_{\mathrm{sat},i,j,k}} -.. .. bibliography:: -.. :labelprefix: A -.. :keyprefix: a- +The system is solved again using the new weights. This +procedure is repeated until a weight is found that does not violate +the sediment availability constraint. If the time step is not too +large, the procedure typically converges in only a few +iterations. Finally, the weights of the larger grains are increased +proportionally as to ensure that the sum of all weights remains +unity. If no larger grains are defined, not enough sediment is +available for transport and the grid cell is truly +availability-limited. This situation should only occur occasionally as +the weights in the next time step are computed based on the new bed +composition and thus will be skewed towards the large fractions. If +the situation occurs regularly, the time step is chosen too large +compared to the rate of armoring. diff --git a/docs/user/defaults.rst b/docs/user/defaults.rst deleted file mode 100644 index 504cfc26..00000000 --- a/docs/user/defaults.rst +++ /dev/null @@ -1,16 +0,0 @@ - -.. _default settings: - -Default settings -================ - -The AeoLiS model can be configured using a model configuration -file. For any configuration parameters not defined in the model -configuration file, or in case the model configuration file is absent, -the default model configuration is used. The default model -configuration is listed below. - -.. literalinclude:: ../../aeolis/constants.py - :language: python - :start-after: #: AeoLiS model default configuration - :end-before: #: Merge initial and model state diff --git a/docs/user/inputfiles.rst b/docs/user/inputfiles.rst deleted file mode 100644 index 1421d384..00000000 --- a/docs/user/inputfiles.rst +++ /dev/null @@ -1,221 +0,0 @@ -Input files -================= - -The computational grid and boundary conditions for AeoLiS are specified through external -input files called by the model parameter file aeolis.txt. The computational grid is defined -with an x grid, y grid, and z grid. Boundary conditions for wind, wave, and tides -are also specified with external text files. A list of additional grid and boundary -files can be found in the table below. Each file is further defined below. - -.. list-table:: - :widths: 25 50 - :header-rows: 1 - - * - Input File - - File Description - * - aeolis.txt - - File containing parameter definitions - * - x.grd - - File containing cross-shore grid - * - y.grd - - File containing alongshore grid (can be all zeros for 1D cases) - * - z.grd - - File containing topography and bathymetry data - * - veg.grd - - File containing initial vegetation density - * - mass.txt - - File containing sediment mass data when using space varying grain size distribution - * - wind.txt - - File containing wind speed and direction data - * - tide.txt - - File containing water elevation data - * - wave.txt - - File containing wave height and period data - * - meteo.txt - - File containing meteorological time series data - -aeolis.txt ----------- - -This is the parameter file for AeoLiS that defines the model processes and boundary conditions. -Parameters in the file are specified by various keywords; each keyword has a pre-defined -default value that will be used if it is not direclty specified in aeolis.txt (a list of default parameter -values can be found in the Default settings tab on the left). Among the keywords -in aeolis.txt are the keywords to define the external computational grid files (xgrid_file, ygrid_file, -and bed_file) and external boundary condition files (tide_file, wave_file, wind_file, etc.). -The different physical processes in AeoLiS can be turned on and off by changing the -process keywords in aeolis.txt to T (True) and F (False). Example aeolis.txt parameters files can be -found in the examples folder on the AeoLiS GitHub. - -x.grd ------ - -The x.grd file defines the computational grid in the cross-shore direction defined in meters. -In a 1-dimensional (1D) case, the file contains a single column of cross-shore locations -starting at zero for a location of choice. In a 2-dimesional (2D) case, the file -contains multiple columns (cross-shore positions) and rows (alongshore positions) -where each value corresponds to a specific location in the 2D grid. The file can be renamed -and is referenced from the parameters file with the xgrid_file keyword. - -y.grd ------ - -This file defines the computational grid in the alongshore direction. In a 1D case, -y.grd will contain a single column of zeros. In a 2D case, similar to the x.grd file, -y.grd has multiple columns (cross-shore positions) and rows (alongshore positions) -where each row, column position corresponds to a specific location in the 2D gird. -x.grd and y.grd will always be the same size regardless of running a 1D or 2D simulation. -As with the x.grd file, this file can be renamed and is referenced from the parameters file with the -keyword: ygrid_file. - -z.grd ------ - -The z.grd file provides the model with the elevation information for the computational -grid defined in x.grd and y.grd. Similar to x.grd and y.grd, when running -AeoLis in 1D the file contains a single column with the number of rows equal -to the number of rows in x.grd and y.grd. In 2D cases, z.grd has multiple columns and -rows of equal size to x.grd and y.grd. Elevation values in the file should be defined such that -positive is up and negative is down. The file can be renamed and is referenced from the -parameters file with the keyword: bed_file. - -veg.grd -------- - -The veg.grd file is an optional grid providing initial vegetation coverage (density) at each position in the -model domain defined in x.grd and y.grd. Similar to the grid files, if simulations are in -2D there will be multiple columns for each cross-shore position (x) and multiple rows for -each alongshore position (y). The format of a 1D vegetation grid file can be seen below -where each red dots represent vegetation cover at each cross-shore position. - -.. _fig-veg-inputs: - -.. figure:: /images/vegetation_text_file.jpeg - :alt: vegetation input format - :width: 200px - :align: center - - File format for a 1D AeoLis vegetation grid. Each red dot is the vegetation density at a specific location in the computational grid. - -mass.txt --------- - -The mass.txt file allows users to specify variations in grain size distribution in both -horizontal and vertical directions. If the grain size distribution is constant throughout -the model domain, multifraction sediment transport is possilbe without this file. The file contains -the mass of each sediment fraction in each grid cell and bed layer. The file is formatted such that each -row corresponds to a specific location in the computational domain and the columns are grouped -by bed layers and each individual column represents a single sediment fraction present in the model -domain. An infinite number of sediment fractions can be defined in the model; however, it should be -noted the more sediment fractions present the longer the simulation time and larger the output files. - -In a 1D case, the text file will have dimensions of number of cross-shore locations (x) by number -of sediment fractions times the number of bed layers. For example if you have 200 cross-shore positions -in your model domain and 4 different sediment fractions with 3 bed layers, your mass.txt file -will contain a matrix of 200 rows by 12 columns. An example of a 1D mass.txt file can be seen below -where each red dot represents a sediment fraction mass at a specific location in the model domain. - -.. _fig-mass-inputs-1D: - -.. figure:: /images/mass_text_file_graphic.jpeg - :alt: mass file format 1D - :width: 550px - :align: center - - File format for a 1D AeoLis mass for spatially variable grain size distributions. Each red dot is the mass for each sediment fraction - at each location in the computational grid (x, y, bed layer). - -In a 2D case, the mass.txt file will have dimensions of number of cross-shore positions (x) -times the number of alongshore positions (x) by number of sediment fractions times the number of -bed layers. The file will be formatted such that the columns are grouped by bed layer with all available -sediment fractions present in each bed layer and rows are grouped by alongshore position with all -cross-shore prositions given for each alongshore position. An visual example of a 2D mass.txt input -file for AeoLis can be seen below. - -.. _fig-mass-inputs-2D: - -.. figure:: /images/mass_text_file_2D.jpeg - :alt: mass file format 2D - :width: 550px - :align: center - - File format for a 2D AeoLis mass file for spatially variable grain size distributions. Each red dot is the mass for each sediment fraction - at each location in the computational grid (x, y, bed layer). - -wind.txt --------- - -The wind.txt file provides the model with wind boundary conditions and is formatted similar to -the tide.txt and wave.txt files. The first column is time in seconds from -start, the second column is wind speed, and the third column is wind direction. The wind directions -can be specified in either nautical or cartesian convention (specified in aeolis.txt with keyword: wind_convention). -The format of this file can be seen below were each of the red dots represents a data value of time, wind speed, -or wind direction. As AeoLiS is an aeolian sediment transport model, the wind boundary conditions are of particular -importance. - -.. _fig-wind-inputs: - -.. figure:: /images/wind_text_file_graphic.jpeg - :alt: wind input format - :width: 300px - :align: center - - File format for wind boundary conditions file for AeoLis input. - -tide.txt --------- - -The tide.txt file contains the water elevation data for the duration of the -simulation. It is formatted such that the first column is time in seconds and -the second column is the water elevation data at each time step. An example of -the file format can be seen below where each red dot represents a data value for -time or water elevation. - -.. _fig-tide-inputs: - -.. figure:: /images/tide_text_file.jpeg - :alt: tide input format - :width: 300px - :align: center - - File format for the water elevation conditions file for AeoLis input. - -wave.txt --------- - -The wave.txt file provides the model with wave data used in AeoLiS for runup calculations. -The file is formatted similar to tide.txt but has three columns instead of two. -Here, the first column is time in seconds, the second column is wave height, -and the third column is the wave period. The format of this file can be seen -below where each red dot represents -a data value. - -.. _fig-wave-inputs: - -.. figure:: /images/wave_text_file_graphic.jpeg - :alt: wave input format - :width: 300px - :align: center - - File format for the wave conditions file for AeoLis input. - -meteo.txt ---------- - -The meteo.txt file contains meteorological data used to simulate surface moisture in the model domain (see Simulation of surface moisture -in Model description on for surface moisture implementation in AeoLiS). This file is formatted similar to the other environmental boundary -condition files (wind, wave, and tide) such that it contains a time series of environmental data read into AeoLiS through keyword specification. -The keywords required to process surface moisture with evaporation and infiltration are process_moist = True, method_moist_process = surf_moisture, -th_moisture = True, and meteo_file = meteo.txt (or name of file containing meteorological data). An example of the meteo.txt file can be seen in the -figure below where each red dot represents a time series data value. The first column contains time (s), the second column is temperature (degrees C), -the thrid column is precipitation (mm/hr), the fourth column is relative humidity (%), the fifth column is global radiation (MJ/$m^2$/day), and the sixth -column is air pressure (kPa). - -.. _fig-meteo-inputs: - -.. figure:: /images/meteo_file_format.jpeg - :alt: meteo file format - :width: 550px - :align: center - - File format for meteorological data used to simulate surface moisture in AeoLiS where each red dot represents a time series value. diff --git a/docs/user/installation.rst b/docs/user/installation.rst index c12fe309..7bd099cb 100644 --- a/docs/user/installation.rst +++ b/docs/user/installation.rst @@ -13,7 +13,7 @@ Requirements - netCDF4 Dependencies -"""""""""""" +------------ - docopt==0.6.1 - bmi-python @@ -59,8 +59,8 @@ Example from command line: .. code:: shell - aeolis params.txt + aeolis run params.txt .. note:: - Model parameters and other configuration is passed in a `params.txt`. See the :ref:`default settings` for more details. \ No newline at end of file + Model parameters and other configuration is passed in a `params.txt`. See the :ref:`default-settings` for more details. diff --git a/docs/user/introduction.rst b/docs/user/introduction.rst new file mode 100644 index 00000000..2a07ec4c --- /dev/null +++ b/docs/user/introduction.rst @@ -0,0 +1,99 @@ +.. _introduction: + +Introduction +============ +AeoLiS is a process-based model for simulating aeolian sediment transport and morphological evolution in situations where supply-limiting factors are important, +like in coastal environments. Supply-limitations currently supported are soil moisture contents, sediment sorting and armouring, bed slope effects, air humidity and roughness elements. AeoLiS includes a dynamic vegetation module that simulates the interaction between sediment transport and vegetation dynamics that allow for aeolian landform simulations. + +Model overview +-------------- + +.. _fig-model-overview: + +.. figure:: ../images/model_overview.png + :alt: Model overview + :width: 550px + :align: center + + Overview of the AeoLiS model - forcing conditions and processes. + +Applicability and limitations +----------------------------- + +AeoLiS publications +---------------------- + +2024 +^^^^ +Van Westen, B., De Vries, S., Cohn, N., Van IJzendoorn, C., Strypsteen, G., Hallin, C. (2024). AeoLiS: Numerical modelling of coastal dunes and aeolian landform development for real-world applications, Environmental Modelling & Software, 179, 106093, Doi: https://doi.org/10.1016/j.envsoft.2024.106093. + +Strypsteen, G., de Vries, S., Bonte, D., Homberger, J.M., Hallin, C., Rauwoens, P. (2024). Planted vegetation on a sandy beach regulates maximum size of corresponding dune evolution. Coastal Engineering (preprint under review). Doi: http://dx.doi.org/10.2139/ssrn.4872614 + +Heminway, S.S., Cohn, N., Davis, E.H., White, A., Hein, C.J., Zinnert, J.C., 2024. Exploring Ecological, Morphological, and Environmental Controls on Coastal Foredune Evolution at Annual Scales Using a Process-Based Model. Sustainability, 16, 3460. https://doi.org/10.3390/su16083460 + +Orie, C., Cohn, N., Farthing, M., Dutta, S., Trautz, A., 2024. Examination of Analytical Shear Stress Predictions for Coastal Dune Evolution. EGUsphere, https://doi.org/10.5194/egusphere-2024-855. Preprint under review for ESurf + +van Westen, B., Luijendijk, A.P., de Vries, S., Cohn, N., Leijnse, T.W., de Schipper, M.A., 2024. Predicting marine and aeolian contributions to the sand engine’s evolution using coupled modelling. Coast. Eng. 188, 104444. + +McFall, B.C., Young, D.L., Whitmeyer, S.J., Buscombe, D., Cohn, N., Stasiewicz, J.B., Skaden, J.E., Walker, B.M., Stever, S.N., 2024. SandSnap: Measuring and mapping beach grain size using crowd-sourced smartphone images, Coastal Engineering, Volume 192, 104554, https://doi.org/10.1016/j.coastaleng.2024.104554. + +2023 +^^^^ +Dickey, J., Wengrove, M., Cohn, N., Ruggiero, P. & Hacker, S.D., 2023. Observations and modeling of shear stress reduction and sediment flux within sparse dune grass canopies on managed coastal dunes. Earth Surface Processes and Landforms, 48(5), 907–922. Available from: https://doi.org/10.1002/esp.5526 + +Hallin, C., van IJzendoorn, C., Homberger, J.M., de Vries, S., 2023. Simulating surface soil moisture on sandy beaches. Coast. Eng. 185, 104376. + +Hallin, C., van IJzendoorn, C., Skaden, J., de Vries, S., 2023. Evaluation of threshold-based models to account for surface moisture in meso-scale aeolian sediment transport simulations. In: The Proceedings of the Coastal Sediments Conference. pp. 670–683. + +Heminway, S.S., Davis, E.H., Cohn, N., Skaden, J., Anderson, D., Hein, C.J., 2023. Modeled Changes in Foredune Morphology Influenced by Variable Storm Intensity and Sea-Level Rise. In Proceedings of the Coastal Sediments 2023; World Scientific: New Orleans, LA, USA, April 2023; pp. 684–697. + +Hovenga, P., Ruggiero, P., Itzkin, M., Jay, K.R., Moore, L., Hacker, H.D., 2023. Quantifying the relative influence of coastal foredune growth factors on the U.S. Mid-Atlantic Coast using field observations and the process-based numerical model Windsurf, Coastal Engineering, Volume 181, 104272, https://doi.org/10.1016/j.coastaleng.2022.104272. + +Skaden, J., Cohn, N., Goldstein, E., Dickhudt, P., Conery, I., Buscombe, D., 2023. Impact of alongshore and cross-shore variability in surface grain size on sediment supply to dunes. In Coastal Sediments 2023: The Proceedings of the Coastal Sediments 2023 (pp. 720-731). + +van IJzendoorn, C.O., Hallin, C., Reniers, A.J.H.M., de Vries, S., 2023. Modeling multi-fraction coastal aeolian sediment transport with horizontal and vertical grain-size variability. J. Geophys. Res: Earth Surf. 128 (7), e2023JF007155. + +van Westen, B., Leijnse, T., de Schipper, M., Cohn, N., & Luijendijk, A. (2023). Integrated modelling of coastal landforms. In Coastal Sediments 2023: The Proceedings of the Coastal Sediments 2023 (pp. 760-771). + +Zhu, L., Chen, Q., Cohn, N., Johnson, C., Johnson, B., 2023. Modeling long-term evolution of a beach-dune system: Caminada Headlands, Louisiana. In Coastal Sediments 2023: The Proceedings of the Coastal Sediments 2023 (pp. 782-796). + +2022 +^^^^ +Itzkin, M., Moore, L.J., Ruggiero, P., Hovenga, P.A., Hacker, S.D., 2022. Combining process-based and data-driven approaches to forecast beach and dune change, Environmental Modelling & Software, Volume 153, 105404, ISSN 1364-8152, https://doi.org/10.1016/j.envsoft.2022.105404. + +2019 +^^^^ +Cohn, N., Brodie, K., Ruggiero, P., van Westen, B, de Vries, S., 2019. Coastal inlet infilling from aeolian sediment transport. In Coastal Sediments 2019: Proceedings of the 9th International Conference, pp. 1212-1225. + +Cohn, N., Hoonhout, B.M., Goldstein, E.B., De Vries, S., Moore, L.J., Durán Vinent, O., Ruggiero, P., 2019 Exploring Marine and Aeolian Controls on Coastal Foredune Growth Using a Coupled Numerical Model. J. Mar. Sci. Eng., 7, 13. https://doi.org/10.3390/jmse7010013 + +Hoonhout, B., de Vries, S., 2019. Simulating spatiotemporal aeolian sediment supply at a mega nourishment. Coast. Eng. 145, 21–35. + +Ruggiero, P., Cohn, N., Hoonhout, B., Goldstein, E., de Vries, S., Moore, L., Hacker, S. and Vinent, O.D., 2019. Simulating dune evolution on managed coastlines: Exploring management options with the Coastal Recovery from Storms Tool (CReST). Shore & Beach, 87(2), p.36. + +2018 +^^^^ +Wittebrood, M., de Vries, S., Goessen, P., Aarninkhof, S., 2018. Aeolian sediment transport at a man-made dune system; building with nature at the hondsbossche dunes. Coast. Eng. Proceedings (36), 83. + +2017 +^^^^ +Hoonhout, B., de Vries, S., 2017. Aeolian sediment supply at a mega nourishment. Coast. Eng. 123, 11–20. + +2016 +^^^^ +Hoonhout, B.M., de Vries, S., 2016. A process-based model for aeolian sediment transport and spatiotemporal varying sediment availability. J. Geophys. Res: Earth Surf. 121 (8), 1555–1575. + +2014 +^^^^ +de Vries, S., de Vries, J.v.T., Van Rijn, L., Arens, S., 2014. Aeolian sediment transport in supply limited situations. Aeolian Res. 12, 75–85. + + +Student theses +-------------- +Meijer, L.M., 2020. Numerical Modelling of Aeolian Sediment Transport, Vegetation Growth and Blowout Formation in Coastal Dunes. MSc Thesis, Delft University of Technology. + +Pak, T. 2019 Marine and aeolian sediment transport at the Hondsbossche Dunes. MSc Thesis, Delft University of Technology. + +van Manen, M. 2023. Numerical Modeling of Constructed Foredune Blowouts in the Dutch Dunes. MSc Thesis, Delft University of Technology. + +van Westen, B. 2018. Numerical modelling of aeolian coastal landform development. Master’s thesis, Delft University of Technology. diff --git a/docs/user/model.rst b/docs/user/model_description.rst similarity index 75% rename from docs/user/model.rst rename to docs/user/model_description.rst index 47e3a783..f093d387 100644 --- a/docs/user/model.rst +++ b/docs/user/model_description.rst @@ -1,9 +1,13 @@ -.. _model: +.. _model_description: Model description ================= -The model approach of :cite:`deVries2014a` is extended to compute the +Sediment Transport +------------------- + +Calculating aeolian sediment transport is the core of the AeoLiS model. +The model is based on the approach of :cite:`deVries2014a` which is extended to compute the spatiotemporal varying sediment availability through simulation of the process of beach armoring. For this purpose the bed is discretized in horizontal grid cells and in vertical bed layers (2DV). Moreover, the @@ -13,10 +17,7 @@ bed composition module is used to compute the sediment availability for each sediment fraction individually. This model approach is a generalization of existing model concepts, like the shear velocity threshold and critical fetch, and therefore compatible with these -existing concepts.. - -Advection Scheme ----------------- +existing concepts. A 1D advection scheme is adopted in correspondence with :cite:`deVries2014a` in which :math:`c` [:math:`\mathrm{kg/m^2}`] is @@ -103,7 +104,7 @@ simulation. The model is initially intended to provide accurate sediment fluxes from the beach to the dunes rather than to simulate subsequent dune formation. -Multi-fraction Erosion and Deposition +Multi-fraction sediment transport ------------------------------------- The formulation for the equilibrium or saturated sediment @@ -257,8 +258,8 @@ grain size dependency is implemented through :math:`u_{\mathrm{th}}`. :math:`u_{\mathrm{th}}` typically varies between 1 and 6 m/s for sand. -Simulation of Sediment Sorting and Beach Armoring -------------------------------------------------- +Sediment Sorting and Beach Armoring +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Since the equilibrium or saturated sediment concentration :math:`c_{\mathrm{sat},k}` is weighted over multiple sediment fractions in @@ -325,8 +326,10 @@ lower bed layers (Figure :numref:`fig-bedcomposition`, detail, upper right panel). If more fines are deposited than passed to the lower bed layers the bed surface layer becomes increasingly fine. -Simulation of the Emergence of Non-erodible Roughness Elements --------------------------------------------------------------- +.. _roughness-elements: + +Non-erodible Roughness Elements +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Sediment sorting may lead to the emergence of non-erodible elements from the bed. Non-erodible roughness elements may shelter the erodible @@ -361,8 +364,8 @@ total number of sediment fractions. It is assumed that the sediment fractions are ordered by increasing size. Whether a fraction is erodible depends on the sediment transport capacity. -Simulation of the Hydraulic Mixing ----------------------------------- +Hydraulic Mixing +^^^^^^^^^^^^^^^^^^^^^ As sediment sorting due to aeolian processes can lead to armoring of a beach surface, mixing of the beach surface or erosion of course @@ -397,8 +400,238 @@ local wave height maximized by a maximum wave height over depth ratio through an input time series of water levels. Typical values for :math:`f_{\Delta z_{\mathrm{d}}}` are 0.05 to 0.4 and 0.5 for :math:`\gamma`. -Simulation of surface moisture ------------------------------- +Shear velocity threshold +------------------------ + +The shear velocity threshold represents the influence of bed surface +properties in the saturated sediment transport equation. The shear +velocity threshold is computed for each grid cell and sediment +fraction separately based on local bed surface properties, like +moisture, roughness elements and salt content. For each bed surface +property supported by the model a factor is computed to increase the +initial shear velocity threshold: + +.. math:: + :label: apx-shearvelocity + + u_{\mathrm{* th}} = + f_{u_{\mathrm{* th}}, \mathrm{M}} \cdot + f_{u_{\mathrm{* th}}, \mathrm{R}} \cdot + f_{u_{\mathrm{* th}}, \mathrm{S}} \cdot + u_{\mathrm{* th, 0}} + +The initial shear velocity threshold :math:`u_{\mathrm{* th, 0}}` [m/s] is +computed based on the grain size following :cite:`Bagnold1937b`: + +.. math:: + :label: shear + + u_{\mathrm{* th, 0}} = A \sqrt{ \frac{\rho_{\mathrm{p}} - \rho_{\mathrm{a}}}{\rho_{\mathrm{a}}} \cdot g \cdot d_{\mathrm{n}}} + +where :math:`A` [-] is an empirical constant, :math:`\rho_{\mathrm{p}}` +[:math:`\mathrm{kg/m^3}`] is the grain density, :math:`\rho_{\mathrm{a}}` +[:math:`\mathrm{kg/m^3}`] is the air density, :math:`g` [:math:`\mathrm{m/s^2}`] is the +gravitational constant and :math:`d_{\mathrm{n}}` [m] is the nominal grain +size of the sediment fraction. + +Moisture content +^^^^^^^^^^^^^^^^^ + +The shear velocity threshold is updated based on moisture content +following :cite:`Belly1964`: + +.. math:: + :label: apx-moist + + f_{u_{\mathrm{* th}}, \mathrm{M}} = \max(1 \quad ; \quad 1.8 + 0.6 \cdot \log(p_{\mathrm{g}})) + +where :math:`f_{u_{\mathrm{* th},M}}` [-] is a factor in Equation :eq:`apx-shearvelocity`, :math:`p_{\mathrm{g}}` [-] is the geotechnical +mass content of water, which is the percentage of water compared to +the dry mass. The geotechnical mass content relates to the volumetric +water content :math:`p_{\mathrm{V}}` [-] according to: + +.. math:: + :label: vol-water + + p_{\mathrm{g}} = \frac{p_{\mathrm{V}} \cdot \rho_{\mathrm{w}}}{\rho_{\mathrm{p}} \cdot (1 - p)} + +where :math:`\rho_{\mathrm{w}}` [:math:`\mathrm{kg/m^3}`] and +:math:`\rho_{\mathrm{p}}` [:math:`\mathrm{kg/m^3}`] are the water and particle +density respectively and :math:`p` [-] is the porosity. Values for +:math:`p_{\mathrm{g}}` smaller than 0.005 do not affect the shear velocity +threshold :cite:`Pye1990`. Values larger than 0.064 (or 10\% +volumetric content) cease transport :cite:`DelgadoFernandez2010`, +which is implemented as an infinite shear velocity threshold. + + +Roughness elements +^^^^^^^^^^^^^^^^^^^ + +The shear velocity threshold is updated based on the presence of +roughness elements following :cite:`Raupach1993`: + +.. math:: + :label: shear-rough + + f_{u_{\mathrm{* th},R}} = \sqrt{(1 - m \cdot \sum_{k=k_0}^{n_k}{\hat{w}_k^{\mathrm{bed}}}) + (1 + \frac{m \beta}{\sigma} \cdot \sum_{k=k_0}^{n_k}{\hat{w}_k^{\mathrm{bed}}})} + +by assuming: + +.. math:: + :label: lambda-rough + + \lambda = \frac{\sum_{k=k_0}^{n_k}{\hat{w}_k^{\mathrm{bed}}}}{\sigma} + +where :math:`f_{u_{\mathrm{* th},R}}` [-] is a factor in Equation +:eq:`apx-shearvelocity`, :math:`k_0` is the sediment fraction index of +the smallest non-erodible fraction in current conditions and :math:`n_k` is +the number of sediment fractions defined. The implementation is +discussed in detail in section \ref{sec:roughness}. + +Salt content +^^^^^^^^^^^^ + +The shear velocity threshold is updated based on salt content +following :cite:`Nickling1981`: + +.. math:: + :label: salt-rough + + f_{u_{\mathrm{* th}},S} = 1.03 \cdot \exp(0.1027 \cdot p_{\mathrm{s}}) + +where :math:`f_{u_{\mathrm{* th},S}}` [-] is a factor in Equation +:eq:`apx-shearvelocity` and :math:`p_{\mathrm{s}}` [-] is the salt +content [mg/g]. Currently, no model is implemented that predicts the +instantaneous salt content. The spatial varying salt content needs to +be specified by the user, for example through the BMI interface. + + +Wind shear and topographic steering +--------------------------------------------------------------- + +The shear stress perturbation 𝛿𝜏 is estimated following the analytical description of the influence of alow and smooth hill in the wind profile by Weng et al. (1991). The perturbation is given by the Fourier transformed components of the shear stress perturbation in the unperturbed wind direction which are the functions 𝛿𝜏𝑥(𝑘) and 𝛿𝜏𝑦(𝑘). The x-direction is defined by the direction of the wind velocity :math:`v_{0}` on a flat bed, while the y direction is then the transverse. + +As a result, the perturbation theory can only estimate the shear stress induced by the morphology-wind interaction in parallel direction of wind. Therefore, model simulations were, up to now, limited to input wind directions parallel to the cross­shore axis of the grid. + +To overcome this limitation and to allow for modelling directional winds, an overlaying computational grid is introduced in AeoLiS, which rotates with the changing wind direction per time step. By doing this, the shear stresses are always estimated in the positive x-direction of the computational grid. The following steps are executed for each time step: + +1. Create a computational grid alligned with the wind direction (set_computational_grid) +2. Add and fill buffer around the original grid +3. Populate computation grid by rotating it to the current wind direction and interpolate the original topography on it. Additionally, edges around +4. Compute the morphology-wind induced shear stress by using the perturbation theory +5. Add the only wind induced wind shear stresses to the computational grid +6. Rotate both the grids and the total shear stress results in opposite direction +7. Interpolate the total shear stress results from the computational grid to the original grid +8. Rotate the wind shear stress results and the original grid back to the original orientation + +.. note:: + The extra rotations in the last two steps are necessary as a simplified, but faster in terms of computational time, interpolation method is used. + + +Vegetation +------------ + +The description of the implementation of vegetation dynamics in AeoLiS is based on :cite:`Strypsteen2024`. + +In AeoLiS, the influence of vegetation on dune evolution is comprehensively +addressed. This includes modelling the intrinsic growth of vegetation, +accounting for factors such as growth and decay due to burial :cite:`DuranMoore2013`, +lateral expansion and establishment :cite:`Keijsers2016`, as well as simulating +the destruction of vegetation caused by hydrodynamic processes.In the event of +cell inundation, vegetation density is reduced as a result. + +Shear stress reduction +^^^^^^^^^^^^^^^^^^^^^^^^ +Inspired by the Coastal Dune Model (CDM) proposed by :cite:`DuranMoore2013`, AeoLiS +incorporates vegetation-wind interaction using the expression established by :cite:`DuranHerrmann2006`: + +.. math:: + :label: shear_reduction_vegetation + + \frac{u_{\text{veg}}}{u_*} = \frac{1}{\sqrt{1 + \Gamma \rho_{\text{veg}}}} + + +where the ratio of shear velocity in the presence of vegetation (:math:`u_{*,\text{veg}}`) to the unobstructed +shear velocity (:math:`u_*`) is determined by a vegetation-related roughness parameter (:math:`\Gamma`) and the +vegetation density within a unit area of the grid cell (:math:`\rho_{\text{veg}}`). In the model, :math:`\Gamma` = 16 is derived +from plant form drag and geometry values documented for creosote communities :cite:`DuranHerrmann2006`. +This implementation calculates the expression on each model grid cell, with higher vegetation density +(expressed by :math:`\rho_{\text{veg}}`) leading to a more substantial reduction in shear velocity compared to sparse +vegetation. By integrating these physical and ecological processes, AeoLiS simulates spatial patterns and temporal +variations in sediment transport and morphological changes resulting from aeolian processes in coastal +environments. + +Vegetation density +^^^^^^^^^^^^^^^^^^^ + +The vegetation density :math:`\rho_{\text{veg}}` can vary in space and time and is determined by the ratio of the actual vegetation height (hveg) +to the maximum vegetation height (:math:`h_{\text{veg,max}}`), and can vary between 0 and 1 (:cite:`DuranHerrmann2006`): + +.. math:: + :label: Vegetation_density + + \rho_{\text{veg}} = \left( \frac{h_{\text{veg}}}{h_{\text{veg,max}}} \right)^2 + + +This assumption is based on the idea that burying vegetation reduces its height, which indicates a decrease in +actual cover. The change in vegetation density per grid cell is directly linked to the alteration in vegetation +height within that specific cell. This height variation is influenced by both the growth rate of the vegetation and +the rate of sediment burial. If the vegetation density remains constant over time, it suggests either no +sedimentation or a growth rate equal to the rate of sediment burial within the cell. + +Growth and decay +^^^^^^^^^^^^^^^^^ + +Vegetation growth and decay follow the model proposed by :cite:`DuranHerrmann2006`, modified to include :math:`\delta z_{\text{b,opt}}` +(m/year), representing sediment burial for optimal growth that shifts the peak of optimal growth: + +.. math:: + :label: changes_vegetation_height + + \frac{\delta h_{\text{veg}}}{\delta t} = V_{\text{ver}} \left(1 - \frac{h_{\text{veg}}}{h_{\text{veg,max}}}\right) - \gamma_{\text{veg}} \left| \frac{\delta z_{\text{b,veg}}}{\delta t} - \delta z_{\text{b,opt}} \right| + +Here, :math:`\gamma_{\text{veg}}` (default = 1) is a sediment burial factor that accounts for the impact of +sediment burial on vegetation. The height of the vegetation (:math:`h_{\text{veg}}` in m) cannot be less than zero. +Vver represents the maximum vertical growth rate of vegetation given in m/year, while the sediment burial rate +:math:`\delta z_{\text{b,veg}}` [m] is determined as the bed level change per time step. By simply converting this +value to a bed level change per year multiple errors are induced, as the time scale over which the bed level change +actually occurs is much shorter than this one year. To compare the bed level change per time step with the +vegetation growth rate per year, an average bed level change is estimated over a specified time (default is one +day). This average is then extrapolated to an annual rate. This method ensures that sudden changes in the bed level +change over one time step are not used as an estimate of the total bed level change in one year, which would be far +too high. + +The optimal growth rate for certain vegetation species in dune environments is depending upon sediment burial :cite:`Maun1998`. +The optimal burial rate for maximum vegetation growth for marram grass for the neighbouring Dutch +coast is around 0.31 m/year with a burying tolerance of 0.78 to 0.96 m burial/year :cite:`Nolet2018`. This +optimal value is used in the model. :math:`V_{\text{ver}}` contains information of meteorological and local +conditions that enhance or inhibit vegetation growth process :cite:`Danin1991`, :cite:`Hesp1991`. + +.. _fig-Veg_growth: + +.. figure:: /images/Veg_growth.png + :width: 600px + :align: center + + A) The vegetation growth response varies with different vertical growth rates (example for Vver = 1 and 2 m/year). Optimal vegetation growth is determined by a burial rate of 0.31 + m/year, with a maximum vegetation height set at 1 m and a plant height of 0.5 m. Additionally, the growth response for varying burial factors is depicted (:math:`\lambda_{\text{veg}}` + = 1 and 2). B) Shear stress reduction for two different vegetation-related roughness parameters and vegetation densities (:math:`\Gamma` = 16 and 32). + +Vegetation can begin to grow through lateral propagation or random germination. Once established, it can continue +to grow and spread laterally. The uncertainties associated with random germination are handled on a cell-by-cell +basis using a probabilistic approach, similar to the cellular automata method described by Keijsers et al. (2016). +AeoLiS incorporates a germination probability, denoted as ρ_{ger}, for each grid cell. This probability is constant +across the domain, except in eroding grid cells (where bed elevation decreases), where ρ_{ger} is set to 0. Lateral +propagation is determined by identifying the boundaries between vegetated and non-vegetated cells, with the +parameter ρ_{lat} adjusting the likelihood of lateral propagation at these boundaries. + +Inundation +^^^^^^^^^^^^ + + +Surface moisture +----------------- Wave runup, capillary rise from the beach groundwater, and precipitation periodically wet the intertidal beach temporally increasing the shear velocity threshold ( @@ -526,6 +759,46 @@ Substitution of :math:`u` (Equation :eq:`gw-discharge`) in the continuity equati \frac{{\partial \eta }}{{\partial t}} = \frac{K}{{{n_e}}}\frac{\partial }{{\partial x}}\left( {(D + \eta )\frac{{\partial \eta }}{{\partial x}}} \right) + \frac{{{U_l}}}{{{n_e}}} +Numerical solution of the Boussinesq groundwater equation +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +The Boussinesq equation is solved numerically with a central finite difference +method in space and a fourth-order Runge-Kutta integration technique in time: + +.. math:: + :label: solve-boussinesq + + f(\eta ) = \frac{K}{{{n_e}}}\left[ {D\underbrace {\frac{{{\partial ^2}\eta }}{{\partial {x^2}}}}_a + \underbrace {\frac{\partial }{{\partial x}}\underbrace {\left\{ {\eta \frac{{\partial \eta }}{{\partial x}}} \right\}}_b}_c} \right] + +The Runge-Kutta time-stepping, where :math:`\Delta t` is the length of the timestep, is defined as, + +.. math:: + :label: runge-kutta + + \begin{gathered} + \eta _i^{t + 1} = \eta _i^t + \frac{{\Delta t}}{6}\left( {{f_1} + 2{f_2} + 2{f_3} + {f_4}} \right) \hfill \\ + {f_1} = f(\eta _i^t) \hfill \\ + {f_2} = f\left( {\eta _i^t + \frac{{\Delta t}}{2}{f_1}} \right) \hfill \\ + {f_3} = f\left( {\eta _i^t + \frac{{\Delta t}}{2}{f_2}} \right) \hfill \\ + {f_4} = f\left( {\eta _i^t + \Delta t{f_3}} \right) \hfill \\ + \end{gathered} + +where, :math:`i` is the grid cell in x-direction and :math:`t` is the timestep. The central difference solution to :math:`f(\eta)` is obtained through discretisation of the Boussinesq equation, + +.. math:: + :label: a-solve + + {a_i} = \frac{{\eta _{i + 1}^{} - 2\eta _i^{} + \eta _{i - 1}^{}}}{{{{(\Delta x)}^2}}} + +.. math:: + {b_i} = \frac{{\eta _i^{}\left( {\eta _{i + 1}^{} - \eta _{i - 1}^{}} \right)}}{{\Delta x}} + +.. math:: + {c_i} = \frac{{\left( {b_{i + 1}^{} - b_{i - 1}^{}} \right)}}{{\Delta x}} + +The seaward boundary condition is defined as the still water level plus the wave setup . +If the groundwater elevation is larger than the bed elevation, there is a seepage face, +and the groundwater elevation is set equal to the bed elevation. On the landward boundary, +a no-flow condition, :math:`\frac{{\partial \eta }}{{\partial t}} = 0` (Neumann condition), or constant head, :math:`\eta = constant` (Dirichlet condition), is prescribed. Capillary rise ^^^^^^^^^^^^^^ @@ -644,109 +917,19 @@ is the latent heat vaporization. To obtain an evaporation rate in [m/s], the original formulation is multiplied by :math:`9 \cdot 10^7`. -Shear velocity threshold ------------------------- - -The shear velocity threshold represents the influence of bed surface -properties in the saturated sediment transport equation. The shear -velocity threshold is computed for each grid cell and sediment -fraction separately based on local bed surface properties, like -moisture, roughness elements and salt content. For each bed surface -property supported by the model a factor is computed to increase the -initial shear velocity threshold: - -.. math:: - :label: apx-shearvelocity - - u_{\mathrm{* th}} = - f_{u_{\mathrm{* th}}, \mathrm{M}} \cdot - f_{u_{\mathrm{* th}}, \mathrm{R}} \cdot - f_{u_{\mathrm{* th}}, \mathrm{S}} \cdot - u_{\mathrm{* th, 0}} - -The initial shear velocity threshold :math:`u_{\mathrm{* th, 0}}` [m/s] is -computed based on the grain size following :cite:`Bagnold1937b`: - -.. math:: - :label: shear - - u_{\mathrm{* th, 0}} = A \sqrt{ \frac{\rho_{\mathrm{p}} - \rho_{\mathrm{a}}}{\rho_{\mathrm{a}}} \cdot g \cdot d_{\mathrm{n}}} - -where :math:`A` [-] is an empirical constant, :math:`\rho_{\mathrm{p}}` -[:math:`\mathrm{kg/m^3}`] is the grain density, :math:`\rho_{\mathrm{a}}` -[:math:`\mathrm{kg/m^3}`] is the air density, :math:`g` [:math:`\mathrm{m/s^2}`] is the -gravitational constant and :math:`d_{\mathrm{n}}` [m] is the nominal grain -size of the sediment fraction. - -Moisture content -^^^^^^^^^^^^^^^^ - -The shear velocity threshold is updated based on moisture content -following :cite:`Belly1964`: +Sand fences +------------ -.. math:: - :label: apx-moist - - f_{u_{\mathrm{* th}}, \mathrm{M}} = \max(1 \quad ; \quad 1.8 + 0.6 \cdot \log(p_{\mathrm{g}})) - -where :math:`f_{u_{\mathrm{* th},M}}` [-] is a factor in Equation :eq:`apx-shearvelocity`, :math:`p_{\mathrm{g}}` [-] is the geotechnical -mass content of water, which is the percentage of water compared to -the dry mass. The geotechnical mass content relates to the volumetric -water content :math:`p_{\mathrm{V}}` [-] according to: +Marine erosion +--------------- -.. math:: - :label: vol-water - p_{\mathrm{g}} = \frac{p_{\mathrm{V}} \cdot \rho_{\mathrm{w}}}{\rho_{\mathrm{p}} \cdot (1 - p)} +Morphological change +--------------------- -where :math:`\rho_{\mathrm{w}}` [:math:`\mathrm{kg/m^3}`] and -:math:`\rho_{\mathrm{p}}` [:math:`\mathrm{kg/m^3}`] are the water and particle -density respectively and :math:`p` [-] is the porosity. Values for -:math:`p_{\mathrm{g}}` smaller than 0.005 do not affect the shear velocity -threshold :cite:`Pye1990`. Values larger than 0.064 (or 10\% -volumetric content) cease transport :cite:`DelgadoFernandez2010`, -which is implemented as an infinite shear velocity threshold. - - -Roughness elements -^^^^^^^^^^^^^^^^^^ - -The shear velocity threshold is updated based on the presence of -roughness elements following :cite:`Raupach1993`: - -.. math:: - :label: shear-rough - - f_{u_{\mathrm{* th},R}} = \sqrt{(1 - m \cdot \sum_{k=k_0}^{n_k}{\hat{w}_k^{\mathrm{bed}}}) - (1 + \frac{m \beta}{\sigma} \cdot \sum_{k=k_0}^{n_k}{\hat{w}_k^{\mathrm{bed}}})} - -by assuming: - -.. math:: - :label: lambda-rough - - \lambda = \frac{\sum_{k=k_0}^{n_k}{\hat{w}_k^{\mathrm{bed}}}}{\sigma} - -where :math:`f_{u_{\mathrm{* th},R}}` [-] is a factor in Equation -:eq:`apx-shearvelocity`, :math:`k_0` is the sediment fraction index of -the smallest non-erodible fraction in current conditions and :math:`n_k` is -the number of sediment fractions defined. The implementation is -discussed in detail in section \ref{sec:roughness}. - -Salt content +Avalanching ^^^^^^^^^^^^ -The shear velocity threshold is updated based on salt content -following :cite:`Nickling1981`: - -.. math:: - :label: salt-rough - - f_{u_{\mathrm{* th}},S} = 1.03 \cdot \exp(0.1027 \cdot p_{\mathrm{s}}) - -where :math:`f_{u_{\mathrm{* th},S}}` [-] is a factor in Equation -:eq:`apx-shearvelocity` and :math:`p_{\mathrm{s}}` [-] is the salt -content [mg/g]. Currently, no model is implemented that predicts the -instantaneous salt content. The spatial varying salt content needs to -be specified by the user, for example through the BMI interface. +Wet bed reset +^^^^^^^^^^^^^^^^ diff --git a/docs/user/model_interaction.rst b/docs/user/model_interaction.rst new file mode 100644 index 00000000..c4d64022 --- /dev/null +++ b/docs/user/model_interaction.rst @@ -0,0 +1,90 @@ +Model interaction +================= + +AeoLiS includes several features that enable user-model interaction during runtime. These interactions can be used to modify model parameters over time, integrate with other models, or perform model-data assimilation. + +Callback function +----------------- + +As a convenience functionality the current implementation +supports the specification of a callback function. The callback +function is called at the start of each time step and can be used to +exchange data with the model, e.g. update the topography from +measurements. + +An example of a callback function, that is referenced in the model +input file or through the model command-line options as +``callback.py:update``, is: + +.. code:: + + import numpy as np + + def update(model): + val = model.get_var('zb') + val_new = val.copy() + val_new[:,:] = np.loadtxt('measured_topography.txt') + model.set_var('zb', val_new) + + + +Hotstart +-------- + + +Basic Model Interface (BMI) +--------------------------- + +A Basic Model Interface (BMI, :cite:`Peckham2013`) is implemented +that allows interaction with the model during run time. The model can +be implemented as a library within a larger framework as the interface +exposes the initialization, finalization and time stepping +routines. Because of that, we can use this set of functions to control +and interact with AeoLiS from a Python environment. + + +.. code:: + + import numpy as np + + # Timing settigns + start_time = 0. + end_time = 157680000. + dt = 3600. # 1 day (output frequency of dfm output) + + # Find file in the same directory as this script that contains aeolis.txt + configfile = 'aeolis.txt' + os.chdir(os.path.dirname(configfile)) + + # Create AeoLiS BMI Wrapper + aeolis_wrapper = AeoLiSRunner(configfile) + + # Initialize the wrapper + aeolis_wrapper.initialize() + + # Loop over all timesteps to run the model + for t in np.arange(start_time, end_time, dt): + + # Update AeoLiS + aeolis_wrapper.update(dt) + aeolis_wrapper.output_write() + + # Make modifications to the variables in the model via data or another model, e.g.: + # x_aeolis = aeolis_wrapper.get_var('x') + # y_aeolis = aeolis_wrapper.get_var('y’) + + # aeolis_wrapper.set_var('zb', zb_aeolis) + + # Finalize the wrapper + aeolis_wrapper.finalize() + + +An overview of recent BMI-AeoLiS applications: + - van Westen, B., Luijendijk, A. P., de Vries, S., Cohn, N., Leijnse, T. W., & de Schipper, M. A. (2024). Predicting marine and aeolian contributions to the Sand Engine’s evolution using coupled modelling. Coastal Engineering, 188, 104444. (https://www.sciencedirect.com/science/article/pii/S0378383923001680) + - van Westen, B., Leijnse, T., de Schipper, M., Cohn, N., & Luijendijk, A. (2023). Integrated modelling of coastal landforms. In Coastal Sediments 2023: The Proceedings of the Coastal Sediments 2023 (pp. 760-771). (https://pure.tudelft.nl/ws/portalfiles/portal/152631531/Integrated_modelling_Bvw_CS23.pdf) + + + + + + diff --git a/docs/user/model_setup.rst b/docs/user/model_setup.rst new file mode 100644 index 00000000..406316cd --- /dev/null +++ b/docs/user/model_setup.rst @@ -0,0 +1,447 @@ +Model setup +================= +Setting up the AeoLiS model involves configuring various parameters and input files to ensure accurate and efficient simulations. In this section, we will cover: + +- **Model Input**: Detailed information on the required input files and their formats. +- **Default settings**: Overview of the various parameters that can be adjusted in the model and their default values. +- **Activate/deactivate processes**: Explanation of different process flags and their effects on the simulation. +- **Model state/output**: Overview of model state variables that can be outputted. +- **Guidance on solver use**: Explanation of the use of different solvers. + +A general tip for setting up a model like AeoLiS is to start simple and build up the complexity. As a starting point, you can use the default values and then slowly deviate from those and turn on processes. In case you run into issues, we encourage (new) users to post questions and case studies on the `AeoLiS Discussion Board`_. We use this public forum so our help and advice is available to everyone. + +.. _AeoLiS Discussion Board: https://github.com/openearth/aeolis-python/discussions + +Model input +----------- + +The computational grid and boundary conditions for AeoLiS are specified through external +input files called by the model parameter file aeolis.txt. The computational grid is defined +with an x grid, y grid, and z grid. Boundary conditions for wind, wave, and tides +are also specified with external text files. A list of additional grid and boundary +files can be found in the table below. Each file is further defined below. + +.. list-table:: + :widths: 25 50 + :header-rows: 1 + + * - Input File + - File Description + * - aeolis.txt + - File containing parameter definitions + * - x.grd + - File containing cross-shore grid + * - y.grd + - File containing alongshore grid (can be all zeros for 1D cases) + * - z.grd + - File containing topography and bathymetry data + * - veg.grd + - File containing initial vegetation density + * - mass.txt + - File containing sediment mass data when using space varying grain size distribution + * - wind.txt + - File containing wind speed and direction data + * - tide.txt + - File containing water elevation data + * - wave.txt + - File containing wave height and period data + * - meteo.txt + - File containing meteorological time series data + +aeolis.txt +^^^^^^^^^^^ + +This is the parameter file for AeoLiS that defines the model processes and boundary conditions. +Parameters in the file are specified by various keywords; each keyword has a pre-defined +default value that will be used if it is not direclty specified in aeolis.txt (a list of default parameter +values can be found in the Default settings tab on the left). Among the keywords +in aeolis.txt are the keywords to define the external computational grid files (xgrid_file, ygrid_file, +and bed_file) and external boundary condition files (tide_file, wave_file, wind_file, etc.). +The different physical processes in AeoLiS can be turned on and off by changing the +process keywords in aeolis.txt to T (True) and F (False). Example aeolis.txt parameters files can be +found in the examples folder on the AeoLiS GitHub. + +x.grd +^^^^^^ + +The x.grd file defines the computational grid in the cross-shore direction defined in meters. +In a 1-dimensional (1D) case, the file contains a single column of cross-shore locations +starting at zero for a location of choice. In a 2-dimesional (2D) case, the file +contains multiple columns (cross-shore positions) and rows (alongshore positions) +where each value corresponds to a specific location in the 2D grid. The file can be renamed +and is referenced from the parameters file with the xgrid_file keyword. + +y.grd +^^^^^^ + +This file defines the computational grid in the alongshore direction. In a 1D case, +y.grd will contain a single column of zeros. In a 2D case, similar to the x.grd file, +y.grd has multiple columns (cross-shore positions) and rows (alongshore positions) +where each row, column position corresponds to a specific location in the 2D gird. +x.grd and y.grd will always be the same size regardless of running a 1D or 2D simulation. +As with the x.grd file, this file can be renamed and is referenced from the parameters file with the +keyword: ygrid_file. + +z.grd +^^^^^^ + +The z.grd file provides the model with the elevation information for the computational +grid defined in x.grd and y.grd. Similar to x.grd and y.grd, when running +AeoLis in 1D the file contains a single column with the number of rows equal +to the number of rows in x.grd and y.grd. In 2D cases, z.grd has multiple columns and +rows of equal size to x.grd and y.grd. Elevation values in the file should be defined such that +positive is up and negative is down. The file can be renamed and is referenced from the +parameters file with the keyword: bed_file. + +veg.grd +^^^^^^^^ + +The veg.grd file is an optional grid providing initial vegetation coverage (density) at each position in the +model domain defined in x.grd and y.grd. Similar to the grid files, if simulations are in +2D there will be multiple columns for each cross-shore position (x) and multiple rows for +each alongshore position (y). The format of a 1D vegetation grid file can be seen below +where each red dots represent vegetation cover at each cross-shore position. + +.. _fig-veg-inputs: + +.. figure:: /images/vegetation_text_file.jpeg + :alt: vegetation input format + :width: 200px + :align: center + + File format for a 1D AeoLis vegetation grid. Each red dot is the vegetation density at a specific location in the computational grid. + +mass.txt +^^^^^^^^^ + +The mass.txt file allows users to specify variations in grain size distribution in both +horizontal and vertical directions. If the grain size distribution is constant throughout +the model domain, multifraction sediment transport is possilbe without this file. The file contains +the mass of each sediment fraction in each grid cell and bed layer. The file is formatted such that each +row corresponds to a specific location in the computational domain and the columns are grouped +by bed layers and each individual column represents a single sediment fraction present in the model +domain. An infinite number of sediment fractions can be defined in the model; however, it should be +noted the more sediment fractions present the longer the simulation time and larger the output files. + +In a 1D case, the text file will have dimensions of number of cross-shore locations (x) by number +of sediment fractions times the number of bed layers. For example if you have 200 cross-shore positions +in your model domain and 4 different sediment fractions with 3 bed layers, your mass.txt file +will contain a matrix of 200 rows by 12 columns. An example of a 1D mass.txt file can be seen below +where each red dot represents a sediment fraction mass at a specific location in the model domain. + +.. _fig-mass-inputs-1D: + +.. figure:: /images/mass_text_file_graphic.jpeg + :alt: mass file format 1D + :width: 550px + :align: center + + File format for a 1D AeoLis mass for spatially variable grain size distributions. Each red dot is the mass for each sediment fraction + at each location in the computational grid (x, y, bed layer). + +In a 2D case, the mass.txt file will have dimensions of number of cross-shore positions (x) +times the number of alongshore positions (x) by number of sediment fractions times the number of +bed layers. The file will be formatted such that the columns are grouped by bed layer with all available +sediment fractions present in each bed layer and rows are grouped by alongshore position with all +cross-shore prositions given for each alongshore position. An visual example of a 2D mass.txt input +file for AeoLis can be seen below. + +.. _fig-mass-inputs-2D: + +.. figure:: /images/mass_text_file_2D.jpeg + :alt: mass file format 2D + :width: 550px + :align: center + + File format for a 2D AeoLis mass file for spatially variable grain size distributions. Each red dot is the mass for each sediment fraction + at each location in the computational grid (x, y, bed layer). + +wind.txt +^^^^^^^^^ + +The wind.txt file provides the model with wind boundary conditions and is formatted similar to +the tide.txt and wave.txt files. The first column is time in seconds from +start, the second column is wind speed, and the third column is wind direction. The wind directions +can be specified in either nautical or cartesian convention (specified in aeolis.txt with keyword: wind_convention). +The format of this file can be seen below were each of the red dots represents a data value of time, wind speed, +or wind direction. As AeoLiS is an aeolian sediment transport model, the wind boundary conditions are of particular +importance. + +.. _fig-wind-inputs: + +.. figure:: /images/wind_text_file_graphic.jpeg + :alt: wind input format + :width: 300px + :align: center + + File format for wind boundary conditions file for AeoLis input. + +tide.txt +^^^^^^^^^ + +The tide.txt file contains the water elevation data for the duration of the +simulation. It is formatted such that the first column is time in seconds and +the second column is the water elevation data at each time step. An example of +the file format can be seen below where each red dot represents a data value for +time or water elevation. + +.. _fig-tide-inputs: + +.. figure:: /images/tide_text_file.jpeg + :alt: tide input format + :width: 300px + :align: center + + File format for the water elevation conditions file for AeoLis input. + +wave.txt +^^^^^^^^^ + +The wave.txt file provides the model with wave data used in AeoLiS for runup calculations. +The file is formatted similar to tide.txt but has three columns instead of two. +Here, the first column is time in seconds, the second column is wave height, +and the third column is the wave period. The format of this file can be seen +below where each red dot represents +a data value. + +.. _fig-wave-inputs: + +.. figure:: /images/wave_text_file_graphic.jpeg + :alt: wave input format + :width: 300px + :align: center + + File format for the wave conditions file for AeoLis input. + +meteo.txt +^^^^^^^^^^ + +The meteo.txt file contains meteorological data used to simulate surface moisture in the model domain (see Simulation of surface moisture +in Model description on for surface moisture implementation in AeoLiS). This file is formatted similar to the other environmental boundary +condition files (wind, wave, and tide) such that it contains a time series of environmental data read into AeoLiS through keyword specification. +The keywords required to process surface moisture with evaporation and infiltration are process_moist = True, method_moist_process = surf_moisture, +th_moisture = True, and meteo_file = meteo.txt (or name of file containing meteorological data). An example of the meteo.txt file can be seen in the +figure below where each red dot represents a time series data value. The first column contains time (s), the second column is temperature (degrees C), +the thrid column is precipitation (mm/hr), the fourth column is relative humidity (%), the fifth column is global radiation (MJ/$m^2$/day), and the sixth +column is air pressure (kPa). + +.. _fig-meteo-inputs: + +.. figure:: /images/meteo_file_format.jpeg + :alt: meteo file format + :width: 550px + :align: center + + File format for meteorological data used to simulate surface moisture in AeoLiS where each red dot represents a time series value. + + + +1D and 2D models +----------------- + +The model can be run in 1D and 2D mode depending on the definition of the input. Most processes are implemented in 2D mode. To run the model in 2D mode all grid files should contain 2D matrices of the same size. + +To run the model in 1D mode, all grid files should contain vectors. In 1D mode, the ygrd_file typically contains vector with constant values (ones or zeros). +Because some processes are easier to solve in 2D, the 1D model is converted to a 2D model by repeating the vectors 3 times assuming the same resolution +spacing as in the xgrid direction. The model will run in a quasi 2D mode. Results are then converted to 1D again by taking the middle of the 3 vectors. + + +.. _default-settings: + +Default settings +----------------- + +The AeoLiS model can be configured using a model configuration +file. For any configuration parameters not defined in the model +configuration file, or in case the model configuration file is absent, +the default model configuration is used. The default model +configuration is listed below. + +.. literalinclude:: ../../aeolis/constants.py + :language: python + :start-after: #: AeoLiS model default configuration + :end-before: #: Merge initial and model state + + +Activate/deactivate processes +------------------------------- +After creating the input files that are necessary to run an AeoLiS model, the next step is often to decide which processes and methods to use. Several processes are defined in the configuration file that can be turned on and off. Apart from turning processes on and off, there are also several user-defined thresholds and methods that affect the way in which processes are calculated. For example, there are different sediment transport equations available within *process_transport*. The default is Bagnold, but by defining *method_transport* in the configuration file a different equation can be used. Here, we provide a description of the processes and methods that are defined in configuration file. More detailed descriptions of the processes and their implementation can be found in :ref:`the model description `. + +An easy way to look up where these process, threshold and method flags are used is by going to the main page of the AeoLiS github and using the search bar at the top. For instance, searching *process_tide* shows that it is used in :py:mod:`aeolis.threshold.compute`, :py:mod:`aeolis.vegetation.grow`, :py:mod:`aeolis.bed.update`. + +process_wind +^^^^^^^^^^^^^ +*Process_wind* makes sure the wind file is loaded, and interpolates values of the wind speed and direction to each time step. The model does not work without this flag. Used in :py:mod:`aeolis.wind.interpolate` + +process_threshold +^^^^^^^^^^^^^^^^^ +*Process_threshold* allows for the alterations of the threshold velocity by processes like grain and moisture. This process does not occur if a threshold file is provided as input since this file is used to define the threshold shear velocity. Used in :py:mod:`aeolis.threshold.compute`, documentation of threshold alterations can be found in :ref:model_description + +- **th_grainsize**: calculates the threshold velocity based on the grain size following Bagnold (:py:mod:`aeolis.threshold.compute_grain_size`) +- **th_bedslope**: currently not implemented, but theoretically would include an alteration of the velocity threshold based on the slope of the bed. (:py:mod:`aeolis.threshold.compute_bedslope`) +- **th_moisture**: alters the threshold velocity based on the moisture content, many different methods are available (:py:mod:`aeolis.threshold.compute_moisture`). Only works if moisture content is defined, which is calculated when process_moisture is on. +- **th_salt**: alters the wind velocity threshold based on salt content following Nickling and Ecclestone (1981) (:py:mod:`aeolis.threshold.compute_salt`) +- **th_sheltering**: modify the wind velocity threshold based on the presence of roughness elements in the grain size fractions following Raupach (1993) (:py:mod:`aeolis.threshold.compute_sheltering`) +- **th_humidity** and **th_drylayer**: are currently not implemented + +process_transport +^^^^^^^^^^^^^^^^^^ +*Process_transport* allows the calculation of the equilibrium transport rate based on a user-defined transport method. + +**Method_transport** defines the sediment transport equation used in the calculation of the equilibrium transport rate. Options are: *bagnold, bagnold_gs, kawamura, lettau, dk, sauermann, vanrijn_strypsteen*. + +**Method_grainspeed** defines at which speed the sediment transport in the air is occurring. Options are: *duran*/*duran_full*, *windspeed*, and *constant* + +Used in :py:mod:`aeolis.transport.equilibrium` + +process_bedupdate +^^^^^^^^^^^^^^^^^^ +Process_bedupdate allows the bed level to change based on calculated erosion/deposition. Used in :py:mod:`aeolis.bed.update` + +process_shear +^^^^^^^^^^^^^^ +Process_shear calls the shear module in shear.py to calculate the shear stress perturbation caused by topography. Used in :py:mod:`aeolis.wind.initialize` + +process_tide +^^^^^^^^^^^^^ +Process_tide changes the threshold velocity to infinity (no aeolian transport) if the bed level is below the water level. This process is not used if th_moist is used. Used in :py:mod:`aeolis.threshold.compute`, :py:mod:`aeolis.vegetation.grow`, :py:mod:`aeolis.bed.update`. + +process_wave +^^^^^^^^^^^^^ +Process_wave allows calculation of the water depth based on the input tide file and interpolates the input wave data to the timesteps of the model run. If the wave file is not available, the wave height and peak period are set to 0. Turning this process flag on also results in the calculation of Hsmix, which is needed for the calculation of the Depth of Disturbance (*process_mixtoplayer*). The initialization/calculation is skipped if external variables are imported from another model. + +process_runup +^^^^^^^^^^^^^^ +Process_runup allows calculation of the runup extent based on the wave height, peak period and water level. Process_wave and Process_tide need to be on for this to work. The runup is calculated with the Stockdon equation using a user-defined, static beach slope. The initialization/calculation is skipped if external variables are imported from another model. + +process_moist +^^^^^^^^^^^^^^ +Process_moist allows calculation of the soil moisture content, based on different methods, infiltration or surface_moist + +method_moist_process + +method_moist_threshold defines the equation used to calculate teh threshold shear veolcity based on the moisture content. Used in :py:mod:`aeolis.threshold.compute_moisture`. + +Process_groundwater, Process_seepage_face and Process_scanning are all related to the calculation of the moisture content. + +process_mixtoplayer +^^^^^^^^^^^^^^^^^^^^ +This process flag allows mixing in the layers that are present down to the depth of disturbance. For the calculation of the DoD the process_wave need to be on. + +process_wet_bed_reset +^^^^^^^^^^^^^^^^^^^^^ +Resets the bed to the original bathymetry if the bed is under water (zs). Used in :py:mod:`aeolis.bed.wet_bed_reset`. The execution of the wet bed reset is dependent on the TWL calculation, which can be turned on process_runup, process_waves and process_tide. + +process_meteo +^^^^^^^^^^^^^^ +This is a place holder and currently has no functionality + +process_avalanche +^^^^^^^^^^^^^^^^^^ +Simulates the process of avalanching when slopes of the bed become too steep to be realistic (i.e. > a critical static slope). + +process_separation +^^^^^^^^^^^^^^^^^^^ +This enables the calculation of the separation bubble within the shear perturbation module. Before executing the calculation is checks whether steep slopes are present that might lead to a separation bubble. Process_separation will only be used if process_shear is on. + +process_vegetation +^^^^^^^^^^^^^^^^^^^^ +This process flag allows application of shear stress reduction due to vegetation based on Raupach or Okin. It also allows for germination and lateral growth of vegetation if those values are set to larger than 0. This process is actively being developed. + +process_fences +^^^^^^^^^^^^^^^ +This process enables alteration of the shear velocity if fence characteristics are provided as user input. Calculations happen in 1D or 2D depending on grid size following the Okin model. + +process_dune_erosion +^^^^^^^^^^^^^^^^^^^^^ +This flag turns on dune erosion calculation (:py:mod:`aeolis.erosion`.) based on the Palmsten and Holman (2012) method. After calculating the erosion, the avalanching routine is run in :py:mod:`aeolis.model.update`. This is needed because these modules only get called for aeolian transport in case of winds above threshold. + + +Model state/output +------------------- + +The AeoLiS model state is described by a collection of spatial grid +variables with at least one value per horizontal grid cell. Specific +model state variables can also be subdivided over bed composition +layers and/or grain size fractions. All model state variables can be +part of the model netCDF4 output. The current model state variables +are listed below. + +.. literalinclude:: ../../aeolis/constants.py + :language: python + :start-after: #: Aeolis model state variables + :end-before: #: AeoLiS model default configuration + + +Guidance on solver use +------------------------ + +Different numerical solvers are available in the latest AeoLiS version. +The numerical solvers are used to solve the transport equation numerically. +Other modules such as the shear module, vegetation module, and the moisture module +use other equations and numerical implementations that currently do not have +different options for numerical solvers. + +The advection equation is implemented in two-dimensional form +following: + +.. math:: + :label: apx-advection + + \frac{\partial c}{\partial t} + + u_{z,\mathrm{x}} \frac{\partial c}{\partial x} + + u_{z,\mathrm{y}} \frac{\partial c}{\partial y} = + \frac{c_{\mathrm{sat}} - c}{T} + +in which :math:`c` [:math:`\mathrm{kg/m^2}`] is the sediment mass per +unit area in the air, :math:`c_{\mathrm{sat}}` [:math:`\mathrm{kg/m^2}`] is the +maximum sediment mass in the air that is reached in case of +saturation, :math:`u_{z,\mathrm{x}}` and :math:`u_{z,\mathrm{y}}` are the x- and +y-component of the wind velocity at height :math:`z` [m], :math:`T` [s] is an +adaptation time scale, :math:`t` [s] denotes time and :math:`x` [m] and :math:`y` [m] +denote cross-shore and alongshore distances respectively. + +The formulation is discretized in different ways to allow for different types of simulations balancing accuracy vs. computational resources. +The conservative method combined with a steady state solution is the current default for most simulations. +Non-conservative methods and explicit/implicit Euler forward/backward schemes are also available. + +The available solvers are *steadystate*, *trunk*, and *pieter*. Some details are given below. As of version 3 of the AeoLiS +model, the steadystate solver is the default solver. The steadystate solver is most suitable for practical cases. +The other solvers are still available for specific applications. + +steadystate (default since v3) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +The *steadystate* solver is based on the assumption that dc/dt = 0 and uses a finite difference scheme to solve the transport equation. + +.. math:: + :label: ss-advection + + u_{z,\mathrm{x}} \frac{\partial c}{\partial x} + + u_{z,\mathrm{y}} \frac{\partial c}{\partial y} = + \frac{c_{\mathrm{sat}} - c}{T} + +When solving for equation :eq:`ss-advection` a sweeping algorithm is used that propagates the boundary conditions through the +4 possible quadrants of the computational grid. The 4 quadrants depend on the signs of the sediment velocities and the +remaining grid cells that are not part of a quadrant (because winds diverge or converge in that cell) are solved as well. + +The steadystate solver is most suitable for case study simulations with larger timeframes and timesteps. All landform +simulations in the :cite:t:`VANWESTEN2024106093` publication were done with the steadystate solver. + +trunk +^^^^^ +The *trunk* solver was the first solver that was implemented in AeoLiS. The trunk solver allows a time-varying solution for +sediment concentration with options for explicit and implicit Euler forward/backward schemes. The 1D simulations by :cite:t:`deVries2014a` +were done with the trunk solver in explicit mode. However, the explicit mode is not recommended for most simulations as +very strict requirements for stability are needed which results in large calculation times. The implicit mode is more stable +and allows for larger timesteps. However, the implicit numerical scheme lacks accuracy when larger timesteps are used. The +2D simulations by :cite:t:`Hoonhout2016` were done with the trunk solver in implicit mode. + +See :ref:`trunk_num` for details on the numerical implementation of the trunk solver. + +Pieter +^^^^^^ +The *pieter* solver was built on the basis of using a conservative numerical scheme. This conservative scheme allowed for a better +implementation of spatially varying wind(/sediment) velocities. In simple cases (spatially non-varying winds) the solver is +identical to the trunk solver. The solver was built by Professor Pieter Rauwoens, hence the name. + +See :ref:`pieter_num` for details on the numerical implementation of the Pieter solver. \ No newline at end of file diff --git a/docs/user/output.rst b/docs/user/output.rst deleted file mode 100644 index 7acd5ec7..00000000 --- a/docs/user/output.rst +++ /dev/null @@ -1,14 +0,0 @@ -Model state/output -================== - -The AeoLiS model state is described by a collection of spatial grid -variables with at least one value per horizontal grid cell. Specific -model state variables can also be subdivided over bed composition -layers and/or grain size fractions. All model state variables can be -part of the model netCDF4 output. The current model state variables -are listed below. - -.. literalinclude:: ../../aeolis/constants.py - :language: python - :start-after: #: Aeolis model state variables - :end-before: #: AeoLiS model default configuration diff --git a/docs/user/bibliography.rst b/docs/user/references.rst similarity index 75% rename from docs/user/bibliography.rst rename to docs/user/references.rst index 1109f3f3..ebe4af17 100644 --- a/docs/user/bibliography.rst +++ b/docs/user/references.rst @@ -1,8 +1,8 @@ -Bibliography +References ============= .. rubric:: References in this documentation .. bibliography:: :cited: - :style: plain \ No newline at end of file + :style: plain