Pamhyr2/doc/paper/2023/simhydro/presentation/presentation.org

15 KiB

SimHydro 2023

#

#

#

1D hydro-sedimentary simulation at INRAE

COMMENT 1D river flow simulation

INRAE (Lyon-Villerbanne)

Other project

{{{pamhyr}}}

{{{pamhyr}}} developed at INRAE in Java since the end of 90s

Features

  • Graphical user interface
  • Define and edit complexe 1D river models
  • Run a solver
  • Visualize simulation results

Compatibility

  • 2 solvers Mage and RubarBE
  • Multi-platform (Linux / Windows)

{{{pamhyr}}}

Conception issues

  • Monolingual French
  • Interface too different for each solver
  • Impossible to undo an action

Huge technical debts

  • Out dated technologies (UML $\to$ Java)
  • Unmaintained library
  • Unstable development process

Hard to maintain or add features to the interface

(No modification since 2016)

Presentation of {{{pamhyr2}}}

{{{Pamhyr2}}} - Needs - General constraints

Create a new version of {{{pamhyr}}} called {{{pamhyr2}}}

{{{pause}}}

Constraints for users experience

  • User friendly
  • Multi platform (at least Linux and Windows)
  • Multi language (at least English and French)
  • Multi solver (as much as possible, at least Mage and RubarBE)
  • Single save file per study

{{{pause}}}

Constraints for developers experience

  • Common used code library and tools
  • Clear architecture
  • Free and open sources software (FOSS)

{{{Pamhyr2}}} - Needs - Features

{{{no}}}
  • Define and edit data

    • River network
    • Geometry
    • Boundary conditions
    • Friction
    • Initial conditions
    • Sedimentary layers
  • User meshed geometry
  • Run a solver
  • Display results

    • Default visualisation
    • Customized visualisation
{{{no}}}

/parouby/Pamhyr2/src/branch/master/doc/paper/2023/simhydro/images/geometry_saar.png

{{{pamhyr2}}} - Technical choices

Technologies

  • Python
  • PyQt
  • Qt Designer
  • Qt Linguist
  • Matplotlib
  • SQLite (as *.pamhyr)
  • GPLv3 license (strong copyleft)

Architecture

  • Qt Model/View
  • Multiple solvers configuration
  • Unified interface, as much as possible

{{{pamhyr2}}} - State of the project

{{{no}}}

\vspace{-1.5cm}

\begin{center} \emph{Last version:} \texttt{v0.0.3} \end{center}

{{{pause}}}

\textbf{Features}

\textbf{State}

Create save and load study {{{OK}}}
Undo/Redo actions {{{OK}}}
Edit river network {{{OK}}}
Edit geometry {{{OK}}}
Edit boundary conditions {{{OK}}}
Edit lateral contributions {{{OK}}}
Edit frictions (Stricklers) {{{OK}}}
Edit initial conditions {{{OK}}}
Edit sedimentary layers {{{OK}}}
Edit hydraulics structures
Edit suspended sediment
Edit polluant
Use meshing tool WIP
Run a solver {{{OK}}}
Read and display results {{{OK}}}
Customize results visualisation WIP
Generic solver input/output

{{{pause}}}

{{{no}}}

\vspace{2.5cm}

\textbf{Usage}

\textbf{Mage}

\textbf{RubarBE}

\textbf{Mascaret}

Hydraulics (mono reach) {{{OK}}} {{{OK}}}
Hydraulics (multi reach) {{{OK}}}
Bed load evolution {{{OK}}}

\textbf{Packages}

\textbf{GNU/Linux}

\textbf{Windows}

Archive (tar/zip) {{{OK}}} {{{OK}}}
Installer {{{OK}}}

Future work and perspective

Future work

Next step

  • Meshing tools integration
  • Custom results visualisation

    • Python + matplotlib script
  • RubarBE integration
  • Hydraulics structures
  • Unified graphics theme

Open questions

  • Generic solver input/output (HDF5? CGNS? SQLite?)
  • GNU/Linux packages (Pip? Conda? Guix? Deb?)

Contribution

\faIcon{gitlab} https://gitlab.com/pamhyr/pamhyr2/

For users

  • Try {{{pamhyr2}}}
  • Report bug
  • Propose improvement
  • Improve translation
  • Improve user documentation
  • Improve tests cases examples
  • Find better project name

For developers

  • Add new solver / features
  • Improve sources code
  • Improve developers documentation
  • Improve unit tests

Thanks for listening

\faIcon{gitlab} https://gitlab.com/pamhyr/pamhyr2/

Journées de la modélisation 1D hydro-sédimentaire (in French)

30 & 31 janvier 2024, INRAE Villeurbanne

Information and registration: <benoit.camenen@inrae.fr>

  • {{{pamhyr2}}} developers:

    • <pierre-antoine.rouby@inrae.fr>,
    • <theophile.terraz@inrae.fr>
  • Mage/RubarBE developer:

    • <theophile.terraz@inrae.fr>