Giter Club home page Giter Club logo

paper-2024-es_hydrostatic_reconstruction's Introduction

Entropy stable hydrostatic reconstruction schemes for shallow water systems

License: MIT DOI

This reproducibility repository contains the information and code to reproduce the results of the article

@online{ersing2024entropy,
      title={Entropy stable hydrostatic reconstruction schemes for shallow water systems}, 
      author={Ersing, Patrick and Goldberg, Sven and Winters, Andrew R},
      year={2024},
      month={06},
      doi={10.48550/arXiv.2406.14119},
      eprint={2406.14119},
      eprinttype={arxiv},
      eprintclass={math.NA}
}

If you find these results useful, please cite the article mentioned above. If you use the implementations provided here, please also cite this repository as

@misc{ersing2024entropyRepro,
  title={Reproducibility repository for "{E}ntropy stable hydrostatic reconstruction schemes for shallow water systems"},
  author={Ersing, Patrick and Goldberg, Sven and Winters, Andrew R},
  year={2024},
  howpublished={\url{https://github.com/patrickersing/paper-2024-es_hydrostatic_reconstruction}},
  doi={https://doi.org/10.5281/zenodo.12087861}
}

Abstract

In this work, we develop a new hydrostatic reconstruction procedure to construct well-balanced schemes for one and multilayer shallow water flows, including wetting and drying. Initially, we derive the method for a path-conservative finite volume scheme and combine it with entropy-conservative fluxes and suitable numerical dissipation to preserve an entropy inequality in the semi-discrete case. We then combine the novel hydrostatic reconstruction with a collocated nodal split-form discontinuous Galerkin spectral element method, extending the method to high-order and curvilinear meshes. The high-order method incorporates an additional positivity-limiter and is blended with a compatible subcell finite volume method to maintain well-balancedness at wet/dry fronts. We prove entropy-stability, well-balancedness and positivity-preservation for both methods.Numerical results for the high-order method validate the theoretical findings and demonstrate the robustness of the scheme.

Installation

  1. Install Julia v1.10
  2. Download the repository
git clone https://github.com/patrickersing/paper-2024-es_hydrostatic_reconstruction_dev.git
  1. Set the working directory to /code and instantiate the Julia environment using
cd paper-2024-es_hydrostatic_reconstruction/code
julia --project=. -e 'using Pkg; Pkg.develop(PackageSpec(path="TrixiShallowWater.jl")); Pkg.instantiate()'

Usage

To reproduce the results in the paper start a new Julia session with the --project=. flag. It is possible (but optional) to use multiple threads by appending the --threads=N flag, to run on N threads.

julia --project=. --threads=N

Then execute the following commands in the Julia-REPL to create the respective results:

  • Section 4.1 - Figure 4 The following command will create the figure and save it as a .pdf within the /Convergence_ML folder

    cd("Convergence_ML/")
    include("visualization_spectral_convergence.jl")
    cd("../")
  • Section 4.2 - Figure 5 + 6 The following command will create Figure 5 + 6 and save them as a .pdf within the WB_ML/ folder

    cd("WB_ML/")
    include("visualization_setup.jl")
    include("visualization_time_series.jl")
    cd("../")
  • Section 4.3 - Figure 7 + Table 1 The following command will create Figure 7 and save it as a .pdf within the WB_Curvilinear/ folder. Results from Table 1 are displayed in the REPL.

    cd("WB_Curvilinear/")
    include("visualization_bottom_topography.jl")
    cd("../")
  • Section 4.4 - Figure 8 + 9 The following command will create Figure 5 + 6 and save them as a .pdf within the WB_ML/ folder

    cd("DamBreakTriangularBottom/")
    include("visualization_setup.jl")
    include("visualization_gauge_data.jl")
    cd("../")
  • Section 4.5 - Figure 10 The following commands creates output files for Figure 8 and converts them to .vtu format readable in Paraview

    cd("ML_Dambreak/")
    include("elixir_shallowwater_multilayer_dam_break_dry.jl")
    # convert .h5 output files to .vtu
    using Trixi2Vtk
    trixi2vtk("out/solution*", output_directory="out", reinterpolate=false)
    cd("../")

    To create Figure 8 then start Paraview 5.10.0-RC1 and load the statefile ML_Dambreak/visu.pvsm

Authors

Disclaimer

Everything is provided as is and without warranty. Use at your own risk!

paper-2024-es_hydrostatic_reconstruction's People

Contributors

patrickersing avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.