{"id":324915,"name":"DispersiveShallowWater.jl","description":"A Julia library of structure-preserving numerical methods for dispersive wave equations.","url":"https://github.com/numericalmathematics/dispersiveshallowwater.jl","last_synced_at":"2026-04-08T03:30:22.248Z","repository":{"id":195918238,"uuid":"635090135","full_name":"NumericalMathematics/DispersiveShallowWater.jl","owner":"NumericalMathematics","description":"A Julia library of structure-preserving numerical methods for dispersive wave equations","archived":false,"fork":false,"pushed_at":"2026-03-31T09:30:28.000Z","size":41935,"stargazers_count":24,"open_issues_count":13,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-04-01T00:52:06.528Z","etag":null,"topics":["dispersion-model","julia","numerical-simulation-framework","shallow-water-equations","simulation","summation-by-parts"],"latest_commit_sha":null,"homepage":"https://numericalmathematics.github.io/DispersiveShallowWater.jl/","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NumericalMathematics.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.bib","codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":".zenodo.json","notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-05-02T00:15:17.000Z","updated_at":"2026-03-26T19:18:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"407e80b9-1d75-46ca-8c08-1bd9fdad0797","html_url":"https://github.com/NumericalMathematics/DispersiveShallowWater.jl","commit_stats":{"total_commits":112,"total_committers":6,"mean_commits":"18.666666666666668","dds":0.5892857142857143,"last_synced_commit":"0db28f35e12bc68c5caf49e15b01b16220761fcd"},"previous_names":["joshualampert/dispersiveshallowwater.jl","numericalmathematics/dispersiveshallowwater.jl"],"tags_count":45,"template":false,"template_full_name":null,"purl":"pkg:github/NumericalMathematics/DispersiveShallowWater.jl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NumericalMathematics%2FDispersiveShallowWater.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NumericalMathematics%2FDispersiveShallowWater.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NumericalMathematics%2FDispersiveShallowWater.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NumericalMathematics%2FDispersiveShallowWater.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NumericalMathematics","download_url":"https://codeload.github.com/NumericalMathematics/DispersiveShallowWater.jl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NumericalMathematics%2FDispersiveShallowWater.jl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31421869,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T00:25:07.052Z","status":"online","status_checked_at":"2026-04-05T02:00:05.211Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"NumericalMathematics","name":"NumericalMathematics","uuid":"202252210","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/202252210?v=4","repositories_count":1,"last_synced_at":"2025-03-18T08:36:03.893Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/NumericalMathematics","funding_links":[],"total_stars":1,"followers":0,"following":0,"created_at":"2025-03-18T08:36:03.918Z","updated_at":"2025-03-18T08:36:03.918Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NumericalMathematics","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NumericalMathematics/repositories"},"packages":[],"commits":{"id":9827738,"full_name":"NumericalMathematics/DispersiveShallowWater.jl","default_branch":"master","total_commits":365,"total_committers":6,"total_bot_commits":57,"total_bot_committers":2,"mean_commits":60.833333333333336,"dds":0.2794520547945205,"past_year_total_commits":146,"past_year_total_committers":6,"past_year_total_bot_commits":19,"past_year_total_bot_committers":2,"past_year_mean_commits":24.333333333333332,"past_year_dds":0.37671232876712324,"last_synced_at":"2026-04-05T02:00:57.120Z","last_synced_commit":"cc93e1f88608fbccdff1c1fb6fcc17f5528277f6","created_at":"2025-05-05T21:16:48.125Z","updated_at":"2026-04-05T02:00:57.020Z","committers":[{"name":"Joshua Lampert","email":"51029046+JoshuaLampert","login":"JoshuaLampert","count":263},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":46},{"name":"Hendrik Ranocha","email":"ranocha","login":"ranocha","count":29},{"name":"Collin Wittenstein","email":"126870995+cwittens","login":"cwittens","count":15},{"name":"github-actions[bot]","email":"41898282+github-actions[bot]","login":"github-actions[bot]","count":11},{"name":"Pierre Navaro","email":"pierre.navaro@math.cnrs.fr","login":"pnavaro","count":1}],"past_year_committers":[{"name":"Joshua Lampert","email":"joshua.lampert@uni-hamburg.de","login":"JoshuaLampert","count":91},{"name":"Hendrik Ranocha","email":"ranocha","login":"ranocha","count":20},{"name":"Collin Wittenstein","email":"126870995+cwittens","login":"cwittens","count":15},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":13},{"name":"github-actions[bot]","email":"41898282+github-actions[bot]","login":"github-actions[bot]","count":6},{"name":"Pierre Navaro","email":"pierre.navaro@math.cnrs.fr","login":"pnavaro","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/NumericalMathematics%2FDispersiveShallowWater.jl/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-07T00:00:11.408Z","repositories_count":6211373,"commits_count":920244725,"contributors_count":35656387,"owners_count":1142853,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"NumericalMathematics/DispersiveShallowWater.jl","html_url":"https://github.com/NumericalMathematics/DispersiveShallowWater.jl","last_synced_at":"2026-04-05T02:00:52.588Z","status":"active","issues_count":11,"pull_requests_count":155,"avg_time_to_close_issue":5952336.818181818,"avg_time_to_close_pull_request":580797.1631205673,"issues_closed_count":11,"pull_requests_closed_count":141,"pull_request_authors_count":5,"issue_authors_count":5,"avg_comments_per_issue":7.636363636363637,"avg_comments_per_pull_request":4.04516129032258,"merged_pull_requests_count":137,"bot_issues_count":0,"bot_pull_requests_count":40,"past_year_issues_count":9,"past_year_pull_requests_count":85,"past_year_avg_time_to_close_issue":440276.77777777775,"past_year_avg_time_to_close_pull_request":994206.3661971831,"past_year_issues_closed_count":9,"past_year_pull_requests_closed_count":71,"past_year_pull_request_authors_count":5,"past_year_issue_authors_count":4,"past_year_avg_comments_per_issue":4.222222222222222,"past_year_avg_comments_per_pull_request":4.894117647058824,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":25,"past_year_merged_pull_requests_count":67,"created_at":"2025-05-05T21:16:49.743Z","updated_at":"2026-04-05T02:00:52.589Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/NumericalMathematics%2FDispersiveShallowWater.jl","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/NumericalMathematics%2FDispersiveShallowWater.jl/issues","issue_labels_count":{"documentation":2,"breaking":2,"performance":2,"visualization":1,"enhancement":1,"bug":1},"pull_request_labels_count":{"dependencies":28,"enhancement":20,"github_actions":13,"documentation":12,"testing":11,"breaking":9,"performance":8,"refactoring":6,"visualization":5,"consistency":2,"bug":2},"issue_author_associations_count":{"MEMBER":6,"NONE":4,"CONTRIBUTOR":1},"pull_request_author_associations_count":{"COLLABORATOR":57,"MEMBER":53,"CONTRIBUTOR":44,"NONE":1},"issue_authors":{"ranocha":4,"cwittens":3,"JoshuaLampert":2,"Alexander-Barth":1,"JuliaTagBot":1},"pull_request_authors":{"JoshuaLampert":79,"dependabot[bot]":26,"cwittens":19,"ranocha":17,"github-actions[bot]":14},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-07T00:00:09.463Z","repositories_count":14118440,"issues_count":34499516,"pull_requests_count":112639646,"authors_count":11228092,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{"breaking":2,"documentation":2,"bug":1,"enhancement":1,"performance":1,"visualization":1},"past_year_pull_request_labels_count":{"dependencies":14,"github_actions":12,"enhancement":10,"breaking":5,"documentation":4,"performance":3,"testing":3,"consistency":2,"refactoring":1,"visualization":1,"bug":1},"past_year_issue_author_associations_count":{"MEMBER":5,"NONE":3,"CONTRIBUTOR":1},"past_year_pull_request_author_associations_count":{"MEMBER":46,"CONTRIBUTOR":29,"COLLABORATOR":9,"NONE":1},"past_year_issue_authors":{"cwittens":3,"ranocha":3,"JoshuaLampert":2,"Alexander-Barth":1},"past_year_pull_request_authors":{"JoshuaLampert":31,"cwittens":19,"github-actions[bot]":13,"dependabot[bot]":12,"ranocha":10},"maintainers":[{"login":"JoshuaLampert","count":81,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/JoshuaLampert"},{"login":"ranocha","count":21,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ranocha"},{"login":"cwittens","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/cwittens"}],"active_maintainers":[{"login":"JoshuaLampert","count":33,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/JoshuaLampert"},{"login":"cwittens","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/cwittens"},{"login":"ranocha","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ranocha"}]},"events":{"total":{"CreateEvent":49,"CommitCommentEvent":28,"ReleaseEvent":9,"DeleteEvent":47,"PullRequestEvent":102,"IssuesEvent":17,"WatchEvent":5,"IssueCommentEvent":316,"PushEvent":406,"PullRequestReviewCommentEvent":213,"PullRequestReviewEvent":233},"last_year":{"CreateEvent":49,"CommitCommentEvent":28,"ReleaseEvent":9,"DeleteEvent":47,"PullRequestEvent":102,"IssuesEvent":17,"WatchEvent":5,"IssueCommentEvent":316,"PushEvent":406,"PullRequestReviewCommentEvent":213,"PullRequestReviewEvent":233}},"keywords":["dispersion-model","julia","numerical-simulation-framework","shallow-water-equations","simulation","summation-by-parts"],"dependencies":[],"score":5.402677381872279,"created_at":"2025-09-19T00:24:18.196Z","updated_at":"2026-04-08T03:30:22.265Z","avatar_url":"https://github.com/NumericalMathematics.png","language":"Julia","category":"Hydrosphere","sub_category":"Waves and Currents","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# DispersiveShallowWater.jl\n\n[![Docs-stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://NumericalMathematics.github.io/DispersiveShallowWater.jl/stable)\n[![Docs-dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://NumericalMathematics.github.io/DispersiveShallowWater.jl/dev/)\n[![Build Status](https://github.com/NumericalMathematics/DispersiveShallowWater.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/NumericalMathematics/DispersiveShallowWater.jl/actions/workflows/CI.yml?query=branch%3Amain)\n[![codecov](https://codecov.io/gh/NumericalMathematics/DispersiveShallowWater.jl/graph/badge.svg)](https://codecov.io/gh/NumericalMathematics/DispersiveShallowWater.jl)\n[![Coveralls](https://coveralls.io/repos/github/NumericalMathematics/DispersiveShallowWater.jl/badge.svg?branch=main)](https://coveralls.io/github/NumericalMathematics/DispersiveShallowWater.jl?branch=main)\n[![Aqua QA](https://raw.githubusercontent.com/JuliaTesting/Aqua.jl/master/badge.svg)](https://github.com/JuliaTesting/Aqua.jl)\n[![License: MIT](https://img.shields.io/badge/License-MIT-success.svg)](https://opensource.org/licenses/MIT)\n[![DOI](https://joss.theoj.org/papers/10.21105/joss.09361/status.svg)](https://doi.org/10.21105/joss.09361)\n[![DOI](https://zenodo.org/badge/635090135.svg)](https://zenodo.org/doi/10.5281/zenodo.10034636)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg height=\"200px\" alt=\"logo\" src=\"https://github.com/user-attachments/assets/d2bccfbd-19c9-4448-a5d9-6ac927c32cc5\"\u003e\n\u003c/p\u003e\n\n**DispersiveShallowWater.jl** is a [Julia](https://julialang.org/) package that implements structure-preserving numerical methods for one-dimensional dispersive shallow water models.\nTo date, it provides provably conservative, entropy-conserving, and well-balanced numerical schemes for the following dispersive shallow water models:\n\n* the [Korteweg–De Vries (KdV) equation as the prototypical example of an integrable PDE](https://doi.org/10.1007/s10915-025-02898-x),\n* the [Benjamin-Bona-Mahony (BBM) equation, also known as regularized long-wave equation](https://doi.org/10.4208/cicp.OA-2020-0119),\n* the [BBM-BBM equations with varying bottom topography](https://doi.org/10.1088/1361-6544/ac3c29),\n* the [dispersive shallow water model proposed by Magnus Svärd and Henrik Kalisch](https://arxiv.org/abs/2302.09924),\n* the [Serre-Green-Naghdi equations in standard and hyperbolic form](https://doi.org/10.1002/num.70016),\n* the [Sainte-Marie equations in hyperbolic form](https://doi.org/10.1016/j.jcp.2019.05.035).\n\nThe semidiscretizations are based on summation-by-parts (SBP) operators, which are implemented in [SummationByPartsOperators.jl](https://github.com/ranocha/SummationByPartsOperators.jl/).\nTo obtain fully discrete schemes, the time integration methods from [OrdinaryDiffEq.jl](https://github.com/SciML/OrdinaryDiffEq.jl) are used to solve the resulting ordinary differential equations.\nFully discrete entropy-conservative methods can be obtained by using the [relaxation method](https://doi.org/10.1137/19M1263662) provided by DispersiveShallowWater.jl.\nA more detailed documentation can be found [online](https://NumericalMathematics.github.io./DispersiveShallowWater.jl/stable/).\n\n## Installation\n\nIf you have not yet installed Julia, then you first need to [download Julia](https://julialang.org/downloads/). Please [follow the instructions for your operating system](https://julialang.org/downloads/platform/).\nDispersiveShallowWater.jl works with Julia v1.10 and newer. DispersiveShallowWater.jl is a registered Julia package. Therefore, you can install it by executing the following commands from the Julia REPL\n\n```julia\njulia\u003e using Pkg\n\njulia\u003e Pkg.add([\"DispersiveShallowWater\", \"OrdinaryDiffEqTsit5\", \"Plots\"])\n```\n\nIn addition, this installs the packages OrdinaryDiffEqTsit5.jl from [OrdinaryDiffEq.jl](https://github.com/SciML/OrdinaryDiffEq.jl)\nused for time-integration and [Plots.jl](https://github.com/JuliaPlots/Plots.jl) to visualize the results. If you want to use\nother time integration methods than `Tsit5`, you can install the respective subpackage or OrdinaryDiffEq.jl, which will install\nevery available solver.\nIf you want to use other SBP operators than the default operators that DispersiveShallowWater.jl uses, then you also need [SummationByPartsOperators.jl](https://github.com/ranocha/SummationByPartsOperators.jl),\nwhich can be installed running\n\n```julia\njulia\u003e Pkg.add(\"SummationByPartsOperators\")\n```\n\n## Usage\n\nIn the Julia REPL, first load the package DispersiveShallowWater.jl\n\n```julia\njulia\u003e using DispersiveShallowWater\n```\n\nYou can run a basic simulation that solves the Serre-Green-Naghdi equations by executing\n\n```julia\njulia\u003e include(default_example());\n```\n\nThe result can be visualized by using the package Plots.jl\n\n```julia\njulia\u003e using Plots\njulia\u003e plot(semi =\u003e sol)\n```\n\nThe command `plot` expects a `Pair` consisting of a `Semidiscretization` and an `ODESolution`. The visualization can also be customized, see the [documentation](https://NumericalMathematics.github.io/DispersiveShallowWater.jl/stable/basic_example/#visualize_results)\nfor more details. Other examples can be found in the subdirectory [examples/](https://github.com/NumericalMathematics/DispersiveShallowWater.jl/tree/main/examples).\nA list of all examples is returned by running `get_examples()`. You can pass the filename of one of the examples or your own simulation file to `include` in order to run it,\ne.g., `include(joinpath(examples_dir(), \"svaerd_kalisch_1d\", \"svaerd_kalisch_1d_dingemans_relaxation.jl\"))`.\n\n## Referencing\n\nIf you use DispersiveShallowWater.jl for your research, please cite our article\n\n```bibtex\n@article{lampert2025dispersive,\n  title={{DispersiveShallowWater.jl}: {A} {J}ulia library of structure-preserving numerical methods for dispersive wave equations},\n  author={Lampert, Joshua and Wittenstein, Collin and Ranocha, Hendrik},\n  journal={Journal of Open Source Software},\n  volume={10},\n  number={116},\n  pages={9361},\n  year={2025},\n  month={12},\n  publisher={The Open Journal},\n  doi={10.21105/joss.09361}\n}\n```\nIn addition, you can also refer to DispersiveShallowWater.jl directly as\n```bibtex\n@misc{lampert2025dispersiveshallowwater,\n  title={{D}ispersive{S}hallow{W}ater.jl: {S}tructure-preserving numerical\n         methods for dispersive shallow water models},\n  author={Lampert, Joshua and Wittenstein, Collin and Ranocha, Hendrik},\n  year={2025},\n  howpublished={\\url{https://github.com/NumericalMathematics/DispersiveShallowWater.jl}},\n  doi={10.5281/zenodo.10034636}\n}\n```\n\n## Authors\n\nThe package is mainly developed and maintained by Joshua Lampert (University of Hamburg)\nwith contributions from Hendrik Ranocha (Johannes Gutenberg University Mainz)\nand Collin Wittenstein (Johannes Gutenberg University Mainz).\nSome parts of this repository are based on parts of\n[Dispersive-wave-schemes-notebooks. A Broad Class of Conservative Numerical Methods for Dispersive Wave Equations](https://github.com/ranocha/Dispersive-wave-schemes-notebooks)\nby Hendrik Ranocha, Dimitrios Mitsotakis, and David Ketcheson.\nThe code structure is inspired by [Trixi.jl](https://github.com/trixi-framework/Trixi.jl/).\n\n## License and contributing\n\nDispersiveShallowWater.jl is published under the MIT license (see [License](https://github.com/NumericalMathematics/DispersiveShallowWater.jl/blob/main/LICENSE)). We are pleased to accept contributions from everyone, preferably in the form of a PR.\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.21105/joss.09361","https://doi.org/10.1007/s10915-025-02898-x","https://doi.org/10.4208/cicp.OA-2020-0119","https://doi.org/10.1088/1361-6544/ac3c29","https://doi.org/10.1002/num.70016","https://doi.org/10.1016/j.jcp.2019.05.035","https://doi.org/10.1137/19M1263662"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["optimizers","transform","measurements","composibility","control","standardization","report","interpreter","crop","animal"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/324915","html_url":"https://ost.ecosyste.ms/projects/324915"}