Skip to content

Support explicit scheme for kinematic wave (CPU and GPU) #614

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
vers-w opened this issue May 20, 2025 · 0 comments
Open

Support explicit scheme for kinematic wave (CPU and GPU) #614

vers-w opened this issue May 20, 2025 · 0 comments
Labels
computing Related to computational issues routing Feature or improvement related to the routing (or horizontal component)

Comments

@vers-w
Copy link
Collaborator

vers-w commented May 20, 2025

Kinematic wave equations are solved with a nonlinear scheme using Newton's method, from upstream to downstream cells (the order of execution is important). For multi-threading and GPU support (#541) work (with a focus on local inertial routing), the finite difference representation for flow $q$ for the $n\text{th}$ cell at time $k$ used by the Grid-to-Grid model routing scheme is an interesting option:

$$ q^n_k = (1-\theta) q^n_{k-1} + \theta(q^{n-1}_{k-1} + u^n_k) $$

where $\theta = c \Delta{t}/\Delta{x}$ is the dimensionless wave speed ($c$ is the wave speed) and $u$ is total lateral inflow per unit length. For this formulation the order of execution is not important as the flow from cell $n$ at time $k$ depends on upstream inflow at the previous time ($q^{n-1}_{k-1}$) and flow from cell $n$ at the previous time ($q^n_{k-1}$).

@vers-w vers-w added computing Related to computational issues routing Feature or improvement related to the routing (or horizontal component) labels May 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
computing Related to computational issues routing Feature or improvement related to the routing (or horizontal component)
Projects
None yet
Development

No branches or pull requests

1 participant