{"id":50751697,"url":"https://github.com/aspragueumkc/hydra2dgpu","last_synced_at":"2026-06-11T02:00:14.776Z","repository":{"id":363868615,"uuid":"1265295752","full_name":"aspragueumkc/hydra2dgpu","owner":"aspragueumkc","description":"GPU-accelerated 2D shallow water equation solver for QGIS — CUDA finite-volume method with unstructured mesh support","archived":false,"fork":false,"pushed_at":"2026-06-10T18:54:22.000Z","size":199032,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-10T19:06:53.029Z","etag":null,"topics":["cuda","finite-volume-method","gis","gpu-computing","hydraulic-modeling","hydrodynamics","qgis","shallow-water-equations"],"latest_commit_sha":null,"homepage":"https://github.com/aspragueumkc/hydra2dgpu","language":"Python","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/aspragueumkc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-06-10T16:36:55.000Z","updated_at":"2026-06-10T18:55:39.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/aspragueumkc/hydra2dgpu","commit_stats":null,"previous_names":["aspragueumkc/hydra2dgpu"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/aspragueumkc/hydra2dgpu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aspragueumkc%2Fhydra2dgpu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aspragueumkc%2Fhydra2dgpu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aspragueumkc%2Fhydra2dgpu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aspragueumkc%2Fhydra2dgpu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aspragueumkc","download_url":"https://codeload.github.com/aspragueumkc/hydra2dgpu/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aspragueumkc%2Fhydra2dgpu/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34178819,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"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"}},"keywords":["cuda","finite-volume-method","gis","gpu-computing","hydraulic-modeling","hydrodynamics","qgis","shallow-water-equations"],"created_at":"2026-06-11T02:00:13.809Z","updated_at":"2026-06-11T02:00:14.765Z","avatar_url":"https://github.com/aspragueumkc.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HYDRA — GPU-Accelerated 2D Shallow Water Equation Plugin for QGIS\n\n[MIT License](LICENSE)\n\nHYDRA is a QGIS plugin for 2D shallow water equation (SWE) modeling with a CUDA-accelerated finite-volume solver. It couples surface hydrodynamics, 1D urban drainage networks, hydraulic structures (weirs, culverts, gates, bridges, pumps), and rainfall/infiltration — all within the QGIS map canvas.\n\n## Features\n\n- **GPU-accelerated solver** — Full CUDA path with graph caching for high throughput\n- **Unstructured mesh FVM** — Triangles, quads, and general polygons via Gmsh, TQMesh, or structured backends\n- **Multiple spatial schemes** — First-order, MUSCL (Fast/MinMod/MC/Van Leer), WENO5\n- **Multiple temporal schemes** — Euler, RK2, RK4, Graph-safe RK4/RK5\n- **Boundary conditions** — Wall, inflow, stage, open, normal depth, hydrograph timeseries\n- **1D drainage coupling** — SWMM-style pipe networks (EGL, Diffusion, Dynamic wave)\n- **Hydraulic structures** — FHWA HDS-5 culverts, weirs, gates, bridges, pumps\n- **Rainfall \u0026 infiltration** — Rain-on-grid with SCS Curve Number\n- **Results export** — GeoPackage, HEC-RAS HDF5, UGRID NetCDF, GeoTIFF, CSV\n\n## Requirements\n\n| Component | Requirement |\n|---|---|\n| QGIS | 3.28+ |\n| Python | 3.12+ |\n| CUDA Toolkit | 11.x or 12.x |\n| NVIDIA GPU | Compute Capability ≥ 7.5 |\n| C++ Compiler | GCC 10+ or Clang 12+ (C++17) |\n| CMake | 3.16+ |\n\n## Quick Start\n\n```bash\n# Clone\ngit clone https://github.com/aspragueumkc/hydra2dgpu.git\ncd hydra2dgpu\n\n# Build\nmkdir build \u0026\u0026 cd build\ncmake .. -DCMAKE_BUILD_TYPE=Release\nmake -j$(nproc)\n```\n\nThen symlink or install the plugin root into your QGIS plugins directory and restart QGIS.\n\n### Python Dependencies\n\nAfter installing the plugin, install Python dependencies into your QGIS Python environment:\n\n```bash\n# Check which packages are installed\npython tools/check_deps.py\n\n# Install required + optional packages\npip install -r requirements.txt\n```\n\n| Package | Required | Purpose |\n|---------|----------|---------|\n| `numpy` | ✅ | Array operations, mesh data |\n| `gmsh` | ✅ | Unstructured mesh generation (Gmsh backend) |\n| `h5py` | ❌ | HEC-RAS HDF5 result export |\n| `netCDF4` | ❌ | UGRID NetCDF result export |\n| `matplotlib` | ❌ | In-plugin plotting |\n\n\u003e **Note**: `QGIS`, `PyQt5`, and `osgeo` (GDAL) are provided by QGIS itself — do **not** install these via pip.\n\n### Pre-compiled Binaries\n\nIf you don't want to build from source, download the pre-compiled binary for your platform from [GitHub Releases](https://github.com/aspragueumkc/hydra2dgpu/releases):\n\n1. Download `hydra2gpu-linux-x86_64.zip` or `hydra2gpu-windows-x86_64.zip`\n2. Extract the `plugin/` folder into your QGIS plugins directory\n3. Restart QGIS\n4. Run `pip install -r requirements.txt` in your QGIS Python environment\n\n## Documentation\n\n**[User Guide](docs/USER_GUIDE.md)** — Full documentation including installation, model setup, solver configuration, hydraulic theory, and API reference.\n\n## Repository Layout\n\n```\nswe2d/                   Python package (solver API, extensions, workbench)\n  core/                  Solver configuration and enums\n  runtime/               Backend creation and GPU interface\n  extensions/            Drainage, structures, rainfall modules\n  boundary_and_forcing/  BC sampling and hydrograph handling\n  mesh/                  Mesh I/O and topology\n  results/               Export (HDF5, NetCDF, GeoTIFF, CSV)\n  workbench/             QGIS workbench GUI methods\ncpp/src/                 CUDA/C++ solver, mesh, numerics, and bindings\nforms/                   Qt Designer UI files\ntests/                   Solver validation and GPU performance tests\ntools/                   Build helpers and dev utilities\ndocs/                    Design notes, architecture, and user guide\n```\n\n## Testing\n\n```bash\n# GPU validation suite (primary acceptance gate)\nPYTHONPATH=\"$PWD:$PWD/build\" python3 -m unittest -v tests.test_swe2d_gpu_validation_perf tests.test_swe2d_gpu_unstructured\n```\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faspragueumkc%2Fhydra2dgpu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faspragueumkc%2Fhydra2dgpu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faspragueumkc%2Fhydra2dgpu/lists"}