Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/trixi-framework/trixibottomtopography.jl
Approximating real world data for bottom topographies
https://github.com/trixi-framework/trixibottomtopography.jl
Last synced: about 1 month ago
JSON representation
Approximating real world data for bottom topographies
- Host: GitHub
- URL: https://github.com/trixi-framework/trixibottomtopography.jl
- Owner: trixi-framework
- License: mit
- Created: 2022-10-25T14:18:55.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-01T18:46:11.000Z (about 2 months ago)
- Last Synced: 2024-11-10T00:53:07.884Z (about 1 month ago)
- Language: Julia
- Homepage: https://trixi-framework.github.io/TrixiBottomTopography.jl/
- Size: 12.5 MB
- Stars: 3
- Watchers: 3
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# TrixiBottomTopography.jl
[![Docs-dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://trixi-framework.github.io/TrixiBottomTopography.jl/dev/)
[![Build Status](https://github.com/trixi-framework/TrixiBottomTopography.jl/actions/workflows/ci.yml/badge.svg)](https://github.com/trixi-framework/TrixiBottomTopography.jl/actions/workflows/ci.yml)
[![Coverage Status](https://coveralls.io/repos/github/trixi-framework/TrixiBottomTopography.jl/badge.svg?branch=main)](https://coveralls.io/github/trixi-framework/TrixiBottomTopography.jl?branch=main)
[![License: MIT](https://img.shields.io/badge/License-MIT-success.svg)](https://opensource.org/licenses/MIT)`TrixiBottomTopography.jl` is a supplementary package to the numerical solver [Trixi.jl](https://github.com/trixi-framework/Trixi.jl), which enables to use real world geographical data for the bottom topography function of the shallow water equations.
The shallow water equations in one dimension
```math
\begin{aligned}
\begin{pmatrix} h \\ hv \end{pmatrix}_t
+ \begin{pmatrix} hv \\ hv^2 + \frac{1}{2}gh^2 \end{pmatrix}_x
= \begin{pmatrix} 0\\ -ghb_x \end{pmatrix}
\end{aligned}
```
and two dimensions
```math
\begin{aligned}
\begin{pmatrix} h \\ hv_1 \\ hv_2 \end{pmatrix}_t
+ \begin{pmatrix} hv_1 \\ hv_1^2 + \frac{1}{2}gh^2 \\ hv_1v_2 \end{pmatrix}_x
+ \begin{pmatrix} hv_2 \\ hv_1v_2 \\ hv_2^2 + \frac{1}{2}gh^2 \end{pmatrix}_y
= \begin{pmatrix} 0\\ -ghb_x \\ -ghb_y \end{pmatrix}
\end{aligned}
```require a (piecewise) differentiable function $b$, which describes the bottom topography.
Geographical data is almost always given as scattered data points on a coordinate system with the corresponding elevation. So to incorporate geographical data into the shallow water equations, we need to define a function that remodels the topography from the data.
`TrixiBottomTopography.jl` does this by B-spline interpolation of the underlying data.
## Functionalities
This package contains the following three main functionalities:
- Converting geographical data given in form of `.xyz` files from the [DGM data set](https://www.opengeodata.nrw.de/produkte/geobasis/hm/dgm1_xyz/dgm1_xyz/) provided by [Geobasis NRW](https://www.bezreg-koeln.nrw.de/brk_internet/geobasis/hoehenmodelle/digitale_gelaendemodelle/gelaendemodell/index.html) to make it readable for `TrixiBottomTopography.jl`
- Setting up a B-spline interpolation structure in one and two dimensions which contains all the relevant information to define a B-spline interpolation function with additional specifications
- Using the B-spline structure to set up a B-spline interpolation functionA detailed description of the functionalities can be found in the [documentation](https://trixi-framework.github.io/TrixiBottomTopography.jl/dev/) to this package.
## Installation
If you have not yet installed Julia, please [follow the instructions for your operating system](https://julialang.org/downloads/platform/). TrixiBottomTopography works with Julia v1.7.As TrixiBottomTopography is **not** a registered Julia package, you have to download it locally
```
git clone https://github.com/trixi-framework/TrixiBottomTopography.jl.git
```
and run it from within the cloned directory
```
julia --project=@.
```
to make use of the implemented functionalities.## Examples
To see a first example of `TrixiBottomTopography.jl` a default example has been implemented. First, load the package
```julia
julia> using TrixiBottomTopography
```
Then call the `T`rixi`B`ottom`T`opograpy `default example`
```julia
julia> TBT_default_example()
```
If the implementation was successful, the following window appears:![image](https://user-images.githubusercontent.com/101979498/203507049-279bc69b-3acc-4c55-888f-26e02c1edabe.png)
Further examples can be found in the [examples folder](https://github.com/trixi-framework/TrixiBottomTopography.jl/tree/main/examples) of this repository.
## Authors
`TrixiBottomTopography.jl` was developed by [Maximilian Dominique Bertrand](https://github.com/maxbertrand1996) (University of Cologne, Germany) with the help of [Andrew Winters](https://liu.se/en/employee/andwi94) (Linköping University, Sweden) and [Michael Schlottke-Lakemper](https://lakemper.eu/) (RWTH Aachen University, Germany).## License and contributing
`TrixiBottomTopography.jl` is published under the MIT license (see [License](https://github.com/trixi-framework/TrixiBottomTopography.jl/blob/main/LICENSE)). We
are pleased to accept contributions from everyone, preferably in the form of
a PR.