15 KiB
SimHydro 2023
#
#
#
1D hydro-sedimentary simulation at INRAE
COMMENT 1D river flow simulation
INRAE (Lyon-Villerbanne)
- Mage 1
- RubarBE [fn:: RubarBE: https://gitlab.irstea.fr/theophile.terraz/rubarbe]
Other project
- Mascaret 2
- HEC-RAS [fn:: HEC-RAS: https://www.hec.usace.army.mil/software/hec-ras]
- Mike 11 [fn:: Mike11: https://www.mikepoweredbydhi.com/products/mike-11]
{{{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}}}

{{{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>
OpenTeleMac: http://www.opentelemac.org