Compare commits

..
8 Commits
Author SHA1 Message Date
Theophile Terraz eae1f83a73 remove GL doublons 2023-12-20 14:53:18 +01:00
Theophile Terraz a738bf3679 merge 2023-12-20 14:10:33 +01:00
Theophile Terraz 888002cd10 another purge criterion 2023-10-03 13:13:52 +02:00
Theophile Terraz e1880c6549 work on purge 2023-09-28 17:09:40 +02:00
Theophile Terraz 9f0caaaa69 Merge branch 'master' into mesh 2023-09-27 10:16:02 +02:00
Theophile Terraz fa35d49a42 add purge 2023-07-06 11:33:59 +02:00
Theophile Terraz 4935069864 add a basic st_to_m method 2023-07-05 15:49:30 +02:00
Theophile Terraz 6438d23304 begin interpolation 2023-06-28 15:32:24 +02:00
537 changed files with 12926 additions and 24865 deletions

No files matched your search

-233
View File
@@ -19,8 +19,6 @@ tmp
*.pdf
*.odt
!doc/**/*.pdf
doc/dev/images/auto_*
doc/dev/documentation.*
!doc/dev/*.org
@@ -270,7 +268,6 @@ flycheck_*.el
# End of https://www.toptal.com/developers/gitignore/api/emacs
# Created by https://www.toptal.com/developers/gitignore/api/qt
# Edit at https://www.toptal.com/developers/gitignore?templates=qt
@@ -646,233 +643,3 @@ TSWLatexianTemp*
*.glstex
# End of https://www.toptal.com/developers/gitignore/api/latex
# Created by https://www.toptal.com/developers/gitignore/api/intellij
# Edit at https://www.toptal.com/developers/gitignore?templates=intellij
### Intellij ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# AWS User-specific
.idea/**/aws.xml
# Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# SonarLint plugin
.idea/sonarlint/
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
### Intellij Patch ###
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
# *.iml
# modules.xml
# .idea/misc.xml
# *.ipr
# Sonarlint plugin
# https://plugins.jetbrains.com/plugin/7973-sonarlint
.idea/**/sonarlint/
# SonarQube Plugin
# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin
.idea/**/sonarIssues.xml
# Markdown Navigator plugin
# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced
.idea/**/markdown-navigator.xml
.idea/**/markdown-navigator-enh.xml
.idea/**/markdown-navigator/
# Cache file creation bug
# See https://youtrack.jetbrains.com/issue/JBR-2257
.idea/$CACHE_FILE$
# CodeStream plugin
# https://plugins.jetbrains.com/plugin/12206-codestream
.idea/codestream.xml
# Azure Toolkit for IntelliJ plugin
# https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij
.idea/**/azureSettings.xml
# End of https://www.toptal.com/developers/gitignore/api/intellij
# Created by https://www.toptal.com/developers/gitignore/api/visualstudiocode
# Edit at https://www.toptal.com/developers/gitignore?templates=visualstudiocode
### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets
# Local History for Visual Studio Code
.history/
# Built Visual Studio Code Extensions
*.vsix
### VisualStudioCode Patch ###
# Ignore all local history of files
.history
.ionide
# End of https://www.toptal.com/developers/gitignore/api/visualstudiocode
# Created by https://www.toptal.com/developers/gitignore/api/linux
# Edit at https://www.toptal.com/developers/gitignore?templates=linux
### Linux ###
*~
# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
# .nfs files are created when an open file is removed but is still being accessed
.nfs*
# End of https://www.toptal.com/developers/gitignore/api/linux
# Created by https://www.toptal.com/developers/gitignore/api/macos
# Edit at https://www.toptal.com/developers/gitignore?templates=macos
### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### macOS Patch ###
# iCloud generated files
*.icloud
# End of https://www.toptal.com/developers/gitignore/api/macos
# Created by https://www.toptal.com/developers/gitignore/api/windows
# Edit at https://www.toptal.com/developers/gitignore?templates=windows
### Windows ###
# Windows thumbnail cache files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
# Dump file
*.stackdump
# Folder config file
[Dd]esktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp
# Windows shortcuts
*.lnk
# End of https://www.toptal.com/developers/gitignore/api/windows
+60 -240
View File
@@ -1,5 +1,5 @@
# .gitlab-ci.yml -- Pamhyr gitlab-ci
# Copyright (C) 2023-2024 INRAE
# Copyright (C) 2023 INRAE
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -20,68 +20,45 @@ stages:
- test
- build
- package
- hash
- antivirus
- release
#############
# DOWNLOADS #
#############
variables:
MAGE_8_VERSION: "v8.3.6"
dl-mage8-doc:
dl-mage-linux:
stage: downloads
tags:
- linux
rules:
- if: $CI_COMMIT_BRANCH == 'ci-test' || $CI_COMMIT_BRANCH == 'master' || $CI_COMMIT_TAG
script:
- mkdir -p doc
- cd doc
- curl -L -o mage8.pdf https://gitlab.irstea.fr/jean-baptiste.faure/mage/-/releases/$MAGE_8_VERSION/downloads/documents/Mage-8_Documentation.pdf
- curl -L -o mage.tgz https://gitlab.irstea.fr/jean-baptiste.faure/mage/-/releases/v8.3.0/downloads/packages/mage_linux.tgz
- mkdir -p mage-linux
- cd mage-linux
- tar xvf ../mage.tgz
artifacts:
paths:
- doc/mage8.pdf
- mage-linux/mage
- mage-linux/mage_extraire
- mage-linux/mailleurPF
dl-mage8-linux:
dl-mage-windows:
stage: downloads
tags:
- linux
rules:
- if: $CI_COMMIT_BRANCH == 'ci-test' || $CI_COMMIT_BRANCH == 'master' || $CI_COMMIT_TAG
script:
- curl -L -o mage8.tgz https://gitlab.irstea.fr/jean-baptiste.faure/mage/-/releases/$MAGE_8_VERSION/downloads/packages/mage_linux.tgz
- mkdir -p mage8-linux
- cd mage8-linux
- tar xvf ../mage8.tgz
- curl -L -o mage.tgz https://gitlab.irstea.fr/jean-baptiste.faure/mage/-/releases/v8.3.0/downloads/packages/mage_windows.tgz
- mkdir -p mage-windows
- cd mage-windows
- tar xvf ../mage.tgz
artifacts:
paths:
- mage8-linux/mage
- mage8-linux/mage_as7
- mage8-linux/mage_extraire
- mage8-linux/mailleurTT
- mage8-linux/libbief.so
dl-mage8-windows:
stage: downloads
tags:
- linux
rules:
- if: $CI_COMMIT_BRANCH == 'ci-test' || $CI_COMMIT_BRANCH == 'master' || $CI_COMMIT_TAG
script:
- curl -L -o mage8.tgz https://gitlab.irstea.fr/jean-baptiste.faure/mage/-/releases/$MAGE_8_VERSION/downloads/packages/mage_windows.tgz
- mkdir -p mage8-windows
- cd mage8-windows
- tar xvf ../mage8.tgz
artifacts:
paths:
- mage8-windows/mage.exe
- mage8-windows/mage_as7.exe
- mage8-windows/mage_extraire.exe
- mage8-windows/mailleurTT.exe
- mage8-windows/libbief.dll
- mage-windows/mage.exe
- mage-windows/mage_extraire.exe
- mage-windows/mailleurPF.exe
#############
# CONFIGURE #
@@ -152,24 +129,7 @@ test-pep8:
# BUILD #
#########
# build-users-doc:
# stage: build
# tags:
# - linux
# needs:
# - job: set-version
# artifacts: true
# script:
# - cd ./doc/users/
# - ./build.sh
# artifacts:
# paths:
# - doc/users/documentation.pdf
# - doc/users/documentation.html
# - doc/users/images/
# allow_failure: true
build-td:
build-users-doc:
stage: build
tags:
- linux
@@ -177,13 +137,13 @@ build-td:
- job: set-version
artifacts: true
script:
- cd ./doc/users/Tuto1/
- cd ./doc/users/
- ./build.sh
artifacts:
paths:
- doc/users/Tuto1/step-by-step.pdf
- doc/users/Tuto1/pas-a-pas.pdf
- doc/users/Tuto1/data/
- doc/users/documentation.pdf
- doc/users/documentation.html
- doc/users/images/
allow_failure: true
build-developers-doc:
@@ -224,9 +184,7 @@ build-linux:
rules:
- if: $CI_COMMIT_BRANCH == 'ci-test' || $CI_COMMIT_BRANCH == 'master' || $CI_COMMIT_TAG
needs:
- job: dl-mage8-linux
artifacts: true
- job: dl-mage8-doc
- job: dl-mage-linux
artifacts: true
- job: set-version
artifacts: true
@@ -234,9 +192,7 @@ build-linux:
artifacts: true
- job: build-developers-doc
artifacts: true
# - job: build-users-doc
# artifacts: true
- job: build-td
- job: build-users-doc
artifacts: true
script:
- mkdir -p linux
@@ -251,32 +207,28 @@ build-linux:
- pyinstaller -y --paths linux-venv/lib/python3.8/site-packages ../src/pamhyr.py
# Create directory
- mkdir -p pamhyr
- mkdir -p pamhyr/_internal
- mkdir -p pamhyr/pamhyr
- mkdir -p pamhyr/pamhyr/_internal
# Copy Pamhyr info
- cp -v ../VERSION pamhyr/_internal/
- cp -v ../AUTHORS pamhyr/_internal/
- cp -v ../LICENSE pamhyr/_internal/
- cp -v ../src/motd.txt pamhyr/_internal/
- cp -v ../VERSION pamhyr/pamhyr/_internal/
- cp -v ../AUTHORS pamhyr/pamhyr/_internal/
- cp -v ../LICENSE pamhyr/pamhyr/_internal/
- cp -v ../src/motd.txt pamhyr/pamhyr/_internal/
# Copy mage
- mkdir -p pamhyr/mage8
- cp -v ../mage8-linux/* pamhyr/mage8/
- mkdir -p pamhyr/mage
- cp -v ../mage-linux/* pamhyr/mage/
# Copy Pamhyr
- cp -r dist/pamhyr/* pamhyr/
# Pamhyr script to force x11
- echo '#!/usr/bin/env bash' > pamhyr/pamhyr-x11
- echo "" >> pamhyr/pamhyr-x11
- echo "GDK_BACKEND=x11 ./pamhyr $@" >> pamhyr/pamhyr-x11
- chmod +x pamhyr/pamhyr-x11
- cp -r dist/pamhyr pamhyr/
# Copy Pamhyr resources
- mkdir -p pamhyr/_internal/View
- mkdir -p pamhyr/_internal/View/ui
- mkdir -p pamhyr/_internal/View/ui/Widgets
- cp -r ../src/View/ui/*.ui pamhyr/_internal/View/ui/
- cp -r ../src/View/ui/ressources/ pamhyr/_internal/View/ui
- cp -r ../src/View/ui/Widgets/*.ui pamhyr/_internal/View/ui/Widgets
- mkdir -p pamhyr/pamhyr/_internal/View
- mkdir -p pamhyr/pamhyr/_internal/View/ui
- mkdir -p pamhyr/pamhyr/_internal/View/ui/Widgets
- cp -r ../src/View/ui/*.ui pamhyr/pamhyr/_internal/View/ui/
- cp -r ../src/View/ui/ressources/ pamhyr/pamhyr/_internal/View/ui
- cp -r ../src/View/ui/Widgets/*.ui pamhyr/pamhyr/_internal/View/ui/Widgets
# Copy lang
- mkdir -p pamhyr/_internal/lang
- cp -r ../src/lang/*.qm pamhyr/_internal/lang
- mkdir -p pamhyr/pamhyr/_internal/lang
- cp -r ../src/lang/*.qm pamhyr/pamhyr/_internal/lang
# Copy tests cases
- mkdir -p pamhyr/tests_cases/
- mkdir -p pamhyr/tests_cases/Saar
@@ -285,25 +237,17 @@ build-linux:
- mkdir -p pamhyr/doc/
- mkdir -p pamhyr/doc/images/
- mkdir -p pamhyr/doc/html/
# - cp ../doc/users/documentation.pdf pamhyr/doc/Pamhyr2-users.pdf
# - cp ../doc/users/documentation.html pamhyr/doc/Pamhyr2-users.html
- cp ../doc/mage8.pdf pamhyr/doc/mage8.pdf
- cp ../doc/users/documentation.pdf pamhyr/doc/Pamhyr2-users.pdf
- cp ../doc/users/documentation.html pamhyr/doc/Pamhyr2-users.html
- cp ../doc/dev/documentation.pdf pamhyr/doc/Pamhyr2-dev.pdf
- cp ../doc/dev/documentation.html pamhyr/doc/Pamhyr2-dev.html
#- cp ../doc/users/images/* pamhyr/doc/images
- cp -r ../doc/dev/images/* pamhyr/doc/images
- cp -r ../doc/images/* pamhyr/doc/images
# Copy Tuto
- mkdir -p pamhyr/doc/Tuto1/
- mkdir -p pamhyr/doc/Tuto1/data
- cp ../doc/users/Tuto1/Hogneau_Engees2022.pdf pamhyr/doc/Tuto1/Hogneau_Engees2022.pdf
- cp ../doc/users/Tuto1/step-by-step.pdf pamhyr/doc/Tuto1/Tuto1-en.pdf
- cp ../doc/users/Tuto1/pas-a-pas.pdf pamhyr/doc/Tuto1/Tuto1-fr.pdf
- cp ../doc/users/Tuto1/*.pamhyr pamhyr/doc/Tuto1/
- cp ../doc/users/Tuto1/data/* pamhyr/doc/Tuto1/data/
# Copy TP charriage
- mkdir -p pamhyr/doc/TP_charriage/
- cp ../doc/users/TP_charriage/* pamhyr/doc/TP_charriage
- cp ../doc/dev/images/* pamhyr/doc/images
- cp ../doc/images/* pamhyr/doc/images
# Create running script
- echo "#!/bin/sh" > pamhyr/Pamhyr2
- echo "./pamhyr/pamhyr $@" >> pamhyr/Pamhyr2
- chmod u+x pamhyr/Pamhyr2
artifacts:
paths:
- linux/pamhyr
@@ -315,9 +259,7 @@ build-windows:
rules:
- if: $CI_COMMIT_BRANCH == 'ci-test' || $CI_COMMIT_BRANCH == 'master' || $CI_COMMIT_TAG
needs:
- job: dl-mage8-windows
artifacts: true
- job: dl-mage8-doc
- job: dl-mage-windows
artifacts: true
- job: set-version
artifacts: true
@@ -325,20 +267,16 @@ build-windows:
artifacts: true
- job: build-developers-doc
artifacts: true
# - job: build-users-doc
# artifacts: true
- job: build-td
- job: build-users-doc
artifacts: true
script:
- mkdir windows
- cd windows
# Setup env
- python -m pip install -U pip
- python -m pip install -r ..\requirements.txt
- python -m pip install -U -r ..\requirements.txt
# Run Pyinstaller
# - pyinstaller --noconsole -y ..\src\pamhyr.py
- pyinstaller -i ../src/View/ui/ressources/icon.ico --hide-console hide-early -y ..\src\pamhyr.py
- pyinstaller -y ..\src\pamhyr.py
# Create directory
- mkdir pamhyr
- dir
@@ -408,111 +346,6 @@ windows-package-exe:
- copy ..\packages\pamhyr.nsi pamhyr.nsi
- .\make-windows-exe.bat
########
# HASH #
########
linux-build-hash:
stage: hash
tags:
- release
- linux
needs:
- job: build-linux
artifacts: true
rules:
- if: $CI_COMMIT_BRANCH == 'ci-test' || $CI_COMMIT_BRANCH == 'master' || $CI_COMMIT_TAG
script:
- cd linux
- sha256sum -b pamhyr/pamhyr > pamhyr/pamhyr.sha256
artifacts:
paths:
- linux/pamhyr/pamhyr.sha256
windows-build-hash:
stage: hash
tags:
- release
- linux
needs:
- job: build-windows
artifacts: true
rules:
- if: $CI_COMMIT_BRANCH == 'ci-test' || $CI_COMMIT_BRANCH == 'master' || $CI_COMMIT_TAG
script:
- cd windows
- sha256sum -b pamhyr/pamhyr.exe > pamhyr/pamhyr.exe.sha256
artifacts:
paths:
- windows/pamhyr/pamhyr.exe.sha256
pkg-hash:
stage: hash
tags:
- release
- linux
needs:
- job: linux-package-tar
artifacts: true
- job: windows-package-zip
artifacts: true
- job: windows-package-exe
artifacts: true
rules:
- if: $CI_COMMIT_BRANCH == 'ci-test' || $CI_COMMIT_TAG
script:
- cd windows
- sha256sum -b pamhyr-windows.exe > pamhyr-windows.exe.sha256
- sha256sum -b pamhyr-windows.zip > pamhyr-windows.zip.sha256
- cd ..
- cd linux
- sha256sum -b pamhyr-gnulinux.tar.xz > pamhyr-gnulinux.tar.xz.sha256
artifacts:
paths:
- windows/pamhyr-windows.exe.sha256
- windows/pamhyr-windows.zip.sha256
- linux/pamhyr-gnulinux.tar.xz.sha256
#############
# ANTIVIRUS #
#############
build-check-clamav:
stage: antivirus
tags:
- release
- linux
needs:
- job: build-linux
artifacts: true
- job: build-windows
artifacts: true
rules:
- if: $CI_COMMIT_BRANCH == 'ci-test' || $CI_COMMIT_BRANCH == 'master' || $CI_COMMIT_TAG
script:
- cd packages
- ./clamav-scan.sh builds
allow_failure: true
pkg-check-clamav:
stage: antivirus
tags:
- release
- linux
needs:
- job: linux-package-tar
artifacts: true
- job: windows-package-zip
artifacts: true
- job: windows-package-exe
artifacts: true
rules:
- if: $CI_COMMIT_BRANCH == 'ci-test' || $CI_COMMIT_TAG
script:
- cd packages
- ./clamav-scan.sh packages
allow_failure: true
###########
# RELEASE #
###########
@@ -529,11 +362,9 @@ tag-release:
artifacts: true
- job: windows-package-exe
artifacts: true
# - job: build-users-doc
# artifacts: true
- job: build-developers-doc
- job: build-users-doc
artifacts: true
- job: pkg-hash
- job: build-developers-doc
artifacts: true
rules:
- if: $CI_COMMIT_TAG
@@ -542,44 +373,33 @@ tag-release:
- linux/pamhyr-gnulinux.tar.xz
- windows/pamhyr-windows.zip
- windows/pamhyr-windows.exe
- linux/pamhyr-gnulinux.tar.xz.sha256
- windows/pamhyr-windows.zip.sha256
- windows/pamhyr-windows.exe.sha256
- doc/dev/documentation.pdf
# - doc/users/documentation.pdf
- doc/users/documentation.pdf
script:
- cd packages
release:
name: '$CI_COMMIT_TAG'
description: '$CI_COMMIT_TAG_MESSAGE'
description: 'Automatic release from tag $CI_COMMIT_TAG'
tag_name: '$CI_COMMIT_TAG'
ref: '$CI_COMMIT_SHA'
assets:
links:
- name: 'GNU/Linux CHECKSUM SHA256 (tar.xz)'
url: '${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/linux/pamhyr-gnulinux.tar.xz.sha256'
filepath: '/linux/pamhyr-gnulinux.tar.xz.sha256'
link_type: 'package'
- name: 'GNU/Linux (tar.xz)'
url: '${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/linux/pamhyr-gnulinux.tar.xz'
filepath: '/linux/pamhyr-gnulinux.tar.xz'
link_type: 'package'
- name: 'Windows CHECKSUM SHA256 (exe)'
url: '${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/windows/pamhyr-windows.exe.sha256'
filepath: '/windows/pamhyr-windows.exe.sha256'
link_type: 'package'
- name: 'Windows (exe)'
url: '${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/windows/pamhyr-windows.exe'
filepath: '/windows/pamhyr-windows.exe'
link_type: 'package'
- name: 'Windows CHECKSUM SHA256 (zip)'
url: '${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/windows/pamhyr-windows.zip.sha256'
filepath: '/windows/pamhyr-windows.zip.sha256'
link_type: 'package'
- name: 'Windows (zip)'
url: '${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/windows/pamhyr-windows.zip'
filepath: '/windows/pamhyr-windows.zip'
link_type: 'package'
- name: 'User documentations (pdf)'
url: '${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/doc/users/documentation.pdf'
filepath: '/doc/users/documentation.pdf'
link_type: 'other'
- name: 'Dev documentations (pdf)'
url: '${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/doc/dev/documentation.pdf'
filepath: '/doc/dev/documentation.pdf'
+2 -2
View File
@@ -1,3 +1,3 @@
Sylvain COULIBALY, INRAE, 2020 - 2022
Théophile TERRAZ, INRAE, 2022 - 2024
Pierre-Antoine ROUBY, INRAE, 2023 - 2024
Théophile TERRAZ, INRAE, 2022 - 2023
Pierre-Antoine ROUBY, INRAE, 2023
+30 -20
View File
@@ -3,38 +3,48 @@
Pamhyr is a free and open source graphical user interface for 1D hydro-sedimentary
modelling of rivers.
![logo](https://gitlab.irstea.fr/theophile.terraz/pamhyr/-/raw/master/src/View/ui/ressources/Pamhyr2_logo.png)
## Features
+ Define a complex river hydraulics network
+ Edit a complex river hydraulics network
+ Define the river geometry
+ Define boundary conditions
+ Define lateral contribution
+ Define river friction
+ Define reservoirs
+ Define hydraulic structures
+ Define or generate initial conditions
+ Define river sedimentary layers
+ Edit river friction
+ Generate initial conditions
+ Edit river sedimentary layers
+ Save the study in a unique file
+ Run Mage 8 on a study and visualize results
Let see the
[documentation](https://gitlab.irstea.fr/theophile.terraz/pamhyr/-/wikis/home)
([:fr:](https://gitlab.irstea.fr/theophile.terraz/pamhyr/-/wikis/home-fr),
[:gb:](https://gitlab.irstea.fr/theophile.terraz/pamhyr/-/wikis/home-en))
for more details.
## Install
### GNU/Linux
See documentation:
- [French :fr:](https://gitlab.irstea.fr/theophile.terraz/pamhyr/-/wikis/home/fr/Install%20on%20GNULinux)
- [English :gb:](https://gitlab.irstea.fr/theophile.terraz/pamhyr/-/wikis/home/en/Install%20on%20GNULinux)
Downloads [last
realease](https://gitlab.irstea.fr/theophile.terraz/pamhyr/-/releases/permalink/latest)
GNU/Linux binary archive.
```shell
tar xf pamhyr-gnulinux-amd64.tar.xz
cd pamhyr
./pamhyr
```
### Windows
See documentation:
- [French :fr:](https://gitlab.irstea.fr/theophile.terraz/pamhyr/-/wikis/home/fr/Install%20on%20Windows)
- [English :gb:](https://gitlab.irstea.fr/theophile.terraz/pamhyr/-/wikis/home/en/Install%20on%20Windows)
Downloads [last
realease](https://gitlab.irstea.fr/theophile.terraz/pamhyr/-/releases/permalink/latest)
Windows installer.
### From source code
```shell
# Get source code
git clone https://gitlab.irstea.fr/theophile.terraz/pamhyr/
cd pamhyr
# Install dependencies
pip3 install -r requirements.txt
# Run pamhyr
./src/pamhyr.py
```
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+47 -84
View File
@@ -1,5 +1,5 @@
# documentation.org -- Pamhyr developers documentation
# Copyright (C) 2023-2024 INRAE
# Copyright (C) 2023 INRAE
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -369,7 +369,6 @@ of Bar (Listing [[sql-bar]] and [[sql-foo]]).
CREATE TABLE bar (
id INTEGER NOT NULL PRIMARY KEY,
x INTEGER NOT NULL,
y INTEGER NOT NULL,
foo_id INTEGER NOT NULL,
FOREIGN KEY(foo_id) REFERENCES foo(id),
)""")
@@ -456,15 +455,6 @@ of Bar (Listing [[sql-bar]] and [[sql-foo]]).
bar._sql_save(execute, data=data)
#+end_src
Let see the results database scheme for Pamhyr2 at version v0.0.7 in
Figure [[sql_schema]].
#+NAME: sql_schema
#+ATTR_LATEX: :width 16cm
#+CAPTION: SQLite database scheme at Pamhyr2 version v0.0.7 (generate with [[https://gitlab.com/Screwtapello/sqlite-schema-diagram]])
[[./images/schema_v0.0.7.png]]
[fn:sqlite] The SQLite web site: https://www.sqlite.org/index.html
(last access 2023-09-20)
@@ -548,44 +538,44 @@ generic value from optional parameters, for examples:
#+NAME: window
#+CAPTION: Example of Pamhyr2 window
#+begin_src python :python python3 :results output :noweb yes
from View.Tools.PamhyrWindow import PamhyrWindow
from View.My.Translate import MyTranslate
from View.My.Table import MyTableModel
from View.Tools.PamhyrWindow import PamhyrWindow
from View.My.Translate import MyTranslate
from View.My.Table import MyTableModel
class MyWindow(PamhyrWindow):
_pamhyr_ui = "MyUI"
_pamhyr_name = "My window"
class MyWindow(PamhyrWindow):
_pamhyr_ui = "MyUI"
_pamhyr_name = "My window"
def __init__(self, study=None, config=None,
my_data=None,
parent=None):
self._my_data = my_data
def __init__(self, my_data=None,
study=None, config=None,
parent=None):
self._my_data = my_data
super(MyWindow, self).__init__(
# Window title
title = self._pamhyr_name + " - " + study.name,
# Window standard data
study = study, config = config,
trad = MyTranslate(),
parent = parent,
# Activate undo/redo and copy/paste shortcut
options = ["undo", "copy"]
)
super(MyWindow, self).__init__(
# Window title
title = self._pamhyr_name + " - " + study.name,
# Window standard data
study = study, config = config,
trad = MyTranslate(),
parent = parent,
# Activate undo/redo and copy/paste shortcut
options = ["undo", "copy"]
)
# Add custom data to hash window computation
self._hash_data.append(self._my_data)
# Add custom data to hash window computation
self._hash_data.append(self._my_data)
# Setup custom window components
self.setup_table()
self.setup_connections()
# Setup custom window components
self.setup_table()
self.setup_connections()
def setup_table(self):
# Init table(s)...
def setup_table(self):
# Init table(s)...
def setup_connections(self):
# Init action connection(s)...
def setup_connections(self):
# Init action connection(s)...
# ...
# ...
#+end_src
Typically we called method =setup_*=, the method to initialize some
@@ -646,7 +636,7 @@ class AddNodeCommand(QUndoCommand):
self._node = node
def undo(self):
self._graph.remove_node(self._node)
self._graph.remove_node(self._node.name)
def redo(self):
self._graph.insert_node(self._node)
@@ -671,13 +661,11 @@ creation, this stack is accessible at =self._undo_stack=.
*** Plot
To define a new plot you can create a class who inherit to
PamhyrPlot. The creator need at leaste five argument:
To define a new plot you can create a class who inherit to APlot. The
creator need threee argument:
- A =canvas= of type =MplCanvas=
- A (optional) =trad= of type =PamhyrTranslate=
- A =data= used in =draw= and =update= to create and update the plot
- A optional =toolbar= of type =PamhyrToolbar=
- A =parent= window
This class must implement two method =draw= and =update=, the first
method to draw the plot from scratch, the second to update the plot if
data has changed.
@@ -685,36 +673,19 @@ data has changed.
#+begin_src python :python python3 :results output :noweb yes
from View.Tools.PamhyrPlot import PamhyrPlot
class MyPlot(PamhyrPlot):
def __init__(self, canvas=None, trad=None, toolbar=None
data=None, parent=None):
class MyPlot(APlot):
def __init__(self, canvas=None, data=None, toolbar=None):
super(MyPlot, self).__init__(
canvas=canvas,
trad=trad,
data=data,
toolbar=toolbar,
parent=parent
toolbar=toolbar
)
self.label_x = self._trad["x"]
self.label_y = self._trad["y"]
# Optional configuration
self._isometric_axis = False
self._auto_relim_update = True
self._autoscale_update = True
def draw(self):
# Draw function code...
def update(self):
def update(self, ind = None):
# Update function code...
def clear(self):
# Clear plot values...
# ...
#+end_src
** Solver
@@ -774,7 +745,7 @@ execute a code on distant computer, for example, over ssh.
style=dashed;
subgraph cluster021 {
label="Solver Classes";
//classSolverM7[label="Mage7", fillcolor=6];
classSolverM7[label="Mage7", fillcolor=6];
classSolverM8[label="Mage8", fillcolor=6];
classSolverR[label="RubarBE", fillcolor=6];
}
@@ -857,7 +828,7 @@ solver and get results:
- (2.1) The solver read the input file(s)
- (2.2) The solver compute results and write it to solver output
file(s)
- (3) Pamhyr2 create a =Results= object
- (3) Pamhyr2 create a Reuslts
- (3.1) The Pamhyr2 solver class read solver output file(s) and
complete Results with readed data
@@ -987,16 +958,8 @@ different methods:
** Unit tests
A very small part of Pamhyr2 has unit test. This part is limited to the Model.
#+begin_src shell
python3 -m venv test
. test test/bin/activate
pip3 install -U -r ./full-requirements.txt
cd src/
python3 -Walways -m unittest discovert -v -t .
#+end_src
The unit tests is actually not implemented in Pamhyr2, it is a *work
in progress*.
** The debug mode
@@ -1007,14 +970,14 @@ line:
./Pamhyr2 debug
#+end_src
This mode add some log and add two action in main window menu: "About
> Debug" open a window with Python Repl in current Python
environement, and "About > Debug SQLite" who open the application
This mode add some log and add two action in main window menu:
"About/Debug" open a window with Python Repl in current Python
environement, and "About/Debug SQLite" who open the application
SQLiteBrowser (if installed) on current Study to explore the study
data base file.
#+NAME: debug-repl
#+ATTR_LATEX: :width 14cm
#+ATTR_LATEX: :width 12cm
#+CAPTION: Pamhyr2 debug Python REPL
[[./images/python-debug-repl.png]]
@@ -1334,7 +1297,7 @@ https://gitlab.irstea.fr/theophile.terraz/pamhyr
You can improve or add translation for the project. To contribute to
Pamhyr2 translate, you need to use Qt Linguist[fn:qt-linguist]. Open
Qt-linguist and edit the translation ({{{file(.ts)}}}) file, finally,
Qt-linguist and edite the translation ({{{file(.ts)}}}) file, finally,
commit the new version of file and make a merge request.
If you want add a new language, edit the script
Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 224 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.
@@ -1,487 +0,0 @@
# presentation.org -- Pamhyr
# Copyright (C) 2023 INRAE
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# -*- coding: utf-8 -*-
#+STARTUP: indent hideblocks content beamer
#+TITLE: SimHydro 2023
#+SUBTITLE: \textbf{Pamhyr2}: a graphical user interface for 1D hydro-sedimentary modelling of rivers
# #+AUTHOR: Pierre-Antoine Rouby
#+LATEX_HEADER: \author[Pierre-Antoine Rouby]{\textbf{Pierre-Antoine Rouby$^{*}$}, Benoît Camenen, Lionel Pénard, Léa Kieffer, Théophile Terraz\\\texttt{<pierre-antoine.rouby@inrae.fr>}^{*}}
#+EMAIL: pierre-antoine.rouby@inrae.fr
#+INSTITUTE: INRAE Lyon-Villerbanne, teams River Hydraulics
#+LATEX_HEADER: \institute{INRAE Lyon-Villerbanne, River Hydraulics team}
#+DATE: 9th November
#+KEYWORDS: g ui, hydraulics, sedimentary, hydro-sedimentary, 1D modelling, freesoftware, foss
#+OPTIONS: H:2 toc:t num:t author:nil
#+LATEX_CLASS: beamer
#+LATEX_CLASS_OPTIONS: [slideopt,A4,showboxes,svgnames,aspectratio=169]
# #+LATEX_CLASS_OPTIONS: [presentation]
#+BEAMER_THEME: default
#+COLUMNS: %45ITEM %10BEAMER_ENV(Env) %10BEAMER_ACT(Act) %4BEAMER_COL(Col)
#+LANGUAGE: fr
#+LATEX_HEADER: \usepackage[frenchb]{babel}
#+BEGIN_SRC emacs-lisp :results silent :exports none
(setq org-latex-pdf-process (list
"latexmk -pdflatex='lualatex -shell-escape -interaction nonstopmode' -pdf -f %f"))
(add-to-list 'org-latex-packages-alist '("" "minted"))
(setq org-latex-listings 'minted)
(setq org-src-fontify-natively t)
(org-add-link-type
"cite" 'ebib
(lambda (path desc format)
(cond
((eq format 'html)
(format "(<cite>%s</cite>)" path))
((eq format 'text)
(format "[%s]" path))
((eq format 'latex)
(if (or (not desc) (equal 0 (search "cite:" desc)))
(format "\\cite{%s}" path)
(format "\\cite[%s][%s]{%s}"
(cadr (split-string desc ";"))
(car (split-string desc ";")) path))))))
#+END_SRC
#+LATEX_HEADER: \setbeamertemplate{footline}[frame number]
#+LATEX_HEADER: \setbeamertemplate{headline}{}
#+LATEX_HEADER: \usepackage{multirow}
#+LATEX_HEADER: \usepackage{fontawesome5}
#+LATEX_HEADER: \usepackage{tcolorbox}
#+LATEX_HEADER: \usepackage{tikz}
#+LATEX_HEADER: \logo{\includegraphics[width=.1\textwidth]{../../../../../src/View/ui/ressources/Logo-INRAE.png}}
#+LATEX_HEADER: \newcommand{\R}[1]{\rotatebox[origin=c]{90}{#1}}
# Beamer colors
#+LATEX_HEADER: \setbeamersize{text margin left=0.5cm,text margin right=0.5cm}
#+LATEX_HEADER: \setbeamerfont{alerted text}{series=\bfseries}
#+LATEX_HEADER: \setbeamerfont{example text}{series=\bfseries}
#+LATEX_HEADER: \definecolor{inrae_1}{RGB}{102,193,191}
#+LATEX_HEADER: \definecolor{inrae_2}{RGB}{0,150,152}
#+LATEX_HEADER: \definecolor{inrae_3}{RGB}{39,86,98}
#+LATEX_HEADER: \setbeamercolor{alerted text}{fg=inrae_1}
#+LATEX_HEADER: \setbeamercolor{structure}{fg=inrae_2}
#+LATEX_HEADER: \setbeamercolor{normal text}{fg=inrae_3}
#+LATEX_HEADER: \setbeamercolor*{author}{fg=inrae_3}
#+LATEX_HEADER: \usepackage[absolute,showboxes,overlay]{textpos}
#+LATEX_HEADER: \TPshowboxesfalse
#+LATEX_HEADER: \textblockorigin{5mm}{0mm}
# Biblio
#+LATEX_HEADER: \usepackage{natbib}
# #+LATEX_HEADER: \bibliographystyle{apalike}
#+LATEX_HEADER: \setbeamertemplate{bibliography item}{}
#+LATEX_HEADER: \renewcommand\bibfont{\scriptsize}
#+LATEX_HEADER: \setbeamertemplate{frametitle continuation}[from second]
#+LATEX_HEADER: \setbeamercolor*{bibliography entry title}{fg=inrae_3}
#+LATEX_HEADER: \setbeamercolor*{bibliography entry author}{fg=inrae_3}
#+LATEX_HEADER: \setbeamercolor*{bibliography entry location}{fg=inrae_3}
#+LATEX_HEADER: \usepackage{bbding}
#+LATEX_HEADER: \usepackage{pdfpages}
# Renew title page
#+LATEX_HEADER: \defbeamertemplate*{title page}{customized}[1][]
#+LATEX_HEADER: {
# #+LATEX_HEADER: {
# #+LATEX_HEADER: \usebeamerfont{date}\usebeamercolor[fg]{date}
# #+LATEX_HEADER: \tikz[overlay,remember picture]
# #+LATEX_HEADER: \node[xshift=-1cm,yshift=-1cm,text width=10cm] at (current page.north east) {
# #+LATEX_HEADER: 7$^{th}$ International Conference\\
# #+LATEX_HEADER: 8TH-10TH November\\
# #+LATEX_HEADER: EDF Lab - CHATOU, FRANCE
# #+LATEX_HEADER: }
# #+LATEX_HEADER: }
#+LATEX_HEADER: {
#+LATEX_HEADER: \usebeamerfont{title}\inserttitle\par
#+LATEX_HEADER: \usebeamerfont{title}\usebeamercolor[fg]{title}
#+LATEX_HEADER: \large New modeling paradigms for water issues?\par
#+LATEX_HEADER: }
#+LATEX_HEADER: \bigskip
#+LATEX_HEADER: \begin{center}
#+LATEX_HEADER: \usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}
#+LATEX_HEADER: {
#+LATEX_HEADER: \LARGE\insertsubtitle\par
#+LATEX_HEADER: }
#+LATEX_HEADER: \bigskip
#+LATEX_HEADER: \usebeamerfont{author}\usebeamercolor[fg]{author}\insertauthor\par
#+LATEX_HEADER: \bigskip
#+LATEX_HEADER: \usebeamerfont{institute}\usebeamercolor[fg]{institute}\insertinstitute\par
#+LATEX_HEADER: \bigskip
#+LATEX_HEADER: \usebeamerfont{date}\usebeamercolor[fg]{date}\insertdate\par
#+LATEX_HEADER: \usebeamercolor[fg]{titlegraphic}\inserttitlegraphic
#+LATEX_HEADER: \end{center}
#+LATEX_HEADER: }
# #+LATEX_HEADER: \newcommand{\tred}[1]{\textcolor{rouge_inrae}{#1}}
#+TODO: TODO WIP TOREVIEW | DONE
#+MACRO: pamhyr \textsc{PAMHyR}
#+MACRO: pamhyr2 \textsc{Pamhyr2}
#+MACRO: pause \pause
#+MACRO: framebreak \framebreak
#+MACRO: no
# #+MACRO: OK \checkmark
#+MACRO: OK \faIcon{check}
#+MACRO: bf \textbf{$1}
# #+latex: \frame{\tocpage}
* 1D hydro-sedimentary simulation at INRAE
** COMMENT 1D river flow simulation
*** INRAE (Lyon-Villerbanne)
- Mage [fn:: Mage: https://gitlab.irstea.fr/jean-baptiste.faure/mage]
- RubarBE [fn:: RubarBE:
https://gitlab.irstea.fr/theophile.terraz/rubarbe]
*** Other project
- Mascaret [fn:: OpenTeleMac: http://www.opentelemac.org]
- 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}}}
#+BEGIN_EXPORT latex
\tikz[overlay,remember picture]
\node[xshift=-4cm,yshift=4cm] at (current page.south east) {
\includegraphics[width=7cm]{../images/PAMHyR.png}
};
#+END_EXPORT
{{{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-reaches (Only for Mage)
- Multi-platform (Linux / Windows)
** {{{pamhyr}}}
#+BEGIN_EXPORT latex
\tikz[overlay,remember picture]
\node[xshift=-4cm,yshift=4cm] at (current page.south east) {
\includegraphics[width=7cm]{../images/PAMHyR.png}
};
#+END_EXPORT
*** 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
:PROPERTIES:
:BEAMER_COL: 0.5
:BEAMER_ENV: block
:END:
+ *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
:PROPERTIES:
:BEAMER_COL: 0.5
:BEAMER_ENV: block
:END:
- *Common used* code library and tools
# - *Modular* and *flexible* code
- *Clear* architecture
- *Free and open sources software* (FOSS)
** {{{Pamhyr2}}} - Needs - Features
# #+BEGIN_EXPORT latex
# \tikz[overlay,remember picture]
# \node[xshift=-5cm,yshift=-2cm] at (current page.north east) {
# \includegraphics[width=6cm]{../images/geometry_saar.png}
# };
# #+END_EXPORT
**** {{{no}}}
:PROPERTIES:
:BEAMER_COL: 0.30
:BEAMER_ENV: block
:END:
- 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}}}
:PROPERTIES:
:BEAMER_COL: 0.70
:BEAMER_ENV: block
:END:
[[../images/geometry_saar.png]]
** {{{pamhyr2}}} - Technical choices
#+BEGIN_EXPORT latex
\tikz[overlay,remember picture]
\node[xshift=-9.3cm,yshift=-4cm] at (current page.north east) {
\includegraphics[width=6.3cm]{../images/BC.png}
};
#+END_EXPORT
*** Technologies
:PROPERTIES:
:BEAMER_COL: 0.60
:BEAMER_ENV: block
:END:
- *Python*
- *PyQt*
- Qt Designer
- Qt Linguist
- *Matplotlib*
- SQLite (as =*.pamhyr=)
- *GPLv3* license (strong copyleft)
*** Architecture
:PROPERTIES:
:BEAMER_COL: 0.35
:BEAMER_ENV: block
:END:
- Qt Model/View
- Multiple solvers configuration
- *Unified interface*, as much as possible
** {{{pamhyr2}}} - State of the project
#+BEGIN_EXPORT latex
\tikz[overlay,remember picture]
\node[xshift=-4.5cm,yshift=-2.5cm] at (current page.north east) {
\includegraphics[width=8cm]{../images/apply_sedi.png}
};
#+END_EXPORT
*** {{{no}}}
:PROPERTIES:
:BEAMER_COL: 0.40
:BEAMER_ENV: block
:END:
\vspace{-1.5cm}
\begin{center}
\emph{Last version:} \texttt{v0.0.3}
\end{center}
{{{pause}}}
#+latex: \begin{center}
#+latex: \resizebox{0.9\columnwidth}{!}{
# #+caption: Tools by methods
#+name: tab:current-state
#+attr_latex: :align |l|c|
|---------------------------------+-----------------|
| {{{bf(Features)}}} | {{{bf(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 | |
|---------------------------------+-----------------|
#+latex: }
#+latex: \end{center}
{{{pause}}}
*** {{{no}}}
:PROPERTIES:
:BEAMER_COL: 0.60
:BEAMER_ENV: block
:END:
\vspace{2.5cm}
#+latex: \begin{center}
#+latex: \resizebox{0.8\columnwidth}{!}{
# #+caption: Tools by methods
#+name: tab:current-state-solver
#+attr_latex: :align |l|c|c|c|
|----------------------------+----------------+-------------------+--------------------|
| {{{bf(Usage)}}} | {{{bf(Mage)}}} | {{{bf(RubarBE)}}} | {{{bf(Mascaret)}}} |
|----------------------------+----------------+-------------------+--------------------|
| *Hydraulics* (mono reach) | {{{OK}}} | | {{{OK}}} |
| *Hydraulics* (multi reach) | {{{OK}}} | | |
| *Bed load evolution* | {{{OK}}} | | |
|----------------------------+----------------+-------------------+--------------------|
#+latex: }
#+latex: \end{center}
# #+LaTeX: \vspace{0.3cm}
#+latex: \begin{center}
#+latex: \resizebox{0.6\columnwidth}{!}{
# #+caption: Tools by methods
#+name: tab:current-state-package
#+attr_latex: :align |l|c|c|
|--------------------+---------------------+-------------------|
| {{{bf(Packages)}}} | {{{bf(GNU/Linux)}}} | {{{bf(Windows)}}} |
|--------------------+---------------------+-------------------|
| Archive (tar/zip) | {{{OK}}} | {{{OK}}} |
| Installer | | {{{OK}}} |
|--------------------+---------------------+-------------------|
#+latex: }
#+latex: \end{center}
* Future work and perspective
** Future work
#+BEGIN_EXPORT latex
\tikz[overlay,remember picture]
\node[xshift=-4.8cm,yshift=-3.8cm] at (current page.north east) {
\includegraphics[width=8.7cm]{../images/results_hydro.png}
};
#+END_EXPORT
*** 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
#+LaTeX: \begin{center}
\faIcon{gitlab} https://gitlab.irstea.fr/theophile.terraz/pamhyr/
#+LaTeX: \end{center}
*** For users
:PROPERTIES:
:BEAMER_COL: 0.45
:BEAMER_ENV: block
:END:
- Try {{{pamhyr2}}}
- Report bug
- Propose improvement
- Improve translation
- Improve user documentation
- Improve tests cases examples
- /Find better project name/
*** For developers
:PROPERTIES:
:BEAMER_COL: 0.45
:BEAMER_ENV: block
:END:
- Add new solver / features
- Improve sources code
- Improve developers documentation
- Improve unit tests
# * Conclusion
** Thanks for listening
# #+BEGIN_EXPORT latex
# \tikz[overlay,remember picture]
# \node[xshift=-6cm,yshift=-1.5cm,text width=10cm] at (current page.north east) {
# {\small\emph{\alert{Journées de la modélisation 1D hydro-sédimentaire} (in french) -}
# \emph{30 \& 31 janvier 2024, INRAE Villeurbanne - }
# \emph{Information and inscription: }\texttt{<benoit.camenen@inrae.fr>}}
# };
# #+END_EXPORT
#+LaTeX: \begin{center}
\faIcon{gitlab} https://gitlab.irstea.fr/theophile.terraz/pamhyr/
#+LaTeX: \end{center}
#+LaTeX: \begin{center}
/*Journées de la modélisation 1D hydro-sédimentaire*/ (in French)
#+LaTeX: \\
/30 & 31 janvier 2024/, INRAE Villeurbanne
#+LaTeX: \\
Information and registration: =<benoit.camenen@inrae.fr>=
#+LaTeX: \end{center}
- {{{pamhyr2}}} developers:
+ =<pierre-antoine.rouby@inrae.fr>=,
+ =<theophile.terraz@inrae.fr>=
- Mage/RubarBE developer:
+ =<theophile.terraz@inrae.fr>=
# #+LaTeX: \vspace{0.5cm}
# #+LaTeX: \begin{center}
# #+LaTeX: {\Large
# *Thanks for listening*
# #+LaTeX: }
# #+LaTeX: \end{center}
+2 -4
View File
@@ -11,8 +11,7 @@
\usepackage[absolute]{textpos}
\usepackage{titlesec}
\usepackage{amssymb}
\usepackage[minted,xparse,breakable]{tcolorbox}
\usepackage{pmboxdraw}
\usepackage{tcolorbox}
\usepackage{enumitem}
\setlist[enumerate]{itemsep=-0.5em}
@@ -134,7 +133,6 @@
\setminted[c]{fontsize=\footnotesize,encoding=utf8,linenos}
\setminted[c++]{breaklines,fontsize=\footnotesize,encoding=utf8,linenos}
\setminted[python]{breaklines,fontsize=\footnotesize,encoding=utf8,linenos}
\setminted[sql]{breaklines,fontsize=\footnotesize,encoding=utf8,linenos}
\setminted[shell]{breaklines,fontsize=\footnotesize,encoding=utf8}
\setminted[scheme]{breaklines,fontsize=\footnotesize,encoding=utf8}
\setminted[commun-lisp]{breaklines,fontsize=\footnotesize,encoding=utf8}
@@ -142,7 +140,7 @@
\setminted[llvm]{breaklines,fontsize=\footnotesize,encoding=utf8}
%% Add box arrond of minted
\BeforeBeginEnvironment{minted}{\begin{tcolorbox}[breakable, boxsep=0pt, left=0.1cm, right=0.1cm, arc=0pt, boxrule=0.5pt, colback=white]}%
\BeforeBeginEnvironment{minted}{\begin{tcolorbox}[boxsep=0pt, left=0.1cm, right=0.1cm, arc=0pt, boxrule=0.5pt, colback=white]}%
\AfterEndEnvironment{minted}{\end{tcolorbox}}%
\makeatletter
Binary file not shown.
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

File renamed without changes.
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

-6
View File
@@ -1,6 +0,0 @@
#! /bin/sh
pdflatex -no-shell-escape step-by-step.tex
pdflatex -no-shell-escape step-by-step.tex
pdflatex -no-shell-escape pas-a-pas.tex
pdflatex -no-shell-escape pas-a-pas.tex
File diff suppressed because it is too large. Load diff
+2
View File
@@ -0,0 +1,2 @@
0:00:00:00 15
0:00:01:00 15
+25
View File
@@ -0,0 +1,25 @@
**************** SINGULARITES **********************
*BieSec Nb Longueur Cote dev Cote charg Coef deb Impression
*===---===----------==========----------==========-----------------------------
*****************************************************
* Bief n° 1
*****************************************************
* Ouvrage au pk 36270.0 seuil_aval
*SeuilR type D
D 1 36270.00 18.250 15.500 0.000 0.400 99999.000 seuil palplanches
* Ouvrage au pk 31875.0 PontRS101
*OrificeR type O
O 1 31875.00 9.660 18.710 21.890 0.400 9999.000
*SeuilR type D
D 1 31875.00 14.000 22.890 0.000 0.400 99999.000
* Ouvrage au pk 34335.0 PontThivencelle
*SeuilR type D
D 1 34335.00 13.000 21.740 0.000 0.400 99999.000
*OrificeR type O
O 1 34335.00 9.070 17.280 20.740 0.400 9999.000
*****************************************************
* Bief n° 3
*****************************************************
* Ouvrage au pk 0.0 Orifice
*OrificeR type O
*O 3 0.000 6.000 19.000 19.001 0.400 20.000 Clapet_001
+2
View File
@@ -0,0 +1,2 @@
0:00:00:00 4
0:00:01:00 4
+24
View File
@@ -0,0 +1,24 @@
16,03 0
16,13 1,29
16,23 3,64
16,33 6,7
16,43 10,31
16,53 14,41
16,63 18,94
16,73 23,87
16,83 29,16
16,93 34,79
17,03 40,75
17,13 47,01
17,23 53,57
17,33 60,4
17,43 67,5
17,53 74,86
17,63 82,47
17,73 90,33
17,83 98,41
17,93 106,73
18,03 115,26
18,13 124,01
18,23 132,98
18,33 142,14
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Loaded 100 of 537 files, more files were not shown because too many files have changed in this diff. Show more