Compare commits

...

163 Commits

Author SHA1 Message Date
Theophile Terraz 243941db51 pep8 2025-06-24 14:19:10 +02:00
Theophile Terraz d6c1316178 undo command for reach selection in geometry 2025-06-24 11:22:00 +02:00
Theophile Terraz f35048b89f add reach selection in geometry 2025-06-23 18:07:46 +02:00
Theophile Terraz 24d92b2ac0 debug 2025-06-16 11:49:54 +02:00
Theophile Terraz c702862bc4 pep8 2025-06-10 09:10:58 +02:00
Theophile Terraz 400f6be9e3 add image icon 2025-06-06 17:53:24 +02:00
Theophile Terraz 5fc6951060 more work on import geo image 2025-06-06 17:32:02 +02:00
Theophile Terraz 5ba38d5cd6 test background img import 2025-06-06 10:16:44 +02:00
Theophile Terraz 3e8132646d debug 2025-06-05 11:01:46 +02:00
Theophile Terraz 5aef0bbf3c work on auto bondary and init cond 2025-05-26 14:53:47 +02:00
Theophile Terraz bb3dadc0c7 debug 2025-05-05 11:50:07 +02:00
Theophile Terraz 7bb176e7c7 debug 2025-05-05 11:32:51 +02:00
Theophile Terraz 8c16e4ed58 add guidelines in res view 2025-04-11 13:58:28 +02:00
Theophile Terraz e9315d9be7 improve previous commit 2025-03-20 11:14:43 +01:00
Theophile Terraz 46738cec6b enable multiple profiles in discharge visualization window 2025-03-19 16:55:09 +01:00
Theophile Terraz e576bb15f1 test gitlab-ci last solver version 2025-03-19 11:21:17 +01:00
Theophile Terraz 26d18d26e9 debug 2025-02-21 14:42:06 +01:00
Theophile Terraz 8bac416ab5 debug AdisTS BCs 2025-02-18 14:54:33 +01:00
Theophile Terraz e6aa840633 debug custom plot (time) 2025-02-17 10:02:44 +01:00
Theophile Terraz 4b976d3b5f add copy/paste in pollutant BC + debug 2025-02-17 09:43:02 +01:00
Theophile Terraz e3315c8f81 add 'cancel' button when closing Pamhyr2 from x button 2025-02-14 14:48:40 +01:00
Theophile Terraz 6bcbd006f1 debug 2025-02-14 14:39:25 +01:00
Theophile Terraz c60a0938eb pep8 2025-02-13 15:10:53 +01:00
Theophile Terraz 4d026afb2c debug CI 2025-02-13 14:49:17 +01:00
Theophile Terraz 4e888d9db0 more debug 2025-02-11 12:16:17 +01:00
Theophile Terraz 440996b636 debug 2025-02-11 11:59:58 +01:00
Theophile Terraz ed1a1a71ac debug 2025-02-11 10:20:12 +01:00
Theophile Terraz cbe3ad0084 debug adists windows 2025-02-06 14:46:34 +01:00
Theophile Terraz 46935fde45 forgotten file 2025-02-04 18:06:11 +01:00
Theophile Terraz ca8dc19c83 work on export CSV compare results 2025-02-04 16:24:42 +01:00
Theophile Terraz e4a31b3497 move custom export to sub folder 2025-02-04 14:31:17 +01:00
Theophile Terraz 406dc2bdd4 update tuto2 2025-02-04 14:07:56 +01:00
Theophile Terraz c325f61fce debug 2025-02-04 13:58:50 +01:00
Theophile Terraz d3729cfe77 cosmetic 2025-02-04 11:50:41 +01:00
Theophile Terraz fa8f07b97e work on multiple results plot 2025-02-04 11:12:56 +01:00
Theophile Terraz 52c153fa84 debug water fill 2025-02-03 11:46:55 +01:00
Theophile Terraz 21bd87f74b debug 2025-02-03 11:17:19 +01:00
Theophile Terraz 4d08f3c271 pep8 2025-02-03 10:09:45 +01:00
Theophile Terraz e44bbd5a3c unit translation 2025-02-03 09:45:19 +01:00
Theophile Terraz f827f6bf13 area unit for reservoirs 2025-02-03 09:34:34 +01:00
Theophile Terraz 4be68ba98d work on custom plots and exports aof compare results 2025-01-31 11:59:08 +01:00
Theophile Terraz e47edea63b debug custom plots (compare resuts) 2025-01-31 10:08:05 +01:00
Theophile Terraz 8daf89d1c4 debug read_bin when .bin does not exist 2025-01-31 10:07:32 +01:00
Theophile Terraz 0fa3ca5fad debug compare results 2025-01-30 12:31:02 +01:00
Theophile Terraz e3229c8183 debug plotH 2025-01-29 15:50:56 +01:00
Theophile Terraz c8606cf445 Merge branch 'master' into compare_results 2025-01-29 14:38:36 +01:00
Theophile Terraz 09029dc993 add copy AdisTS results table 2025-01-29 14:29:28 +01:00
Theophile Terraz 0a97070b90 add copy results table 2025-01-29 14:19:42 +01:00
Theophile Terraz 4f57179a2e add TP in Windows release 2025-01-28 14:01:07 +01:00
Theophile Terraz d0d7d91ab7 update tuto charriage 2025-01-28 11:57:49 +01:00
Theophile Terraz 8497d151ab Merge branch 'master' of gitlab.com:pamhyr/pamhyr2 2025-01-28 11:13:17 +01:00
Theophile Terraz 8a98f2bbca debug CI 2025-01-28 11:12:52 +01:00
Dorian Hernandez 181aea2805 Merge branch 'master' of https://gitlab.com/pamhyr/pamhyr2 2025-01-28 11:04:51 +01:00
Dorian Hernandez 6a762275b6 Mise-a-jour TP_AdisTS 2025-01-28 10:57:26 +01:00
Theophile Terraz a64430691c replace Lea's TP by Jerôme's 2025-01-28 10:54:44 +01:00
Theophile Terraz 3cd6d31731 debug windows paths 2025-01-28 10:04:12 +01:00
Theophile Terraz af30fde81a debug adis path windows 2025-01-27 17:57:44 +01:00
Theophile Terraz 589b8dcd23 compare_results: debug timestamps 2025-01-27 17:34:47 +01:00
Theophile Terraz 4e87135bf4 compare_results: debug timestamps + disable multiple selection for solver table 2025-01-27 11:48:25 +01:00
Theophile Terraz f636236935 debug open results multiple times 2025-01-27 11:04:13 +01:00
Theophile Terraz c3d732b426 merge master 2025-01-27 09:35:08 +01:00
Theophile Terraz 9b6abadb5a debug release 2025-01-23 16:57:03 +01:00
Theophile Terraz 686b01c43a Merge branch 'master' of gitlab.com:pamhyr/pamhyr2 2025-01-23 15:17:52 +01:00
Theophile Terraz 04afbf2f84 debug CI 2025-01-23 15:16:22 +01:00
Dorian Hernandez 75f2796748 Ajout du TP AdisTS dans la release 2025-01-23 14:29:07 +01:00
Dorian Hernandez 45179bc542 Ajout du TP AdisTS 2025-01-23 14:11:11 +01:00
Theophile Terraz 67729e94bf add Tuto 2 (thanks to Celine Berni) 2025-01-23 10:03:00 +01:00
Theophile Terraz c53e82a423 debug remove sediment 2025-01-22 16:01:59 +01:00
Theophile Terraz 02ccfa9ed7 disable custom plot adists 2025-01-22 11:59:39 +01:00
Theophile Terraz fc5de2a097 pep8 2025-01-22 11:46:08 +01:00
Theophile Terraz 0753c4e1b7 debug profile geometry window 2025-01-22 11:15:07 +01:00
Theophile Terraz d8c2634a66 debug 2025-01-22 09:13:13 +01:00
Theophile Terraz 6f7a891a6d optimization + debug 2025-01-20 16:24:17 +01:00
Theophile Terraz e4224e6358 force Mage sulver type in open from file 2025-01-17 13:54:27 +01:00
Theophile Terraz aa8a9dccbf translation 2025-01-17 12:00:42 +01:00
Theophile Terraz 1732e30e58 debug 2025-01-17 09:31:37 +01:00
Theophile Terraz 9eedd1fff9 debug results 2025-01-17 09:20:01 +01:00
Theophile Terraz ac6e8a3704 debug Adis-TS files generation 2025-01-16 15:54:50 +01:00
Theophile Terraz c5f918c885 pep8 2025-01-16 15:08:24 +01:00
Theophile Terraz 230712c3ea debug Adis-TS 2025-01-16 15:03:52 +01:00
Theophile Terraz 2e2f054a4f debug Adis-TS 2025-01-16 14:16:24 +01:00
Theophile Terraz 8913a774ea force Mage sulver type in open from file 2025-01-15 14:50:06 +01:00
Theophile Terraz 36c3785cde Merge branch 'master' into compare_results 2025-01-15 14:27:58 +01:00
Theophile Terraz f75a25d010 debug 2025-01-15 14:26:31 +01:00
Theophile Terraz 5ed905df71 Merge branch 'master' into compare_results 2025-01-15 14:25:12 +01:00
Theophile Terraz ea4fa81cc4 debug 2025-01-15 14:13:46 +01:00
Theophile Terraz 8862be991e Merge branch 'master' into compare_results 2025-01-15 14:08:02 +01:00
Theophile Terraz 8aea55909e debug 2025-01-15 14:07:19 +01:00
Theophile Terraz 1289967abb debug 2025-01-15 14:05:11 +01:00
Theophile Terraz 41d1fb9d59 put compare solvers in results window 2025-01-10 16:54:02 +01:00
Theophile Terraz 8d9a196059 merge 2025-01-09 13:47:26 +01:00
Theophile Terraz 9db90debeb translation 2024-12-20 17:13:44 +01:00
Theophile Terraz 2333ab540e debug 2024-12-20 15:54:25 +01:00
Theophile Terraz c81d65f527 rm test case 2024-12-20 15:49:30 +01:00
Theophile Terraz bf44f5c027 rm test case 2024-12-20 15:47:48 +01:00
Theophile Terraz d1400f12a6 debug 2024-12-20 15:41:19 +01:00
Theophile Terraz c610717220 pep8 2024-12-20 10:47:08 +01:00
Theophile Terraz 5edcf15072 Export Adis to csv 2024-12-20 10:05:56 +01:00
Theophile Terraz e4bffce6f4 debug node name in adis BC 2024-12-19 11:24:30 +01:00
Theophile Terraz 54fe032791 pep8 + colors + debug 2024-12-18 16:19:41 +01:00
Theophile Terraz c668dddcfd more work on adis results 2024-12-18 15:17:13 +01:00
Theophile Terraz bdc975f280 work on plot multiple lines 2024-12-17 16:22:07 +01:00
Theophile Terraz 4315fb94f3 debug last solver 2024-12-16 15:34:19 +01:00
Theophile Terraz eb1163f712 debug ci 2024-12-11 11:26:46 +01:00
Theophile Terraz 42f3c02c3e work on release 2024-12-09 17:17:28 +01:00
Theophile Terraz 31ebcf07e0 debug 2024-12-09 14:06:01 +01:00
Theophile Terraz 95612e8ce9 debug 2024-12-09 14:04:48 +01:00
Theophile Terraz e56d88937a pep8 2024-12-09 09:28:00 +01:00
Theophile Terraz 8c697a9621 debug incomplete database 2024-12-09 09:03:02 +01:00
Theophile Terraz 2d3747b3d3 add adists default path 2024-12-05 17:26:47 +01:00
Theophile Terraz b38e252746 cleaning 2024-12-05 16:50:10 +01:00
Theophile Terraz f1d6eb8990 more work on adists results 2024-12-05 16:03:40 +01:00
Theophile Terraz c2c77304d7 remove suspension BC in main window 2024-12-05 14:30:22 +01:00
Theophile Terraz 0b051ad3c6 debug adis BC 2024-12-05 13:38:22 +01:00
Theophile Terraz b72ffe03c3 more work on adis results 2024-12-04 16:09:33 +01:00
Theophile Terraz 01de0cfe93 remove empty tab 2024-12-04 12:01:46 +01:00
Theophile Terraz d6f152958f work on results adis 2024-12-04 11:59:02 +01:00
Theophile Terraz b85962bfcd work on results, type_pol 2024-12-03 14:59:38 +01:00
Theophile Terraz a1ae3f42f4 work on adis results 2024-12-02 15:07:50 +01:00
Theophile Terraz 21876586df debug read_bin 2024-12-02 13:48:57 +01:00
Theophile Terraz a317cd849f more pep8 2024-11-29 11:52:06 +01:00
Theophile Terraz 3b8a49d429 add src/View/ui/OutputRKAdisTS.ui 2024-11-29 09:31:03 +01:00
Theophile Terraz 872235e94f pep8 Model 2024-11-29 09:30:37 +01:00
Theophile Terraz da7ef60bef pep8 src/Solver/AdisTS.py 2024-11-28 14:32:45 +01:00
Theophile Terraz 824669f70f debug 2024-11-28 11:46:20 +01:00
Theophile Terraz 558085705f start to work on compare results 2024-11-28 09:20:20 +01:00
Youcef AOUAD 19a3f3d310 mass zero results fixed 2024-11-28 08:31:40 +01:00
Youcef AOUAD 49aab685fb to fix mass zero 2024-11-27 14:50:44 +01:00
Youcef AOUAD 4383599d30 node name fixed 2024-11-12 09:01:25 +01:00
Youcef AOUAD ae6bca3033 display results from main complete 2024-11-08 09:36:03 +01:00
Theophile Terraz 1266884f93 Merge branch 'terraz_dev' into adists_release 2024-11-07 16:29:19 +01:00
Theophile Terraz f91527464d Merge branch 'master' into terraz_dev 2024-11-07 16:28:24 +01:00
Theophile Terraz 58f72cfa6b add solver dirs in .gitignore 2024-11-07 16:28:07 +01:00
Youcef AOUAD 97f8a3ccde correction of results 2024-11-07 14:20:58 +01:00
Theophile Terraz 69134303d2 work on bed evolution visu 2024-11-06 17:52:11 +01:00
Theophile Terraz cef67540c2 debug 2024-11-06 13:40:16 +01:00
Theophile Terraz ff38571933 merge 2024-11-05 13:29:12 +01:00
Theophile Terraz 5d0109769d pep8 2024-11-05 11:25:10 +01:00
Theophile Terraz 6852b08cfc debug CI 2024-11-05 11:16:17 +01:00
Theophile Terraz 2896c604a5 export envelops to .csv 2024-11-04 17:44:30 +01:00
Theophile Terraz b21b6be9ca envelop optional 2024-11-04 16:32:44 +01:00
Theophile Terraz 5f043468ee add envelop in custom plots + optim + clean 2024-11-04 16:03:18 +01:00
Theophile Terraz e25a3ae98c debug 2024-11-04 10:44:09 +01:00
Theophile Terraz 4f69553bd3 merge 2024-10-31 14:02:38 +01:00
Theophile Terraz 38560cdcf5 translation 2024-10-30 17:42:28 +01:00
Theophile Terraz 7cd4d070ac switch axes in reservoirs 2024-10-30 17:33:30 +01:00
Theophile Terraz e6b36f3fe5 pep8 2024-10-30 17:29:01 +01:00
Theophile Terraz 36597d9b3d debug IC 2024-10-30 17:24:20 +01:00
Theophile Terraz c4e965a631 cleaning 2024-10-30 17:12:20 +01:00
Theophile Terraz 15da23183b debug VAR 2024-10-30 15:38:43 +01:00
Theophile Terraz 77baba0893 add XY geom view in main window 2024-10-30 12:00:45 +01:00
Theophile Terraz 55da743977 Merge branch 'master' into terraz_dev 2024-10-30 10:31:23 +01:00
Theophile Terraz a19ab7aa79 debug rubar 2024-10-30 10:31:11 +01:00
Theophile Terraz 29d4c7c146 Merge branch 'master' of gitlab-ssh.irstea.fr:theophile.terraz/pamhyr 2024-10-30 09:22:28 +01:00
Youcef AOUAD e711f0fb6f results from main solver type 2024-10-24 10:40:13 +02:00
Youcef AOUAD 36fd8cdc8a display adists results from main 2024-10-22 11:35:29 +02:00
Theophile Terraz 4a24e39224 Merge branch 'adists_release' into terraz_dev 2024-10-21 14:27:14 +02:00
Youcef AOUAD 97c161fc3f correct names nodes reaches 2024-10-21 14:21:25 +02:00
Theophile Terraz 00c43d91cd Merge branch 'master' of gitlab-ssh.irstea.fr:theophile.terraz/pamhyr into terraz_dev 2024-10-21 14:18:50 +02:00
Youcef AOUAD 100cfd095e db version fixed for adists files 2024-10-17 10:36:25 +02:00
Youcef AOUAD 5047dbc85e tables load fixed 2024-10-16 11:15:27 +02:00
Pierre-Antoine Rouby 69f40748e5 doc: dev: Update wine runner environement creation and minor change. 2024-10-15 10:25:19 +02:00
Theophile Terraz 37a9122aa8 debug td 2024-10-08 17:40:30 +02:00
234 changed files with 68866 additions and 6431 deletions

3
.gitignore vendored
View File

@ -41,6 +41,9 @@ __old__
*-venv
mage8
adists
### END CUSTOM ###
# Created by https://www.toptal.com/developers/gitignore/api/python

View File

@ -29,7 +29,8 @@ stages:
#############
variables:
MAGE_8_VERSION: "v8.3.6"
MAGE_8_VERSION: "permalink/latest"
ADISTS_VERSION: "permalink/latest"
dl-mage8-doc:
stage: downloads
@ -83,6 +84,34 @@ dl-mage8-windows:
- mage8-windows/mailleurTT.exe
- mage8-windows/libbief.dll
dl-adists-linux:
stage: downloads
tags:
- linux
rules:
- if: $CI_COMMIT_BRANCH == 'ci-test' || $CI_COMMIT_BRANCH == 'master' || $CI_COMMIT_TAG
script:
- mkdir -p adists-linux
- cd adists-linux
- curl -L -o adists https://gitlab.irstea.fr/jean-baptiste.faure/adists/-/releases/$ADISTS_VERSION/downloads/executables/adists
artifacts:
paths:
- adists-linux/adists
dl-adists-windows:
stage: downloads
tags:
- linux
rules:
- if: $CI_COMMIT_BRANCH == 'ci-test' || $CI_COMMIT_BRANCH == 'master' || $CI_COMMIT_TAG
script:
- mkdir -p adists-windows
- cd adists-windows
- curl -L -o adists.exe https://gitlab.irstea.fr/jean-baptiste.faure/adists/-/releases/$ADISTS_VERSION/downloads/executables/adists_win64.exe
artifacts:
paths:
- adists-windows/adists.exe
#############
# CONFIGURE #
#############
@ -177,13 +206,32 @@ build-td:
- job: set-version
artifacts: true
script:
- cd ./doc/users/Tuto1/
- cd ./doc/users/TP_Hydraulique_Hogneau/
- ./build.sh
artifacts:
paths:
- doc/users/Tuto1/step-by-step.pdf
- doc/users/Tuto1/pas-a-pas.pdf
- doc/users/Tuto1/data/
- doc/users/TP_Hydraulique_Hogneau/step-by-step.pdf
- doc/users/TP_Hydraulique_Hogneau/pas-a-pas.pdf
- doc/users/TP_Hydraulique_Hogneau/Tuto-2-fr.pdf
- doc/users/TP_Hydraulique_Hogneau/data/
allow_failure: true
build-td-2:
stage: build
tags:
- linux
needs:
- job: set-version
artifacts: true
script:
- cd ./doc/users/TP_AdisTS_Vieux_Rhone/
- ./build.sh
artifacts:
paths:
- doc/users/TP_AdisTS_Vieux_Rhone/pas-a-pas.pdf
- doc/users/TP_AdisTS_Vieux_Rhone/data/
- doc/users/TP_AdisTS_Vieux_Rhone/Sujet.pdf
- doc/users/TP_AdisTS_Vieux_Rhone/Vieux_Rhone_TP_AdisTS.pamhyr
allow_failure: true
build-developers-doc:
@ -224,6 +272,8 @@ build-linux:
rules:
- if: $CI_COMMIT_BRANCH == 'ci-test' || $CI_COMMIT_BRANCH == 'master' || $CI_COMMIT_TAG
needs:
- job: dl-adists-linux
artifacts: true
- job: dl-mage8-linux
artifacts: true
- job: dl-mage8-doc
@ -238,6 +288,8 @@ build-linux:
# artifacts: true
- job: build-td
artifacts: true
- job: build-td-2
artifacts: true
script:
- mkdir -p linux
- cd linux
@ -260,6 +312,9 @@ build-linux:
# Copy mage
- mkdir -p pamhyr/mage8
- cp -v ../mage8-linux/* pamhyr/mage8/
# Copy adists
- mkdir -p pamhyr/adists
- cp -v ../adists-linux/* pamhyr/adists/
# Copy Pamhyr
- cp -r dist/pamhyr/* pamhyr/
# Pamhyr script to force x11
@ -294,16 +349,22 @@ build-linux:
- 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/
- mkdir -p pamhyr/doc/TP_Hydraulique_Hogneau/
- mkdir -p pamhyr/doc/TP_Hydraulique_Hogneau/data
- cp ../doc/users/TP_Hydraulique_Hogneau/Hogneau_Engees2022.pdf pamhyr/doc/TP_Hydraulique_Hogneau/Hogneau_Engees2022.pdf
- cp ../doc/users/TP_Hydraulique_Hogneau/step-by-step.pdf pamhyr/doc/TP_Hydraulique_Hogneau/Tuto1-en.pdf
- cp ../doc/users/TP_Hydraulique_Hogneau/pas-a-pas.pdf pamhyr/doc/TP_Hydraulique_Hogneau/Tuto1-fr.pdf
- cp ../doc/users/TP_Hydraulique_Hogneau/Tuto-2-fr.pdf pamhyr/doc/TP_Hydraulique_Hogneau/Tuto2-fr.pdf
- cp ../doc/users/TP_Hydraulique_Hogneau/*.pamhyr pamhyr/doc/TP_Hydraulique_Hogneau/
- cp ../doc/users/TP_Hydraulique_Hogneau/data/* pamhyr/doc/TP_Hydraulique_Hogneau/data/
- mkdir -p pamhyr/doc/TP_AdisTS_Vieux_Rhone/
- mkdir -p pamhyr/doc/TP_AdisTS_Vieux_Rhone/data
- cp ../doc/users/TP_AdisTS_Vieux_Rhone/*.pdf pamhyr/doc/TP_AdisTS_Vieux_Rhone/
- cp ../doc/users/TP_AdisTS_Vieux_Rhone/data/* pamhyr/doc/TP_AdisTS_Vieux_Rhone/data/
- cp ../doc/users/TP_AdisTS_Vieux_Rhone/Vieux_Rhone_TP_AdisTS.pamhyr pamhyr/doc/TP_AdisTS_Vieux_Rhone/Vieux_Rhone_TP_AdisTS.pamhyr
# Copy TP charriage
- mkdir -p pamhyr/doc/TP_charriage/
- cp ../doc/users/TP_charriage/* pamhyr/doc/TP_charriage
- cp -r ../doc/users/TP_charriage/* pamhyr/doc/TP_charriage
artifacts:
paths:
- linux/pamhyr
@ -317,6 +378,8 @@ build-windows:
needs:
- job: dl-mage8-windows
artifacts: true
- job: dl-adists-windows
artifacts: true
- job: dl-mage8-doc
artifacts: true
- job: set-version
@ -329,6 +392,8 @@ build-windows:
# artifacts: true
- job: build-td
artifacts: true
- job: build-td-2
artifacts: true
script:
- mkdir windows
- cd windows

View File

@ -28,20 +28,6 @@
#+OPTIONS: toc:t
#+LANGUAGE: UKenglish
#+NAME: attr_wrap
#+HEADER: :var width="\\textwidth"
#+HEADER: :var caption=""
#+HEADER: :var smallcaption=""
#+HEADER: :var name=""
#+HEADER: :var data=""
#+HEADER: :var float="nil"
#+BEGIN_SRC sh :results output :exports none
echo "#+CAPTION[$smallcaption]: $caption"
echo "#+NAME: $name"
echo "#+ATTR_LATEX: :width $width :float $float"
echo "$data"
#+END_SRC
#+BEGIN_abstract
This document is for the use of developers. It describes the project
architecture, the tools available to assist development and
@ -54,13 +40,13 @@ documentation, translations or code.
* Introduction
Pamhyr2 is free and open source software (FOSS) graphical user
{{{pamhyr2}}} is free and open source software (FOSS) graphical user
interface (GUI) for 1D hydro-sedimentary modelling of rivers developed
in Python (with version 3.8). It use PyQt at version 5 and matplotlib
in version 3.4.1 or later for the user insterface (see
{{{file(/requirements.txt)}}} for details). The architecture of
project code follow the Qt Model/View architecture [fn:qt-arch] (see
details in section [[Architecture]]). Pamhyr2 packages can be build
details in section [[Architecture]]). {{{pamhyr2}}} packages can be build
manually (see section [[Building packages]]), but there are automatically
build with the gitlab-ci (see the section [[Setup the CI
environment]]). Documentation files are written with org-mode[fn:org],
@ -75,7 +61,7 @@ https://doc.qt.io/qt-5/model-view-programming.html (last access
* Architecture
Pamhyr2's architecture is based on Qt Model/View, see Figure
{{{pamhyr2}}}'s architecture is based on Qt Model/View, see Figure
[[graph-architecture]]. It is made up of several different components: the
model (in blue), the graphical components (in red), the
actions/delegates (in green), the commands (in purple), the solvers
@ -178,7 +164,7 @@ https://doc.qt.io/qt-5/model-view-programming.html
** Model
The model is a set of Python classes. In Pamhyr2, this classes must
The model is a set of Python classes. In {{{pamhyr2}}}, this classes must
respect some constraint. Each model class must inherits
=Model.Tools.SQLSubModel= abstract class, except the =Model.Study=
class who inherits =Model.Tools.SQLModel= (see [[SQL]]).
@ -456,12 +442,12 @@ 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
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]])
#+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]]
@ -486,7 +472,7 @@ PamhyrModelList but use a dictionary instead of list.
** View
Pamhyr2 use Qt as graphical user interface library with the
{{{pamhyr2}}} use Qt as graphical user interface library with the
application "Qt designer" for windows or widget creation (see [[UI file]])
and "Qt linguist" for interface translate (see [[Translate]]). In
addition, we use matplotlib as ploting library (see [[Plot]]).
@ -501,11 +487,11 @@ componant translate, and possible other files or sub-directories.
*** UI file
We define as possible all Pamhyr2 windows and custom widgets with "Qt
designer". This application generate UI file who describes interface
organisation with table, layout, button, etc. This method is faster
than hand made windows and widget creation, and saves us some purely
descriptive code. The UI files are saved into =src/View/ui= for
We define as possible all {{{pamhyr2}}} windows and custom widgets
with "Qt designer". This application generate UI file who describes
interface organisation with table, layout, button, etc. This method is
faster than hand made windows and widget creation, and saves us some
purely descriptive code. The UI files are saved into =src/View/ui= for
window, and =/src/View/ui/Widgets= for custom widget.
*** Translate
@ -533,10 +519,11 @@ window, and =/src/View/ui/Widgets= for custom widget.
*** Window
The abstract class PamhyrWindow and PamhyrDialog are used for most of
Pamhyr2 window. These class allow to create an window for Pamhyr2 GUI
and implemente some useful methods. The super class method difine some
generic value from optional parameters, for examples:
The abstract class =PamhyrWindow= and =PamhyrDialog= are used for most
of {{{pamhyr2}}} window. These class allow to create an window for
{{{pamhyr2}}} GUI and implemente some useful methods. The super class
method difine some generic value from optional parameters, for
examples:
- =self._study=: The study giving in constructor parameters =study=
(typically a =Model.Study= class object)
- =self._config=: The configuration giving in constructor parameters
@ -546,7 +533,7 @@ generic value from optional parameters, for examples:
object)
#+NAME: window
#+CAPTION: Example of Pamhyr2 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
@ -593,7 +580,7 @@ window componants or connections.
*** Table
An abstract class PamhyrTableModel is available to define a simple
An abstract class =PamhyrTableModel= is available to define a simple
QAbstractTableModel shortly. In simple cases, there are only =data=
and =setData= methode to implement, but the constructor needs more
information than a classic QAbstractTableModel class.
@ -654,7 +641,7 @@ class AddNodeCommand(QUndoCommand):
All undo command must be push into a =QUndoStack= (see Listing
[[undo-cmd-push]]) to perform the action and allow user undo and redo this
action. In PamhyrWindow (and PamhyrDialog) the undo stack is
action. In =PamhyrWindow= (and =PamhyrDialog=) the undo stack is
automatically create if the option ="undo"= is activate at window
creation, this stack is accessible at =self._undo_stack=.
@ -672,7 +659,7 @@ 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:
=PamhyrPlot=. The creator need at leaste five 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
@ -719,8 +706,8 @@ data has changed.
** Solver
The Pamhyr2 architecture allow to define multiple solver. A solver is
define by a:
The {{{pamhyr2}}} architecture allow to define multiple solver. A
solver is define by a:
- type
- name
- description,
@ -736,11 +723,11 @@ different solver type, this solver type implement the code for export
study to solver input format, and read the solver output to study
results. There exists a generic solver with a generic input and output
format, the type could be use to use a solver not implemented in
Pamhyr2, but this solver must can read/write input and output generic
format or use external script. There is possible to define different
solver with the same type, for example two differents version of the
same solver. Finaly, with input and output formater is possible to
execute a code on distant computer, for example, over ssh.
{{{pamhyr2}}}, but this solver must can read/write input and output
generic format or use external script. There is possible to define
different solver with the same type, for example two differents
version of the same solver. Finaly, with input and output formater is
possible to execute a code on distant computer, for example, over ssh.
#+name: graph-multi-solver
#+header: :results drawer
@ -857,8 +844,8 @@ 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.1) The Pamhyr2 solver class read solver output file(s) and
- (3) {{{pamhyr2}}} create a =Results= object
- (3.1) The {{{pamhyr2}}} solver class read solver output file(s) and
complete Results with readed data
#+name: graph-pipeline
@ -976,7 +963,7 @@ the temporal order of action is prensented in Figure
}
#+end_src
To implement a Solver in Pamhyr2, there exists a abstract class
To implement a Solver in {{{pamhyr2}}}, there exists a abstract class
=Solver.AbstractSolver=. A class who herits this class, must implement
different methods:
- =export=: Export the study to solver input file(s)
@ -987,7 +974,7 @@ different methods:
** Unit tests
A very small part of Pamhyr2 has unit test. This part is limited to the Model.
A very small part of {{{pamhyr2}}} has unit test. This part is limited to the Model.
#+begin_src shell
python3 -m venv test
@ -1000,9 +987,9 @@ A very small part of Pamhyr2 has unit test. This part is limited to the Model.
** The debug mode
To activate an deactivate the Pamhyr2 debug mode you can open the
configuration window and type "Ctrl+G" or run Pamhyr2 with command
line:
To activate an deactivate the {{{pamhyr2}}} debug mode you can open
the configuration window and type "Ctrl+G" or run {{{pamhyr2}}} with
command line:
#+begin_src shell
./Pamhyr2 debug
#+end_src
@ -1015,7 +1002,7 @@ data base file.
#+NAME: debug-repl
#+ATTR_LATEX: :width 14cm
#+CAPTION: Pamhyr2 debug Python REPL
#+CAPTION: {{{pamhyr2}}} debug Python REPL
[[./images/python-debug-repl.png]]
* Build the project
@ -1028,7 +1015,7 @@ to build packages manually.
If you need an hand made package, you can script available in
{{{file(packages)}}} directory.
*** GNU/Linux
*** GNU/Linux {{{linux}}}
On GNU/Linux building GNU/Linux packages is easy, you just need python
in version 3.8 must be installed with venv and pyinstaller packages
@ -1050,7 +1037,7 @@ cd packages
./linux.sh
#+end_src
*** Windows
*** Windows {{{windows}}}
To make the Windows packages you have two choice: If you use Windows
you can use the script {{{file(packages/windows.bat)}}}, other else
@ -1065,10 +1052,10 @@ winetricks installed.
** Setup the CI environment
Pamhyr2 need a Linux ci-runner and a Windows ci-runner for building
{{{pamhyr2}}} need a Linux ci-runner and a Windows ci-runner for building
package. The windows ci-runner could run on a Wine environement.
*** Linux
*** Linux {{{linux}}}
The Linux ci-runner need some software and dependencies in addtion of
gitlab-ci.
@ -1078,10 +1065,11 @@ gitlab-ci.
emacs emacs-goodies-el \
texlive-full \
python3.8 python3.8-venv
sudo python3 -m pip install pyinstaller
#+end_src
*** Windows (Wine)
*** Windows (Wine) {{{windows}}}
The ci-runner environment for Wine need at least wine version 8, let
[[https://www.numetopia.fr/comment-installer-wine-sur-ubuntu-ou-linux-mint/][see who to add wine official depot to your linux distribution]].
@ -1090,18 +1078,77 @@ The ci-runner environment for Wine need at least wine version 8, let
sudo apt install wine-stable winetricks
#+end_src
In addition, the environment need windows version of:
- [[https://www.python.org/ftp/python/3.8.10/python-3.8.10-amd64.exe][Python 3.8.10]]
- Git
- PowerShell
- Gitlab-ci
**** Setup environment
Export Wine environment variable to set wine as 64 bits architecture
and set the correct path for wine environment.
#+begin_src shell
export WINARCH=win64
export WINEPREFIX=$PWD/my-wine-runner-prefix
#+end_src
Setup Wine environment to Windows 10 and install the minimal fonts
with =winetricks=.
#+begin_src shell
winetricks corefonts win10
#+end_src
**** Install dependencies
First install 7zip with help of =winetricks=.
#+begin_src shell
winetricks 7zip
#+end_src
In addition, install in the environment the Windows version of:
- [[https://www.python.org/ftp/python/3.8.10/python-3.8.10-amd64.exe][Python 3.8.10]] (ensure the python path is set and Pip is enable)
- [[https://git-scm.com/downloads][Git]]
- [[https://github.com/PowerShell/PowerShell/releases/download/v7.0.1/PowerShell-7.0.1-win-x64.msi][PowerShell]]
- [[https://freefr.dl.sourceforge.net/project/nsis/NSIS%203/3.08/nsis-3.08-setup.exe][Nsis]]
To run a Windows executable into wine environement, use =wine64= command:
#+begin_src shell
wine64 <the-exe-file>
#+end_src
Now, we can install =pyinstaller= on this windows environment:
#+begin_src shell
wine python -m pip install pyinstaller
#+end_src
Now, we can download [[https://docs.gitlab.com/runner/install/windows.html][Gitlab-ci]] runner for Windows an put it in the
current path.
**** Setup runner
You can configure the runner with command:
#+begin_src shell
wine64 gitlab-runner-windows-amd64.exe register
#+end_src
**** Run the runner
Create a new executable shell script =runner.sh= with following lines:
#+begin_src shell
#! /bin/sh
export WINARCH=win64
export WINEPREFIX=$PWD/my-wine-runner-prefix
wine64 gitlab-runner-windows-amd64.exe run
#+end_src
Now you can run the runner with command =./runner.sh=.
{{{bulb}}} You can run this command into a =screen= terminal, detach
the terminal and disconnect from runner machine to keep runner alive.
* Documentation files
This document and the user documentation are org files. This text file
@ -1284,23 +1331,23 @@ Some org-mode configuration used in documentations files are define in
* How to contribute?
Pamhyr2 is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License[fn:license], either
version 3 of the License, or any later version.
{{{pamhyr2}}} is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License[fn:license],
either version 3 of the License, or any later version.
[fn:license] The GPLv3 web page:
https://www.gnu.org/licenses/gpl-3.0.en.html
** Guidelines
To contribute to Pamhyr2, we expect a minimum of respect between
To contribute to {{{pamhyr2}}}, we expect a minimum of respect between
contributors. We therefore ask you to respect the following rules
regarding communication and contribution content:
+ No gender, racial, religious or social discrimination
+ No insults, personal attacks or potentially offensive remarks
+ Pamhyr2 is free software, and intended to remain so, so take care
with the licensing of libraries and external content you want to add
to the project
+ {{{pamhyr2}}} is free software, and intended to remain so, so take
care with the licensing of libraries and external content you want
to add to the project
+ Humour or hidden easter eggs are welcome if they respect the
previous rules
@ -1311,11 +1358,12 @@ an issue on the project's gitlab page[fn:p2-gitlab], or you can create
a merge request on the same page with the changes you have made to the
code, translation or documentation.
The Pamhyr2 copyright is owned by INRAE[fn:inrae], but we keep a
record of each contributors. If you made a modification to pamhyr2
software, please add your name at the end of {{{file(AUTHORS)}}} file
and respect the Listing [[auth-format]] format. You can update this file
information for following contribution.
The {{{pamhyr2}}} copyright is owned by INRAE[fn:inrae], but we keep a
record of each contributors. If you made a modification to
{{{pamhyr2}}} software, please add your name at the end of
{{{file(AUTHORS)}}} file and respect the Listing [[auth-format]]
format. You can update this file information for following
contribution.
#+NAME: auth-format
#+CAPTION: =AUTHORS= file format
@ -1326,16 +1374,17 @@ information for following contribution.
#+CAPTION: Current =AUTHORS= file
#+INCLUDE: "../../AUTHORS" src text
[fn:p2-gitlab] The Pamhyr2 Gitlab project page:
https://gitlab.irstea.fr/theophile.terraz/pamhyr
[fn:p2-gitlab] The {{{pamhyr2}}} Gitlab project page:
https://gitlab.com/pamhyr/pamhyr2
[fn:inrae] The INRAE web site: https://www.inrae.fr/
** Translate
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,
commit the new version of file and make a merge request.
{{{pamhyr2}}} translate, you need to use Qt
Linguist[fn:qt-linguist]. Open Qt-linguist and edit 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
{{{file(src/lang/create_ts.sh)}}} like Listing [[ts-it]]. Run the script
@ -1344,7 +1393,7 @@ and open the new file with Qt-linguist, setup target language (Figure
file and make a merge request.
#+NAME: ts-it
#+CAPTION: Example of modified {{{file(src/lang/create_ts.sh)}}} to add italian (it) translate for Pamhyr2
#+CAPTION: Example of modified {{{file(src/lang/create_ts.sh)}}} to add italian (it) translate for {{{pamhyr2}}}
#+begin_src shell
...
LANG="fr it"
@ -1362,7 +1411,7 @@ https://doc.qt.io/qt-5/qtlinguist-index.html (last access 2023-09-18)
** Code contribution
If you are developper you can improve and/or add features to
Pamhyr2. Please, follow the architecture described in section
{{{pamhyr2}}}. Please, follow the architecture described in section
[[Architecture]] as closely as possible. Keep the code simple, clear and
efficient as possible. The master branch is reserved for the project
maintainer; you can create a new branch or fork the project before the

View File

@ -424,7 +424,7 @@ Create a new version of {{{pamhyr}}} called {{{pamhyr2}}}
** Contribution
#+LaTeX: \begin{center}
\faIcon{gitlab} https://gitlab.irstea.fr/theophile.terraz/pamhyr/
\faIcon{gitlab} https://gitlab.com/pamhyr/pamhyr2/
#+LaTeX: \end{center}
*** For users
@ -462,7 +462,7 @@ Create a new version of {{{pamhyr}}} called {{{pamhyr2}}}
# #+END_EXPORT
#+LaTeX: \begin{center}
\faIcon{gitlab} https://gitlab.irstea.fr/theophile.terraz/pamhyr/
\faIcon{gitlab} https://gitlab.com/pamhyr/pamhyr2/
#+LaTeX: \end{center}
#+LaTeX: \begin{center}

View File

@ -163,3 +163,7 @@
\SetWatermarkScale{3}
\SetWatermarkFontSize{1cm}
\SetWatermarkText{Work in progress}
%% Icons
\usepackage{fontawesome5}

View File

@ -17,11 +17,15 @@
# -*- coding: utf-8 -*-
# Constant name
#+MACRO: oldPamhyr PAMHyR
#+MACRO: Pamhyr Pamhyr2
#+MACRO: Mage Mage
#+MACRO: Rubarbe RubarBE
#+MACRO: Inrae INRAE
#+MACRO: pamhyr \textsc{PAMHyR}
#+MACRO: pamhyr2 \textsc{Pamhyr2}
#+MACRO: mage \textsc{Mage}
#+MACRO: mage7 \textsc{Mage7}
#+MACRO: mage8 \textsc{Mage8}
#+MACRO: rubarbe \textsc{RubarBE}
#+MACRO: adists \textsc{AdisTS}
#+MACRO: mascaret \textsc{Mascaret}
#+MACRO: inrae INRAE
#+MACRO: latex \LaTeX
# Information
@ -35,6 +39,16 @@
#+MACRO: cite [cite:$1]
#+MACRO: biblio \bibliography{documentation}
# Icons
#+MACRO: bulb \faIcon{lightbulb}
#+MACRO: OK \faIcon{check}
#+MACRO: linux \faIcon{linux}
#+MACRO: windows \faIcon{windows}
#+MACRO: python \faIcon{python}
#+MACRO: java \faIcon{java}
# Wrapper
#+NAME: attr_wrap
#+HEADER: :var width="\\textwidth"

View File

@ -0,0 +1,68 @@
@article{camenen_simple_2007,
title = {Simple and {General} {Formula} for the {Settling} {Velocity} of {Particles}},
volume = {133},
language = {en},
number = {2},
urldate = {2025-01-23},
journal = {Journal of Hydraulic Engineering},
author = {Camenen, Benoit},
month = feb,
year = {2007},
pages = {229-233},
}
@article{meyer-peter_formulas_1948,
address = {Stockholm, Sweden},
title = {Formulas for bed-load transport.},
journal = {Report on Second Meeting of IAHR},
author = {Meyer-Peter, E and Mueller, R},
year = {1948},
pages = {39-64},
}
@article{elder_dispersion_1959,
title = {The dispersion of marked fluid in turbulent shear flow},
volume = {5},
issn = {0022-1120, 1469-7645},
language = {en},
number = {04},
urldate = {2025-01-23},
journal = {Journal of Fluid Mechanics},
author = {Elder, J. W.},
month = may,
year = {1959},
pages = {544},
}
@article{fischer_discussion_1975,
title = {Discussion of Simple Method for Predicting Dispersion in Streams},
volume = {101},
issn = {0090-3914, 2690-2435},
language = {en},
number = {3},
urldate = {2025-01-23},
journal = {Journal of the Environmental Engineering Division},
author = {Fischer, Hugo B},
month = mar,
year = {1975},
pages = {453-455},
}
@article{iwasa_predicting_1991,
address = {Hong Kong},
title = {Predicting longitudinal dispersion coefficient in open channel flows},
journal = {roc. Int. Symp. of Environmental Hydraulics},
author = {Iwasa, Y and Aya, S},
year = {1991},
pages = {505-510},
}
@book{soulsby_dynamics_1997,
address = {London},
edition = {Thomas Telford},
title = {Dynamics of {Marine} {Sands}: {A} {Manual} for {Practical} {Applications}},
urldate = {2025-01-23},
author = {Soulsby, Richard},
year = {1997},
}

View File

@ -0,0 +1,175 @@
%% LyX 2.0.2 created this file. For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[12pt,french]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{geometry}
\geometry{verbose,tmargin=2cm,bmargin=2cm,lmargin=2cm,rmargin=2cm,headheight=2cm,headsep=2cm,footskip=2cm}
\usepackage{textcomp}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage[frenchb]{babel}
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
\newcommand{\noun}[1]{\textsc{#1}}
%% Because html converters don't know tabularnewline
\providecommand{\tabularnewline}{\\}
\makeatother
\usepackage{babel}
\addto\extrasfrench{%
\providecommand{\og}{\leavevmode\flqq~}%
\providecommand{\fg}{\ifdim\lastskip>\z@\unskip\fi~\frqq}%
}
\begin{document}
\includegraphics[width=5cm]{img/Logo-INRAE_Transparent.png}
~
~
~
\begin{center}
TP AdisTS - Pamhyr2\\
Version : Janvier 2025
\par\end{center}
~
~
\begin{center}
\textbf{\LARGE Modélisation 1D du transport sédimentaire : } \\
\textbf{\LARGE Cas du Vieux-Rhône de Miribel-Jonage}\\
\textbf{\LARGE (Lyon, France)}
\par\end{center}{\LARGE \par}
~
\begin{center}
\includegraphics[width=17cm]{img/Garde.jpeg}
\par\end{center}
~
\begin{center}
{\large INRAE Lyon-Grenoble Auvergne-Rhône-Alpes}
\par\end{center}{\large \par}
\begin{center}
RiverLy, Hydraulique des rivières
\par\end{center}
~
\begin{center}
\begin{tabular}{lll}
Auteur : & Dorian Hernandez & dorian.hernandez@inrae.fr\tabularnewline
& Théophile Terraz & theophile.terraz@inrae.fr\tabularnewline
\end{tabular}
\par\end{center}
~
\pagebreak{}
\begin{center}
\tableofcontents{}
\par\end{center}
~
\pagebreak{}
% \section{Introduction}
%
% TODO
%
% \pagebreak{}
\section{Contexte de l'étude - le colmatage du Vieux-Rhône}
Le champ de captage de Crépieux-Charmy est un site de pompage d'eau potable alimentant 97 \% de la ville de Lyon. Situé au nord-est de la ville, il est en contact hydraulique avec trois chenaux du Rhône. Le canal de Miribel au Nord, dont les débits varient entre 89 (débit réservé) et 2400 ~$/s$ (Crue extrême), le canal de Jonage au sud, imposant un débit quasi constant de 600 ~$/s$ pour alimenter la centrale de Cusset, et un Vieux-Rhône qui traverse le site. Les fortes variations hydrauliques le long de Miribel, ainsi que le débit constant le long de Jonage mènent à un dépôt général des sédiments fins et grossiers le long du Vieux-Rhône, avec la création d'un remous important causé par Jonage.
\begin{center}
\includegraphics[width=15cm]{img/Intro.jpeg}
\par\end{center}
Eau du grand Lyon, le gérant du champ de captage, souhaite identifier les zones de dépôts de sédiments fin le long du Vieux-Rhône, cause principale de colmatage, impactant les performances de pompage de l'eau dans les nappes.
\begin{center}
\includegraphics[width=15cm]{img/Champ_captant.jpeg}
\par\end{center}
Pour cela, une campagne expérimentale visant à identifier les zones colmatés du Vieux-Rhône a été réalisée et a mis en avant une hétérogénéité du site. Notamment, une forte zone de dépôts de grossier est présente en amont. Tandis qu'une présence plus importante de fines et sables dans la zone aval (zone de remous de Jonage) a été observée, ainsi qu'un colmatage plus important.
\begin{center}
\includegraphics[width=15cm]{img/Grossier_sable.jpeg}
\par\end{center}
En parallèle, un modèle numérique hydraulique 1D a été élaboré sous Pamhyr2 afin d'analyser l'écoulement sur le site. Les résultats numériques mettent alors bien en avant le remous généré par Jonage, ainsi qu'une diminution de la vitesse de l'écoulement à partir du point kilométrique (PK) 1000, fin de la zone amont.
\begin{center}
\includegraphics[width=15cm]{img/Simu.jpeg}
\par\end{center}
\section{Objectifs de l'étude}
Le modèle numérique 1D représente actuellement la partie hydraulique du système. L'objectif du TP est alors de mettre en donnée la partie sédimentaire (fines) du modèle, afin d'effectuer des calculs à l'aide de AdisTS , et in-fine, identifier les zones de dépôt et d'érosion des sédiments fins le long du Vieux-Rhône selon différents scénarios hydraulique. Les différentes étapes seront alors :
\begin{itemize}
\item Mettre en données le modèle Pamhyr2 du Vieux-Rhône pour le solveur AdisTS.
\item Lancer des calculs Mage - AdisTS pour différents scénarios hydrauliques.
\item Interpréter et discuter les résultats obtenus (comportement hydro-sédimentaire du site, impacts des débits, impact d'une crue, limites du modèle, etc..)
\end{itemize}
\section{Données fournies}
\textbf{Le modèle numérique du Vieux-Rhône}
Fichier \textit{Vieux\_Rhone\_TP\_AdisTS.pamhyr}.\\
\textbf{Les scénarios hydrauliques}
Quatre scénarios hydrauliques sont à analyser (voir les conditions initiales hydraulique) :
\begin{itemize}
\item Le premier correspond à un débit constant de 25~$/s$
\item Le deuxième consiste en une faible montée en débit puis à une redescente (25 - 50 - 25~$/s)$.
\item Le troisième correspondant à une plus forte montée en débit (25 - 100 - 25~$/s)$.
\item Le dernier correspond à une crue (25 - 600 - 25~$m3/s)$.\\
\end{itemize}
\textbf{Propriétés des sédiments}
Nous considérerons 2 classes de sédiments de types sable naturel, correspondant à une classe de Fines (limon) de diamètre moyen 63 microns et une classe de Sable de 500 microns. Les deux classes auront une masse volumique de 2650~$kg/$, et une porosité de 0,45 pourra être choisie. Leurs concentrations constantes en amont (conditions aux limites amont) seront de 60 $mg/l$ pour les fines et 30 $mg/l$ pour les sables. Nous considérerons dans un premier temps qu'il n'y a aucun dépôt initial de ces deux classes de sédiments et que la concentration initiale en sédiments dans le bief est nulle.\\
\textbf{Documentation}
\begin{itemize}
\item Un tutoriel guidé de mise en données : Pas-a-pas.pdf.
\item Un guide utilisateur de AdisTS : adis-TS\_usage.pdf
\item Un guide de conception de AdisTS : adis-TS\_conception.pdf
\end{itemize}
\section{Bonus}
Ajouter une épaisseur initiale de sédiments \textit{Sables} au fond de 1 $cm$ et relancer un calcul avec le scénario 1.
\pagebreak{}
\end{document}

View File

@ -0,0 +1,8 @@
#! /bin/sh
pdflatex -no-shell-escape pas-a-pas.tex
bibtex pas-a-pas.aux
pdflatex -no-shell-escape pas-a-pas.tex
pdflatex -no-shell-escape pas-a-pas.tex
pdflatex -no-shell-escape Sujet.tex
pdflatex -no-shell-escape Sujet.tex

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 684 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

View File

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

View File

@ -0,0 +1,291 @@
%% LyX 2.0.2 created this file. For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[12pt,french]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{geometry}
\geometry{verbose,tmargin=2cm,bmargin=2cm,lmargin=2cm,rmargin=2cm,headheight=2cm,headsep=2cm,footskip=2cm}
\usepackage{textcomp}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage[frenchb]{babel}
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
\newcommand{\noun}[1]{\textsc{#1}}
%% Because html converters don't know tabularnewline
\providecommand{\tabularnewline}{\\}
\makeatother
\usepackage{babel}
\addto\extrasfrench{%
\providecommand{\og}{\leavevmode\flqq~}%
\providecommand{\fg}{\ifdim\lastskip>\z@\unskip\fi~\frqq}%
}
\begin{document}
\includegraphics[width=5cm]{img/Logo-INRAE_Transparent.png}
~
~
~
\begin{center}
Tutoriel Pas-à-pas AdisTS - Pamhyr2
Version : Janvier 2025
\par\end{center}
~
~
\begin{center}
\textbf{\LARGE Modélisation 1D du transport sédimentaire : } \\
\textbf{\LARGE Cas du Vieux-Rhône de Miribel-Jonage}\\
\textbf{\LARGE (Lyon, France)}
\par\end{center}{\LARGE \par}
~
\begin{center}
\includegraphics[width=17cm]{img/Garde.jpeg}
\par\end{center}
~
\begin{center}
{\large INRAE Lyon-Grenoble Auvergne-Rhône-Alpes}
\par\end{center}{\large \par}
\begin{center}
RiverLy, Hydraulique des rivières
\par\end{center}
~
\begin{center}
\begin{tabular}{lll}
Auteurs : & Dorian Hernandez & dorian.hernandez@inrae.fr\tabularnewline
& Théophile Terraz & theophile.terraz@inrae.fr\tabularnewline
\end{tabular}
\par\end{center}
~
\pagebreak{}
\begin{center}
\tableofcontents{}
\par\end{center}
~
\pagebreak{}
% \section{Introduction}
%
% TODO
%
% \pagebreak{}
\section{Ouvrir l'étude}
Lancez Pamhyr2.
Cliquez sur le bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/open.png} puis ouvrez le modèle Pamhyr2 \textit{Vieux\_Rhone\_TP\_AdisTS.pamhyr}.
Le modèle à un bief du Vieux-Rhône s'affiche sur la fenêtre graphique.
\begin{center}
\includegraphics[width=15cm]{img/Open_model.jpeg}
\par\end{center}
\section{Mise en donnée}
\subsection{Création des classes de sédiments}
Dans la fenêtre principale, cliquez sur \texttt{[AdisTS] => [Polluants]} pour créer des classes de sédiments.
\begin{center}
\includegraphics[width=15cm]{img/Model_menu_Adists.jpeg}
\par\end{center}
La fenêtre \textit{Polluants - Vieux-Rhône} s'affiche. Elle va nous permettre de définir l'ensemble des caractéristiques (type de sédiment, taille moyenne, masse volumique,..) de nos classes de sédiments, ainsi que les conditions sédimentaires initiales et aux limites du modèle.
A l'aide du bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/add.png} inclure deux nouvelles classes de sédiments et les nommer \textit{Fines} et \textit{Sables}.
\begin{center}
\includegraphics[width=15cm]{img/Polluants_fenetre.jpeg}
\par\end{center}
Pensez à sauvegarder régulièrement l'étude, à l'aide du bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/save.png} de la fenêtre principale.
\subsection{Caractéristiques et conditions initiales des sédiments}
Pour pouvoir attribuer des caractéristiques et des conditions initiales à une classe de sédiments, il faut d'abord la sélectionner.
Cliquez sur la classe de sédiments \textit{Fines}, puis ouvrez la fenêtre \texttt{[Caractéristiques]}.
\begin{center}
\includegraphics[width=15cm]{img/Pol_to_Caracteristique.jpeg}
\par\end{center}
La fenêtre d'édition de la classe de sédiments \textit{Fines} s'ouvre.
\begin{center}
\includegraphics[width=15cm]{img/caracteristique_fines_a_completer.jpeg}
\par\end{center}
Celle-ci contient les informations nécessaire à la résolution des termes sources (taux d'érosion et de dépôt) de l'équation de transport-dispersion. Notamment pour le calcul de la vitesse de chute selon \cite{camenen_simple_2007} et la contrainte critique de mise en mouvement via l'approximation de \cite{soulsby_dynamics_1997}.
Complétez les valeurs manquantes du tableau selon les données de l'énoncé. Puis, fermez la fenêtre des caractéristiques.
Ouvrez à présent la fenêtre de \texttt{[Conditions initiales]} (toujours pour les \textit{Fines}).
\begin{center}
\includegraphics[width=15cm]{img/CI.jpeg}
\par\end{center}
Cette fenêtre contient deux espaces permettant de définir la concentration initiale de \textit{Fines} (dans "l'eau" du bief) et l'épaisseur de dépôt de fines au fond du bief. Dans le compartiment de gauche, on définit les valeurs par défaut, appliquées à l'ensemble du bief. Le compartiment de droite permet d'imposer des conditions initiales différentes en fonction des PKs du bief.
Nous considérerons une concentration initiale nulle en sédiments fins, ainsi qu'une épaisseur nulle au fond.\\
\\
Fermez la fenêtre de conditions initiales.\\
\\
Sélectionnez la classe de sédiments \textit{Sables} et répétez les étapes précédentes en considérant cette fois-ci les caractéristiques propres aux sables selon l'énoncé.
\subsection{Conditions aux limites}
Pour les conditions aux limites il n'est pas nécessaire de mettre en surbrillance les classes de sédiments.\\
\\
Ouvrez la fenêtre de \texttt{[Conditions aux limites]} et ajouter deux conditions aux limites de type concentration au n½ud amont du bief. Il y aura alors une condition aux limites pour chaque classe de sédiments.
\begin{center}
\includegraphics[width=15cm]{img/CL.jpeg}
\par\end{center}
Éditez la condition aux limites \textit{Fines} en la mettant en surbrillance et en cliquant sur le bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/edit.png}.\\
Créez une condition aux limites de type concentration constante de 0.060 $kg/$ en insérant deux lignes \textit{Temps/Concentration} à l'aide du bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/add.png}.
\begin{center}
\includegraphics[width=15cm]{img/CL_edit.jpeg}
\par\end{center}
Procédez de la même façon pour la classe de sédiments \textit{Sables}, mais avec une concentration de 0.030 $kg/$.\\
\\
Fermez les fenêtres d'éditions des conditions aux limites et des polluants.
\subsection{Caractéristiques du fond fixe}
Dans la fenêtre principale, cliquez sur \texttt{[AdisTS] => [D90]}. Cette fenêtre permet de définir le diamètre des particules fixes au fond du canal, nécessaire pour le calcul du coefficient de Strickler à la manière de \cite{meyer-peter_formulas_1948}. De même que pour les conditions initiales des polluants, la fenêtre d'édition est divisée en deux parties afin d'introduire un paramètres par défaut et de laisser la possibilité d'appliquer des valeurs de $d_{90}$ variables le long du bief.
\begin{center}
\includegraphics[width=15cm]{img/D90.jpeg}
\par\end{center}
Définissez 2 coefficients différents. Une valeur de 5 cm sur la partie amont (zone principale de dépôt de grossier) et 2 cm sur la partie avale.
\subsection{Coefficient de diffusion}
Le coefficient de diffusion $D_f$ comprend une part de diffusion moléculaire prise par défaut à $D_{mol}=10^{-6}$, à laquelle s'ajoutent les diffusions turbulentes et la dispersion sous forme d'un seul terme $D_{mix}$ défini selon les formules de \cite{fischer_discussion_1975}, \cite{elder_dispersion_1959} ou \cite{iwasa_predicting_1991}. Il est aussi possible d'utiliser une forme générique de $D_{mix}$ (voir doc utilisateur) ou encore d'imposer une valeur constante. Dans le cas tu TP nous choisirons Iwasa et Aya avec $\alpha=2$.
\begin{center}
\includegraphics[width=15cm]{img/Diff.jpeg}
\par\end{center}
\section{Paramètres du solveur}
Dans la fenêtre principale, cliquez sur \texttt{[Exécuter] => [Paramètres numériques des solveurs]}.
Dans la fenêtre \textit{Paramètres du solveur}, sélectionnez l'onglet \texttt{[Adis-TS\_WC]}.
Ces paramètres pilotent le comportement du solveur numérique. On retrouve notamment les temps de début et de fin de la simulation. Le pas de temps maximal en secondes pour le calcul. Le paramètre d'implicitation du schéma numérique de Crank-Nicholson (0.5 comme valeur recommandée). Les temps d'écriture des fichiers .bin, .csv (pour l'export à la volée), et de l'affichage à l'écran. On retrouve aussi la possibilité d'appliquer une concentration initiale.
Exemple de valeurs des paramètres :
\begin{center}
\includegraphics[width=15cm]{img/Execute_param.jpeg}
\par\end{center}
Fermez la fenêtre \textit{Paramètres du solveur}.
\section{Lancer une simulation}
Avant de lancer AdisTS, il est nécessaire d'avoir une première solution hydraulique.
Vérifiez que les conditions aux limites amont et aval sélectionnées sont bien celles correspondantes à l'hydrogramme et au limnigramme du scénrio souhaité.
\begin{center}
\includegraphics[width=15cm]{img/CL_verif.jpeg}
\par\end{center}
Dans la fenêtre principale, cliquez sur \texttt{[Exécuter] => [Lancer le solveur]}.
Sélectionnez \textit{Defaut-Mage - (Mage8)} et cliquez sur le bouton \textit{Lancer}.
La fenêtre \textit{Log du solveur} s'ouvre.
Cette fenêtre affiche les sorties texte du solveur.
À partir de la fenêtre \textit{Log du solveur}, il est possible de réexécuter le calcul en cliquant sur l'icône \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/run.png}. Cliquez sur le bouton \textit{Résultats} pour ouvrir la fenêtre \textit{Résultats} de Mage.
Dans la fenêtre principale, cliquez sur \texttt{[Exécuter] => [Lancer AdisTS]}.
Sélectionnez \textit{Defaut-AdisTS - (adistswc)} et cliquez sur le bouton \textit{Lancer}.
La fenêtre \textit{Log du solveur} s'ouvre.
Cette fenêtre affiche les sorties texte du solveur. Si le calcul s'est déroulé correctement, la fenêtre log devrait ressembler à celle-ci :
\begin{center}
\includegraphics[width=15cm]{img/log.jpeg}
\par\end{center}
Cliquez sur le bouton \textit{Résultats} pour ouvrir la fenêtre \textit{Résultats} de AdisTS. Il est aussi possible de ré-ouvrir les résultats de Mage en cliquant sur le bouton \textit{Résultats Mage}.
\section{Visualisation et export de résultats}
Il est aussi possible d'ouvrir la fenêtre \textit{Résultats} si vous avez fermé la fenêtre \textit{Log du solveur}, en cliquant sur \texttt{[Résultats] => [Visualiser les derniers résultats]} à partir de la fenêtre principale. Les résultats affichés sont ceux de AdisTS.
\begin{center}
\includegraphics[width=15cm]{img/Results.jpeg}
\par\end{center}
Le panneau supérieur gauche permet de sélectionner le bief, le panneau du milieu gauche permet de sélectionner une section dans ce bief et le panneau inférieur gauche permet de sélectionner la classe de sédiments dont on veut extraire des résultats.
La fenêtre de droite possède 4 onglets. Chaque onglet présente des résultats en fonction du temps (un curseur en bas de la fenêtre permet de visualiser les résultats à différents pas de temps) :
\begin{itemize}
\item Le premier onglet correspond aux données brutes de concentration dans l'eau et de masse déposée pour chaque classe de sédiments de l'étude.
\item Le deuxième onglet est divisée en deux sous-onglets permettant de visualiser de deux façons différentes la concentration de la classe de sédiments sélectionnée : soit en fonction du PK du bief, soit en fonction du temps.
\item De même, le troisième onglet est divisé en deux sous-onglets permettant de visualiser cette fois-ci la masse linéique de sédiments s'étant déposés.
\item Enfin le dernier onglet présente l'épaisseur des sédiments déposés.
\end{itemize}
Il est possible d'exporter les résultats au format CSV en cliquant sur le bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/export.png} en haut à gauche de la fenêtre.
\begin{center}
\includegraphics[width=15cm]{img/Export_res_adis.jpeg}
\par\end{center}
Répétez les étapes 4 et 5, selon différents scénarios hydrauliques.
\section{Bonus}
Ajoutez une épaisseur initiale de 1 cm de sédiments \textit{Sables} au fond et relancer un calcul avec le scénario 1.
\bibliographystyle{plainnat}
\bibliography{Biblio.bib}
\pagebreak{}
\end{document}

View File

@ -0,0 +1,293 @@
%% LyX 2.0.2 created this file. For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[12pt,french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\geometry{verbose,tmargin=2cm,bmargin=2cm,lmargin=2cm,rmargin=2cm,headheight=2cm,headsep=2cm,footskip=2cm}
\usepackage{textcomp}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage[frenchb]{babel}
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
\newcommand{\noun}[1]{\textsc{#1}}
\usepackage{amsthm}
\newtheorem{remark}{Q?}
%% Because html converters don't know tabularnewline
\providecommand{\tabularnewline}{\\}
\makeatother
\usepackage{babel}
\addto\extrasfrench{%
\providecommand{\og}{\leavevmode\flqq~}%
\providecommand{\fg}{\ifdim\lastskip>\z@\unskip\fi~\frqq}%
}
\begin{document}
\includegraphics[width=5cm]{img/Logo-INRAE_Transparent.png}
~
~
~
\begin{center}
Tutoriel pour Pamhyr2
- suite -
Janvier 2025
\par\end{center}
~
~
\begin{center}
\textbf{\LARGE Scénarii d'aménagement de la rivière } \\
\textbf{\LARGE Hogneau (Nord, France) avec Pamhyr2}
\par\end{center}{\LARGE \par}
~
~
\begin{center}
{\large INRAE Lyon-Grenoble Auvergne-Rhône-Alpes}
\par\end{center}{\large \par}
\begin{center}
RiverLy, Hydraulique des rivières
\par\end{center}
~
~
~
~
~
~
\begin{center}
\begin{tabular}{lll}
Auteurs : & Céline Berni & celine.berni@inrae.fr\tabularnewline
& Théophile TERRAZ & theophile.terraz@inrae.fr\tabularnewline
\end{tabular}
\par\end{center}
~
\pagebreak{}
\begin{center}
\tableofcontents{}
\par\end{center}
~
\pagebreak{}
% \section{Introduction}
%
% TODO
%
% \pagebreak{}
\section*{Préambule}
Dans ce document, nous expliciterons les fonctionnalités de PamHyr utiles à la modélisation de scénarii d'aménagement de la rivière Hogneau comme décrit dans le document de TP.
Il est utile au préalable d'avoir suivi le tutoriel pour la modélisation de la rivière Hogneau fourni avec le logiciel (Tuto1-fr.pdf).
Suivre le tutoriel 1 vous permettra de construire le modèle avec le scénario de référence (la rivière avant aménagement).
Notez que l'outil PamHyr ne permet pas au stade actuel de comparer plusieurs scenarii.
Vous devrez pour ce faire exporter les vos résultats à partir de la fenêtre \textit{Résultats} qui s'ouvre en cliquant sur \texttt{[Résultats] => [Visualiser les derniers résultats]} à partir de la fenêtre principale.
\begin{center}
\includegraphics[width=15cm]{img/export_resultats_commentee.png}
%\includegraphics[width=12cm]{../../../src/View/ui/ressources/export_resultats2.png}
\par\end{center}
Le bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/export.png} vous permet d'exporter les résultats au format CSV pour une utilisation en dehors de Pamhyr2.
Deux options s'offrent à vous :
\begin{itemize}
\item Vous souhaitez avoir une vue d'ensemble du cours d'eau (et tracer une courbe de remous par exemple). Vous allez exporter une variable en un instant donné tout le long du cours d'eau. Il faut alors vous placer à un instant donné (à l'aide du curseur en bas à gauche) et exporter la grandeur de votre choix pour tous les points kilométriques de votre maillage. Dans la fenêtre d'export, vous devrez sélectionner \texttt{Point Kilométrique (m)} pour l'axe X, et la variable que vous souhaitez exporter pour l'axe Y.
Cocher \texttt{enveloppe} vous permettra d'exporter en plus les valeurs minimale et maximale au cours du temps pour la grandeur choisie.
Par exemple, vous choisissez d'exporter la cote du fond et la cote de l'eau et vous cochez \texttt{enveloppe}. Vous obtiendrez un tableau avec les colonnes suivantes :
\begin{itemize}
\item \texttt{Point Kilométrique (m)} : toutes les valeurs de PK le long de votre bief
\item \texttt{Cote du fond (m)} : la cote du fond correspondante à chaque PK
\item \texttt{Cote de l'eau (m)} : la cote de l'eau correspondante à chaque PK à l'instant sélectionné (voir figure ci-dessous)
\item \texttt{Cote de l'eau min (m)} : la cote de l'eau minimale atteinte correspondante à chaque PK
\item \texttt{Cote de l'eau max (m)} : la cote de l'eau maximale atteinte correspondante à chaque PK
\end{itemize}
ces deux dernières colonnes constituant l'enveloppe de la cote de l'eau.
\item Vous souhaitez regarder l'évolution au cours du temps de ce qu'il se passe en un point précis du cours d'eau (regarder l'hydrogramme de crue à l'aval d'un aménagement par exemple). Vous devez alors vous placer au point kilométrique (PK) qui vous intéresse (le PK sélectionné est marqué en rouge sur la visualisation du profil en long ou sélectionné dans le tableau) et exporter la hauteur d'eau, le niveau d'eau, le débit ou autre en fonction du temps. Dans la fenêtre d'export, vous devrez sélectionner \texttt{Temps (s)} pour l'axe X.
\end{itemize}
Ainsi dans l'exemple ci-dessus, les données exportées le seront au point kilométrique 34000\,m, à l'instant $t=1$ jour et 12h.
\pagebreak{}
\section{Premier scénario d'aménagement : abaissement du seuil}
Parmi les 3 options d'aménagement évoquées par la collectivité locale, jouer sur le contrôle aval en abaissant le seuil qui marque la jonction avec le canal de Condé-Pommeroeul peut faire baisser le niveau à lamont.
\begin{remark}
Pourquoi jouer sur le contrôle aval peut-il avoir un effet sur le niveau d'eau en amont ?
\end{remark}
Pour modifier la hauteur du seuil, dans la fenêtre principale, cliquez sur \texttt{[Hydraulique] => [Ouvrages hydrauliques]} pour ouvrir la fenêtre des ouvrages hydrauliques.
Vous pouvez alors sélectionner le seuil Palplanche.
\begin{center}
\includegraphics[width=15cm]{img/ouvrage_seuilpalplanche.png}
\par\end{center}
Sélectionnez le seuil aval (SeuilPalplanche) et cliquez sur \includegraphics[width=0.5cm]{"../../../src/View/ui/ressources/edit.png"} pour modifier les lois de cet ouvrage.
Vous pouvez alors essayer de modifier la cote du seuil.
Lancez le calcul en exécutant le programme pour plusieurs hauteurs de seuil (dont celle initiale de référence) avec chacune des trois crues proposées en condition amont.
\begin{remark}
Exportez les données obtenues en fonction du PK pour 2 ou 3 hauteurs de seuil.
Sur quelle distance le seuil aval influence-t-il la hauteur d'eau ?
Est-ce suffisant pour limiter la hauteur d'eau au niveau du pont de l'A2 ($PK \approx 33000$\,m) ?
\end{remark}
\pagebreak{}
\section{Second scénario d'aménagement : élargissement du lit moyen}
Ce scénario d'aménagement consiste à essayer daugmenter le laminage en créant un lit moyen en rive droite entre les PKs 32 015 et 33 920\,m. Pour rappel, cette localisation est imposée pour des raisons de disponibilité des terrains et on ne peut pas envisager une largeur du lit moyen supérieure à 50 mètres.
\begin{remark}
Pourquoi élargir le lit moyen peut-il avoir un effet sur le niveau d'eau durant la crue ?
\end{remark}
Pour élargir le lit moyen, la géométrie doit être modifiée.
Il est judicieux d'enregistrer votre étude sous un autre nom avant de procéder à ces modifications (cliquez sur \texttt{[Fichier] => [Sauvegarder sous]}).
Vous aurez un certain nombre de sections à modifier. Pour limiter leur nombre, le plus simple est de repartir de la géométrie initiale (avant maillage) avant de modifier les transects et de mailler à nouveau après les modifications.
Vous pouvez supprimer les sections interpolées (notées interpol\textit{i}) en les sélectionnant dans la fenêtre \textit{Géométrie} et en appuyant sur le bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/del.png}.
Cliquez sur \texttt{[Géométrie] => [Modifier la géométrie]} ou sur l'icône \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/geometry.png} pour définir la géométrie du bief.
Sélectionnez la section en travers que vous souhaitez modifier.
Vous pouvez l'éditer en cliquant sur l'icône \includegraphics[width=0.5cm]{"../../../src/View/ui/ressources/edit.png"}.
S'ouvre alors la fenêtre suivante :
\begin{center}
\includegraphics[width=15cm]{img/modif_profil_en_travers.png}
\par\end{center}
En appuyant sur \includegraphics[width=0.5cm]{"../../../src/View/ui/ressources/add.png"} vous pourrez ajouter un point sur votre profil en travers que vous pourrez ensuite placer ou vous le souhaitez sur le profil grâce aux flèches \includegraphics[width=0.5cm]{"../../../src/View/ui/ressources/up.png"} ou \includegraphics[width=0.5cm]{"../../../src/View/ui/ressources/down.png"}.
Dans le cas présent, afin d'élargir le lit moyen de 50\,m, vous pourrez ajouter un point juste après le point qui correspond à la rive droite (rd) légèrement plus haut et 50\,m plus à droite (en $Y=61.5$\,m et $Z=20.1$\,m par exemple).
Il ne restera alors plus qu'à décaler tous les points suivants de 50\,m.
Vous devriez obtenir la géométrie suivante :
\begin{center}
\includegraphics[width=15cm]{img/modif_profil_en_travers2.png}
\par\end{center}
Vous pouvez appliquer cette méthode à l'ensemble des transects à élargir et lancer le calcul pour chacune des crues proposées avec ce nouvel aménagement.
\begin{remark}
Exportez les résultats obtenus pour la hauteur d'eau en fonction du PK pour ce nouveau scénario.
Quel est l'effet de cet aménagement sur la hauteur d'eau et sur quel secteur ?
Exportez également le débit en fonction du temps en quelques sections choisies.
Quel est l'effet de cet aménagement sur l'hydrogramme de crue ?
Peut-on s'attendre à ce résultat compte tenu du volume qu'il est possible de stocker en lit moyen et du volume total de la crue ?
\end{remark}
\pagebreak{}
\section{Troisième scénario d'aménagement : casier de stockage}
Ce troisième scénario consiste à faire baisser le débit dans la rivière en créant un déversement vers un casier de stockage en rive gauche juste en aval du pont de l'A2.
La surface de stockage disponible a été estimée à 42 ha pour une altitude moyenne du terrain naturel de 18\,m.
\begin{remark}
Quel volume d'eau ce réservoir peut-il stocker ?
Comment se compare-t-il au volume de la crue ?
Quel est alors l'effet attendu de cet ouvrage ?
\end{remark}
Pour modéliser ce scénario, il est nécessaire de dévier une part de l'écoulement pour le diriger vers un casier.
Il faut donc créer une difluence, soit modifier le réseau.
De nouveau, il est préférable d'enregistrer l'étude sous un autre nom avant de procéder à ces modifications.
Cliquez sur \texttt{[Réseau] => [Modifier le réseau]} ou sur l'icône \includegraphics[width=0.5cm]{img/network.png} pour modifier la structure de votre rivière.
Le réseau pour la configuration de référence ne comportait qu'un seul bief entre deux noeuds.
Pour ajouter un casier, il faut ajouter un noeud pour la diffluence, un noeud en amont du casier et un noeud en aval du casier.
Le casier ne peut en effet pas être en limite aval du modèle ni directement au niveau de la confluence.
Pour ajouter un noeud, cliquez sur \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/add.png} pour sélectionner l'outil ``d'addition'' et cliquez ensuite dans la fenêtre grise à l'endroit ou vous souhaitez ajouter un noeud.
De la même façon vous pourrez avec cet outil ajouter un bief entre deux noeuds en cliquant successivement sur l'un puis sur l'autre.
Vous pourrez alors créer un réseau tel que celui ci-dessous où DevLat est le noeud marquant la diffluence.
\begin{center}
\includegraphics[width=12cm]{img/reseau_casier.png}
\par\end{center}
Pour chacun des nouveau biefs crées, il vous faudra créer ou adapter la géométrie.
Deux exemples vous sont proposés ci-dessous pour les biefs amont et aval du casier.
\begin{center}
\includegraphics[width=10cm]{img/geom_am_casier.png}
\includegraphics[width=10cm]{img/geom_av_casier.png}
\par\end{center}
Vous noterez la présence d'un ouvrage sur le bief amont afin de pouvoir contrôler à partir de quelle hauteur d'eau on souhaite commencer le remplissage du casier.
Pour le bief principal constitué des deux biefs Crespin->DevLat et DevLat->SeuilAval, l'un d'eux porte la géométrie complète tandis que la géométrie de l'autre n'est pas définie.
Il vous faudra supprimer les sections dans l'un que vous implémenterez dans l'autre.
L'outil d'import de géométrie pourra vous aider.
Il faudra le cas échéant réimplémenter également les ouvrages.
Vous devrez ensuite implémenter le casier sur le noeud nommé casier. Cliquez sur \texttt{[Hydraulique] => [Casiers]}. Vous pouvez ajouter un casier en cliquant sur \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/add.png}. Vous devrez ensuite configurer le casier en cliquant sur l'icône \includegraphics[width=0.5cm]{"../../../src/View/ui/ressources/edit.png"}. Pour chaque altitude, vous pouvez définir l'aire de stockage (en ha). Vous pourrez ainsi configurer votre casier de la façon suivante :
\begin{center}
\includegraphics[width=10cm]{img/Casier.png}
\par\end{center}
Lancez le calcul pour chacune des crues proposées avec ce nouvel aménagement.
\begin{remark}
Exportez les résultats obtenus pour la hauteur d'eau en fonction du PK pour ce nouveau scénario.
Quel est l'effet de cet aménagement sur la hauteur d'eau et sur quel secteur ?
Exportez également le débit en fonction du temps en quelques sections choisies.
Quel est l'effet de cet aménagement sur l'hydrogramme de crue ?
Comparer les crues centenale et décennale : comment l'ouvrage sur le bief amont impacte-t-il les hydrogrammes ?
Vos résultats sont-ils cohérent avec vos premières estimations ?
\end{remark}
\section{Conclusion}
\`A l'aide de la modélisation numérique du cours d'eau de l'Hogneau, vous avez pu comparer l'efficacité de 3 scenarii d'aménagement sur une crue historique, une crue centenale et une crue décennale.
\begin{remark}
Quel aménagement jugez-vous le plus efficace ?
Quels éléments vous ont apporté la modélisation ?
Que proposeriez-vous à la collectivité locale ?
\end{remark}
A travers cet exemple, avez pris en main l'outil PamHyr avec le code de calcul MAGE.
\pagebreak{}
\end{document}

View File

@ -4,3 +4,5 @@ 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
pdflatex -no-shell-escape Tuto-2-fr.tex
pdflatex -no-shell-escape Tuto-2-fr.tex

View File

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 108 KiB

View File

Before

Width:  |  Height:  |  Size: 163 KiB

After

Width:  |  Height:  |  Size: 163 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

View File

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

View File

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

View File

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

View File

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

View File

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 61 KiB

View File

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

View File

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 97 KiB

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

View File

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@ -1,3 +1,4 @@
%% LyX 2.0.2 created this file. For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[12pt,french]{article}
@ -8,6 +9,7 @@
\usepackage{textcomp}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage[frenchb]{babel}
\makeatletter
@ -132,17 +134,17 @@ Pendant que vous travaillez sur votre
\section{Créer la structure de la rivière}
Cliquez sur \texttt{[Réseau] => [Éditer le réseau]} ou sur l'icône \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/network.png} pour créer la structure de votre rivière.
Cliquez sur \texttt{[Réseau] => [Modifier le réseau]} ou sur l'icône \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/network.png} pour créer la structure de votre rivière.
Nous voici dans la fenêtre \textit{Réseau}.
Dans cette fenêtre, nous allons définir un graphe orienté qui représente les biefs de notre réseau fluvial : les arêtes sont les biefs, les n½uds sont soit des conditions limites amont, soit des conditions limites aval, soit des jonctions entre biefs.
Dans cette fenêtre, nous allons définir un graphe orienté qui représente les biefs de notre réseau fluvial : les arêtes sont les biefs, les n\oe{}uds sont soit des conditions limites amont, soit des conditions limites aval, soit des jonctions entre biefs.
Un bief par défaut existe dans la nouvelle étude.
Pour les besoins de ce tutoriel, nous allons le supprimer :
cliquez sur le bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/del.png} pour entrer dans le mode \textit{Suppression} puis cliquez sur les n½uds.
cliquez sur le bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/del.png} pour entrer dans le mode \textit{Suppression} puis cliquez sur les n\oe{}uds.
Nous voilà repartis sur une fenêtre vierge.
Appuyez sur le bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/add.png} pour entrer dans le mode \textit{Ajout}. Créez deux n½uds en cliquant dans la zone grise de la fenêtre, et créez un lien en cliquant à nouveau sur chaque n½ud.
Appuyez sur le bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/add.png} pour entrer dans le mode \textit{Ajout}. Créez deux n\oe{}uds en cliquant dans la zone grise de la fenêtre, et créez un lien en cliquant à nouveau sur chaque n\oe{}ud.
Appuyez à nouveau sur \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/add.png} pour quitter le mode \textit{Ajout}.
Vous avez créé votre premier bief, avec un n½ud amont et un n½ud aval.
Dans la partie inférieure de la fenêtre \textit{Réseau}, vous pouvez renommer les n½uds et les biefs.
Vous avez créé votre premier bief, avec un n\oe{}ud amont et un n\oe{}ud aval.
Dans la partie inférieure de la fenêtre \textit{Réseau}, vous pouvez renommer les n\oe{}uds et les biefs.
Comme le bief que nous avons créé est automatiquement sélectionné, toutes les étapes suivantes s'appliqueront à ce bief.
La fenêtre doit se présenter comme suit :
@ -154,7 +156,7 @@ Fermez la fen
\section{Éditer la géométrie de la rivière}
Cliquez sur \texttt{[Géométrie] => [Éditer la géométrie]} ou sur l'icône \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/geometry.png} pour définir la géométrie du bief sélectionné.
Cliquez sur \texttt{[Géométrie] => [Modifier la géométrie]} ou sur l'icône \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/geometry.png} pour définir la géométrie du bief sélectionné.
Pour Importer une géométrie depuis un fichier, cliquez sur le bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/import.png}.
Sélectionnez le fichier \texttt{Data/Bief\_1.st}.
Vous devriez voir :
@ -237,8 +239,8 @@ Nous pouvons cliquer sur la nouvelle ligne pour s
Ici, nous définirons le débit mesuré lors de la crue de février 2002.
Sélectionnez la cellule \textit{Nom} pour donner un nom à la condition limite par exemple "crue2002".
Sélectionner la cellule \textit{Type} et utiliser la combo box pour mettre une loi \textit{Q(t)} : débit en fonction du temps (hydrogramme).
Sélectionnez la cellule \textit{N½ud} et attribuez cette condition au n½ud amont.
Les noms des n½uds sont rappelés dans le panneau de droite, avec une vue du réseau.
Sélectionnez la cellule \textit{n\oe{}ud} et attribuez cette condition au n\oe{}ud amont.
Les noms des n\oe{}uds sont rappelés dans le panneau de droite, avec une vue du réseau.
Sélectionnez maintenant la ligne entière et cliquez sur le bouton d'édition \includegraphics[width=0.5cm]{"../../../src/View/ui/ressources/edit.png"}.
Vous avez ouvert la fenêtre \textit{Éditer les conditions aux limites}.
Dans un éditeur de texte, ouvrez le fichier \texttt{data/Fevrier\_2002.txt}.
@ -250,7 +252,7 @@ Vous pouvez maintenant voir la courbe de d
\par\end{center}
Fermez cette fenêtre. Revenez sur la fenêtre \textit{Conditions aux limites}.
Ajoutez une nouvelle ligne, donnez lui un nom, donnez lui le type \textit{Z(T)} (limnigramme) et associez là au n½ud aval du réseau.
Ajoutez une nouvelle ligne, donnez lui un nom, donnez lui le type \textit{Z(T)} (limnigramme) et associez là au n\oe{}ud aval du réseau.
Ouvrez la fenêtre d'édition des conditions aux limites (\includegraphics[width=0.5cm]{"../../../src/View/ui/ressources/edit.png"}).
Ajoutez deux lignes et rentrez les valeurs suivantes :
\begin{center}
@ -400,19 +402,19 @@ Si vous r
\section{Paramètres du solveur}
Dans la fenêtre principale, cliquez sur \texttt{[Exécuter] => [Parameters numériques des solveurs]}.
Dans la fenêtre principale, cliquez sur \texttt{[Exécuter] => [Paramètres numériques des solveurs]}.
Dans la fenêtre \textit{Paramètres du solveur}, sélectionnez l'onglet \texttt{[Mage v8]}.
Ces paramètres pilotent le comportement du solveur numérique.
la valeur 999:99:00:00 du temps final indique au solveur de s'arrêter lorsqu'il a atteint un régime permanent.
la valeur {\NoAutoSpacing 999:99:00:00} du temps final indique au solveur de s'arrêter lorsqu'il a atteint un régime permanent.
Vous pouvez changer la fréquence d'écriture des résultats dans la ligne \textit{Pas de temps d'écriture dans le fichier .BIN}.
Une valeur inférieure à 1 seconde indique que la valeur de la ligne \textit{Pas de temps d'écriture dans le fichier .TRA} s sera prise à la place.
% En effet, durant la montée du pic de crue, le solveur a besoin de réduire le pas de temps suffisament pour permettre la convergence des itérations.
Pour accélérer les calculs et pour aider le solveur à démarer, nous allons l'autoriser à dégrader la précision, à l'aide des facteurs de réduction de la précision.
Pour accélérer les calculs et pour aider le solveur à démarrer, nous allons l'autoriser à dégrader la précision, à l'aide des facteurs de réduction de la précision.
Les précisions internes du solveur sont de 10$^{-9}$.
Cette précision est multipliée par le facteur de réduction de la précision : un facteur de 1000 ramènera donc la précision à 10$^{-5}$.
Pour utiliser ce facteur de réduction de la précision, il faut donner un \textit{nombre d'itérations à précision maximum} inférieur au \textit{nombre maximum d'itérations} : le solveur va d'abord tenter de converger avec un certain nombre d'itératons à la précision maximum avant de basculer sur une précision dégradée pour le reste des itérations.
Dans notre cas, c'est nécessaire pour lancer le solveur à partir de la condition initiale calculée par Pamhyr2.
rentrez 1000 dans les trois lignes \textit{facteurs de réduction de la précision}, rentrez 99 pour le \textit{Nombre d'itérations} et 5 pour le \textit{nombre d'itérations à la précision maximum}.
Rentrez 1000 dans les trois lignes \textit{facteurs de réduction de la précision}, rentrez 99 pour le \textit{Nombre maximum d'itérations} et 5 pour le \textit{nombre d'itérations à la précision maximum}.
Gardez les autres paramètres du solveur par défaut.
Fermer la fenêtre \textit{Paramètres du solveur}.
@ -426,12 +428,13 @@ Cette fen
\section{Visualiser les résultats}
il est aussi possible d'ouvrir la fenêtre \textit{Résultats} si vous avez fermé la fenêtre \textit{Log du solveur}, en cliquant sur \texttt{[Résultats] => [Visualiser les derniers résultats]} à partir de la fenêtre principale.
Il est aussi possible d'ouvrir la fenêtre \textit{Résultats} si vous avez fermé la fenêtre \textit{Log du solveur}, en cliquant sur \texttt{[Résultats] => [Visualiser les derniers résultats]} à partir de la fenêtre principale.
Le panneau supérieur vous permet de sélectionner le bief, le panneau inférieur gauche vous permet de sélectionner une section dans ce bief.
Les trois diagrammes sur la droite montrent le bief et la section en travers de la même manière que dans la fenêtre \textit{Géométrie}.
Vous pouvez utiliser le curseur du bas pour visualiser les résultats à différents pas de temps.
Les croix rouges dans les deux vues du haut correspondent aux points ou l'eau déborde de la géométrie au moins une fois dans la simulation.
En pratique il n'y a pas de perte de volume par débordement en dehors du modèle, car le solveur ajoute un mur virtuel aux extrémités des sections.
Pour visualiser le débit, passez à l'onglet \textit{Hydrogramme}.
Pour créer des tracés 2D personnalisés, cliquez sur le bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/add.png} en haut à gauche de la fenêtre.
Sélectionnez les valeurs que vous voulez sur les axes $X$ et $Y$ et cliquez sur \texttt{[OK]}.
@ -440,4 +443,3 @@ Le bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/export.p
\pagebreak{}
\end{document}

View File

@ -101,7 +101,7 @@ Authors : & Pierre-Antoine Rouby & pierre-antoine.rouby@inrae.fr\tabularnewline
\section{Install Pamhyr2}
Pamhyr2 can be downloaded from \url{https://gitlab.irstea.fr/theophile.terraz/pamhyr}.
Pamhyr2 can be downloaded from \url{https://gitlab.com/pamhyr/pamhyr2}.
\begin{center}
\includegraphics[width=15cm]{img/dl.png}
\par\end{center}

Binary file not shown.

View File

@ -0,0 +1,235 @@
# Exported from Pamhyr2
0 1 0 37 0.000000 p1013
0.0000 0.0000 14.0000
0.0000 0.0134 12.9933
0.0000 0.9213 12.5393
0.0000 1.8292 12.0854
0.0000 2.7370 11.6315
0.0000 3.6449 11.1775
0.0000 4.5528 10.7236
0.0000 5.4607 10.2697
0.0000 6.3685 9.8157
0.0000 7.2764 9.3618
0.0000 8.1843 8.9079
0.0000 9.0921 8.4539
0.0000 10.0000 8.0000 FD
0.0000 10.8333 8.0000
0.0000 11.6667 8.0000
0.0000 12.5000 8.0000
0.0000 13.3333 8.0000
0.0000 14.1667 8.0000
0.0000 15.0000 8.0000
0.0000 15.8333 8.0000
0.0000 16.6667 8.0000
0.0000 17.5000 8.0000
0.0000 18.3333 8.0000
0.0000 19.1667 8.0000
0.0000 20.0000 8.0000 FG
0.0000 20.9079 8.4539
0.0000 21.8157 8.9079
0.0000 22.7236 9.3618
0.0000 23.6315 9.8157
0.0000 24.5393 10.2697
0.0000 25.4472 10.7236
0.0000 26.3551 11.1775
0.0000 27.2630 11.6315
0.0000 28.1708 12.0854
0.0000 29.0787 12.5393
0.0000 29.9866 12.9933
0.0000 30.0000 14.0000
999.9990 999.9990 999.9990
1 2 0 37 350.000000 p1025
350.0000 0.0000 13.6500
350.0000 0.0134 12.6433
350.0000 0.9213 12.1893
350.0000 1.8292 11.7354
350.0000 2.7370 11.2815
350.0000 3.6449 10.8275
350.0000 4.5528 10.3736
350.0000 5.4607 9.9197
350.0000 6.3685 9.4657
350.0000 7.2764 9.0118
350.0000 8.1843 8.5579
350.0000 9.0921 8.1039
350.0000 10.0000 7.6500 FD
350.0000 10.8333 7.6500
350.0000 11.6667 7.6500
350.0000 12.5000 7.6500
350.0000 13.3333 7.6500
350.0000 14.1667 7.6500
350.0000 15.0000 7.6500
350.0000 15.8333 7.6500
350.0000 16.6667 7.6500
350.0000 17.5000 7.6500
350.0000 18.3333 7.6500
350.0000 19.1667 7.6500
350.0000 20.0000 7.6500 FG
350.0000 20.9079 8.1039
350.0000 21.8157 8.5579
350.0000 22.7236 9.0118
350.0000 23.6315 9.4657
350.0000 24.5393 9.9197
350.0000 25.4472 10.3736
350.0000 26.3551 10.8275
350.0000 27.2630 11.2815
350.0000 28.1708 11.7354
350.0000 29.0787 12.1893
350.0000 29.9866 12.6433
350.0000 30.0000 13.6500
999.9990 999.9990 999.9990
2 3 0 37 370.000000 p1026
370.0000 0.0000 13.6300
370.0000 0.0134 12.6233
370.0000 0.9213 12.1693
370.0000 1.8292 11.7154
370.0000 2.7370 11.2615
370.0000 3.6449 10.8075
370.0000 4.5528 10.3536
370.0000 5.4607 9.8997
370.0000 6.3685 9.4457
370.0000 7.2764 8.9918
370.0000 8.1843 8.5379
370.0000 9.0921 8.0839
370.0000 10.0000 7.6300 FD
370.0000 11.2500 7.6300
370.0000 12.5000 7.6300
370.0000 13.7500 7.6300
370.0000 15.0000 7.6300
370.0000 16.2500 7.6300
370.0000 17.5000 7.6300
370.0000 18.7500 7.6300
370.0000 20.0000 7.6300
370.0000 21.2500 7.6300
370.0000 22.5000 7.6300
370.0000 23.7500 7.6300
370.0000 25.0000 7.6300 FG
370.0000 25.9079 8.0839
370.0000 26.8157 8.5379
370.0000 27.7236 8.9918
370.0000 28.6315 9.4457
370.0000 29.5393 9.8997
370.0000 30.4472 10.3536
370.0000 31.3551 10.8075
370.0000 32.2630 11.2615
370.0000 33.1708 11.7154
370.0000 34.0787 12.1693
370.0000 34.9866 12.6233
370.0000 35.0000 13.6300
999.9990 999.9990 999.9990
3 4 0 37 630.000000 p1035
630.0000 0.0000 13.3700
630.0000 0.0134 12.3633
630.0000 0.9213 11.9093
630.0000 1.8292 11.4554
630.0000 2.7370 11.0015
630.0000 3.6449 10.5475
630.0000 4.5528 10.0936
630.0000 5.4607 9.6397
630.0000 6.3685 9.1857
630.0000 7.2764 8.7318
630.0000 8.1843 8.2779
630.0000 9.0921 7.8239
630.0000 10.0000 7.3700 FD
630.0000 11.2500 7.3700
630.0000 12.5000 7.3700
630.0000 13.7500 7.3700
630.0000 15.0000 7.3700
630.0000 16.2500 7.3700
630.0000 17.5000 7.3700
630.0000 18.7500 7.3700
630.0000 20.0000 7.3700
630.0000 21.2500 7.3700
630.0000 22.5000 7.3700
630.0000 23.7500 7.3700
630.0000 25.0000 7.3700 FG
630.0000 25.9079 7.8239
630.0000 26.8157 8.2779
630.0000 27.7236 8.7318
630.0000 28.6315 9.1857
630.0000 29.5393 9.6397
630.0000 30.4472 10.0936
630.0000 31.3551 10.5475
630.0000 32.2630 11.0015
630.0000 33.1708 11.4554
630.0000 34.0787 11.9093
630.0000 34.9866 12.3633
630.0000 35.0000 13.3700
999.9990 999.9990 999.9990
4 5 0 37 650.000000 p1036
650.0000 0.0000 13.3500
650.0000 0.0134 12.3433
650.0000 0.9213 11.8893
650.0000 1.8292 11.4354
650.0000 2.7370 10.9815
650.0000 3.6449 10.5275
650.0000 4.5528 10.0736
650.0000 5.4607 9.6197
650.0000 6.3685 9.1657
650.0000 7.2764 8.7118
650.0000 8.1843 8.2579
650.0000 9.0921 7.8039
650.0000 10.0000 7.3500 FD
650.0000 10.8333 7.3500
650.0000 11.6667 7.3500
650.0000 12.5000 7.3500
650.0000 13.3333 7.3500
650.0000 14.1667 7.3500
650.0000 15.0000 7.3500
650.0000 15.8333 7.3500
650.0000 16.6667 7.3500
650.0000 17.5000 7.3500
650.0000 18.3333 7.3500
650.0000 19.1667 7.3500
650.0000 20.0000 7.3500 FG
650.0000 20.9079 7.8039
650.0000 21.8157 8.2579
650.0000 22.7236 8.7118
650.0000 23.6315 9.1657
650.0000 24.5393 9.6197
650.0000 25.4472 10.0736
650.0000 26.3551 10.5275
650.0000 27.2630 10.9815
650.0000 28.1708 11.4354
650.0000 29.0787 11.8893
650.0000 29.9866 12.3433
650.0000 30.0000 13.3500
999.9990 999.9990 999.9990
5 6 0 37 1000.000000 p1048
1000.0000 0.0000 13.0000
1000.0000 0.0134 11.9933
1000.0000 0.9213 11.5393
1000.0000 1.8292 11.0854
1000.0000 2.7370 10.6315
1000.0000 3.6449 10.1775
1000.0000 4.5528 9.7236
1000.0000 5.4607 9.2697
1000.0000 6.3685 8.8157
1000.0000 7.2764 8.3618
1000.0000 8.1843 7.9079
1000.0000 9.0921 7.4539
1000.0000 10.0000 7.0000 FD
1000.0000 10.8333 7.0000
1000.0000 11.6667 7.0000
1000.0000 12.5000 7.0000
1000.0000 13.3333 7.0000
1000.0000 14.1667 7.0000
1000.0000 15.0000 7.0000
1000.0000 15.8333 7.0000
1000.0000 16.6667 7.0000
1000.0000 17.5000 7.0000
1000.0000 18.3333 7.0000
1000.0000 19.1667 7.0000
1000.0000 20.0000 7.0000 FG
1000.0000 20.9079 7.4539
1000.0000 21.8157 7.9079
1000.0000 22.7236 8.3618
1000.0000 23.6315 8.8157
1000.0000 24.5393 9.2697
1000.0000 25.4472 9.7236
1000.0000 26.3551 10.1775
1000.0000 27.2630 10.6315
1000.0000 28.1708 11.0854
1000.0000 29.0787 11.5393
1000.0000 29.9866 11.9933
1000.0000 30.0000 13.0000
999.9990 999.9990 999.9990

View File

@ -0,0 +1,235 @@
# Exported from Pamhyr2
0 1 0 37 0.000000 p1210
0.0000 0.0000 14.0000
0.0000 0.0134 12.9933
0.0000 0.9213 12.5393
0.0000 1.8292 12.0854
0.0000 2.7370 11.6315
0.0000 3.6449 11.1775
0.0000 4.5528 10.7236
0.0000 5.4607 10.2697
0.0000 6.3685 9.8157
0.0000 7.2764 9.3618
0.0000 8.1843 8.9079
0.0000 9.0921 8.4539
0.0000 10.0000 8.0000 FD
0.0000 10.8333 8.0000
0.0000 11.6667 8.0000
0.0000 12.5000 8.0000
0.0000 13.3333 8.0000
0.0000 14.1667 8.0000
0.0000 15.0000 8.0000
0.0000 15.8333 8.0000
0.0000 16.6667 8.0000
0.0000 17.5000 8.0000
0.0000 18.3333 8.0000
0.0000 19.1667 8.0000
0.0000 20.0000 8.0000 FG
0.0000 20.9079 8.4539
0.0000 21.8157 8.9079
0.0000 22.7236 9.3618
0.0000 23.6315 9.8157
0.0000 24.5393 10.2697
0.0000 25.4472 10.7236
0.0000 26.3551 11.1775
0.0000 27.2630 11.6315
0.0000 28.1708 12.0854
0.0000 29.0787 12.5393
0.0000 29.9866 12.9933
0.0000 30.0000 14.0000
999.9990 999.9990 999.9990
1 2 0 37 300.000000 p1225
300.0000 0.0000 13.7000
300.0000 0.0134 12.6933
300.0000 0.9213 12.2393
300.0000 1.8292 11.7854
300.0000 2.7370 11.3315
300.0000 3.6449 10.8775
300.0000 4.5528 10.4236
300.0000 5.4607 9.9697
300.0000 6.3685 9.5157
300.0000 7.2764 9.0618
300.0000 8.1843 8.6079
300.0000 9.0921 8.1539
300.0000 10.0000 7.7000 FD
300.0000 10.8333 7.7000
300.0000 11.6667 7.7000
300.0000 12.5000 7.7000
300.0000 13.3333 7.7000
300.0000 14.1667 7.7000
300.0000 15.0000 7.7000
300.0000 15.8333 7.7000
300.0000 16.6667 7.7000
300.0000 17.5000 7.7000
300.0000 18.3333 7.7000
300.0000 19.1667 7.7000
300.0000 20.0000 7.7000 FG
300.0000 20.9079 8.1539
300.0000 21.8157 8.6079
300.0000 22.7236 9.0618
300.0000 23.6315 9.5157
300.0000 24.5393 9.9697
300.0000 25.4472 10.4236
300.0000 26.3551 10.8775
300.0000 27.2630 11.3315
300.0000 28.1708 11.7854
300.0000 29.0787 12.2393
300.0000 29.9866 12.6933
300.0000 30.0000 13.7000
999.9990 999.9990 999.9990
2 3 0 37 310.000000 p1226
310.0000 0.0000 13.1900
310.0000 0.0134 12.1833
310.0000 0.9213 11.7293
310.0000 1.8292 11.2754
310.0000 2.7370 10.8215
310.0000 3.6449 10.3675
310.0000 4.5528 9.9136
310.0000 5.4607 9.4597
310.0000 6.3685 9.0057
310.0000 7.2764 8.5518
310.0000 8.1843 8.0979
310.0000 9.0921 7.6439
310.0000 10.0000 7.1900 FD
310.0000 10.8333 7.1900
310.0000 11.6667 7.1900
310.0000 12.5000 7.1900
310.0000 13.3333 7.1900
310.0000 14.1667 7.1900
310.0000 15.0000 7.1900
310.0000 15.8333 7.1900
310.0000 16.6667 7.1900
310.0000 17.5000 7.1900
310.0000 18.3333 7.1900
310.0000 19.1667 7.1900
310.0000 20.0000 7.1900 FG
310.0000 20.9079 7.6439
310.0000 21.8157 8.0979
310.0000 22.7236 8.5518
310.0000 23.6315 9.0057
310.0000 24.5393 9.4597
310.0000 25.4472 9.9136
310.0000 26.3551 10.3675
310.0000 27.2630 10.8215
310.0000 28.1708 11.2754
310.0000 29.0787 11.7293
310.0000 29.9866 12.1833
310.0000 30.0000 13.1900
999.9990 999.9990 999.9990
3 4 0 37 390.000000 p1230
390.0000 0.0000 13.1900
390.0000 0.0134 12.1833
390.0000 0.9213 11.7293
390.0000 1.8292 11.2754
390.0000 2.7370 10.8215
390.0000 3.6449 10.3675
390.0000 4.5528 9.9136
390.0000 5.4607 9.4597
390.0000 6.3685 9.0057
390.0000 7.2764 8.5518
390.0000 8.1843 8.0979
390.0000 9.0921 7.6439
390.0000 10.0000 7.1900 FD
390.0000 10.8333 7.1900
390.0000 11.6667 7.1900
390.0000 12.5000 7.1900
390.0000 13.3333 7.1900
390.0000 14.1667 7.1900
390.0000 15.0000 7.1900
390.0000 15.8333 7.1900
390.0000 16.6667 7.1900
390.0000 17.5000 7.1900
390.0000 18.3333 7.1900
390.0000 19.1667 7.1900
390.0000 20.0000 7.1900 FG
390.0000 20.9079 7.6439
390.0000 21.8157 8.0979
390.0000 22.7236 8.5518
390.0000 23.6315 9.0057
390.0000 24.5393 9.4597
390.0000 25.4472 9.9136
390.0000 26.3551 10.3675
390.0000 27.2630 10.8215
390.0000 28.1708 11.2754
390.0000 29.0787 11.7293
390.0000 29.9866 12.1833
390.0000 30.0000 13.1900
999.9990 999.9990 999.9990
4 5 0 37 400.000000 p1231
400.0000 0.0000 13.6000
400.0000 0.0134 12.5933
400.0000 0.9213 12.1393
400.0000 1.8292 11.6854
400.0000 2.7370 11.2315
400.0000 3.6449 10.7775
400.0000 4.5528 10.3236
400.0000 5.4607 9.8697
400.0000 6.3685 9.4157
400.0000 7.2764 8.9618
400.0000 8.1843 8.5079
400.0000 9.0921 8.0539
400.0000 10.0000 7.6000 FD
400.0000 10.8333 7.6000
400.0000 11.6667 7.6000
400.0000 12.5000 7.6000
400.0000 13.3333 7.6000
400.0000 14.1667 7.6000
400.0000 15.0000 7.6000
400.0000 15.8333 7.6000
400.0000 16.6667 7.6000
400.0000 17.5000 7.6000
400.0000 18.3333 7.6000
400.0000 19.1667 7.6000
400.0000 20.0000 7.6000 FG
400.0000 20.9079 8.0539
400.0000 21.8157 8.5079
400.0000 22.7236 8.9618
400.0000 23.6315 9.4157
400.0000 24.5393 9.8697
400.0000 25.4472 10.3236
400.0000 26.3551 10.7775
400.0000 27.2630 11.2315
400.0000 28.1708 11.6854
400.0000 29.0787 12.1393
400.0000 29.9866 12.5933
400.0000 30.0000 13.6000
999.9990 999.9990 999.9990
5 6 0 37 1000.000000 p1261
1000.0000 0.0000 13.0000
1000.0000 0.0134 11.9933
1000.0000 0.9213 11.5393
1000.0000 1.8292 11.0854
1000.0000 2.7370 10.6315
1000.0000 3.6449 10.1775
1000.0000 4.5528 9.7236
1000.0000 5.4607 9.2697
1000.0000 6.3685 8.8157
1000.0000 7.2764 8.3618
1000.0000 8.1843 7.9079
1000.0000 9.0921 7.4539
1000.0000 10.0000 7.0000 FD
1000.0000 10.8333 7.0000
1000.0000 11.6667 7.0000
1000.0000 12.5000 7.0000
1000.0000 13.3333 7.0000
1000.0000 14.1667 7.0000
1000.0000 15.0000 7.0000
1000.0000 15.8333 7.0000
1000.0000 16.6667 7.0000
1000.0000 17.5000 7.0000
1000.0000 18.3333 7.0000
1000.0000 19.1667 7.0000
1000.0000 20.0000 7.0000 FG
1000.0000 20.9079 7.4539
1000.0000 21.8157 7.9079
1000.0000 22.7236 8.3618
1000.0000 23.6315 8.8157
1000.0000 24.5393 9.2697
1000.0000 25.4472 9.7236
1000.0000 26.3551 10.1775
1000.0000 27.2630 10.6315
1000.0000 28.1708 11.0854
1000.0000 29.0787 11.5393
1000.0000 29.9866 11.9933
1000.0000 30.0000 13.0000
999.9990 999.9990 999.9990

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1 +0,0 @@
$Clapet_001 clapet

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

View File

@ -12,3 +12,5 @@ shapely>=2.0.1
lxml>=4.9.3
platformdirs>=4.2.0
pyshp>=2.3.1
rasterio==1.3.11
#fortranformat==2.0.3

View File

@ -46,6 +46,10 @@ copy /y ..\mage8-windows\mage_extraire.exe pamhyr\mage8\
copy /y ..\mage8-windows\mailleurTT.exe pamhyr\mage8\
copy /y ..\mage8-windows\libbief.dll pamhyr\mage8\
rem adists
mkdir pamhyr\adists
copy /y ..\adists-windows\adists.exe pamhyr\adists\
rem Copy tests_cases
mkdir pamhyr\tests_cases
mkdir pamhyr\tests_cases\Saar
@ -64,14 +68,24 @@ copy /y ..\doc\dev\images\* pamhyr\doc\images
copy /y ..\doc\images\* pamhyr\doc\images
rem Tuto
mkdir pamhyr\doc\Tuto1\
mkdir pamhyr\doc\Tuto1\data
copy /y ..\doc\users\Tuto1\Hogneau_Engees2022.pdf pamhyr\doc\Tuto1\Hogneau_Engees2022.pdf
copy /y ..\doc\users\Tuto1\step-by-step.pdf pamhyr\doc\Tuto1\Tuto1-en.pdf
copy /y ..\doc\users\Tuto1\pas-a-pas.pdf pamhyr\doc\Tuto1\Tuto1-fr.pdf
copy /y ..\doc\users\Tuto1\*.pamhyr pamhyr\doc\Tuto1\
copy /y ..\doc\users\Tuto1\data\* pamhyr\doc\Tuto1\data\
mkdir pamhyr\doc\TP_Hydraulique_Hogneau\
mkdir pamhyr\doc\TP_Hydraulique_Hogneau\data
copy /y ..\doc\users\TP_Hydraulique_Hogneau\Hogneau_Engees2022.pdf pamhyr\doc\TP_Hydraulique_Hogneau\Hogneau_Engees2022.pdf
copy /y ..\doc\users\TP_Hydraulique_Hogneau\step-by-step.pdf pamhyr\doc\TP_Hydraulique_Hogneau\Tuto1-en.pdf
copy /y ..\doc\users\TP_Hydraulique_Hogneau\pas-a-pas.pdf pamhyr\doc\TP_Hydraulique_Hogneau\Tuto1-fr.pdf
copy /y ..\doc\users\TP_Hydraulique_Hogneau\Tuto-2-fr.pdf pamhyr\doc\TP_Hydraulique_Hogneau\Tuto2-fr.pdf
copy /y ..\doc\users\TP_Hydraulique_Hogneau\*.pamhyr pamhyr\doc\TP_Hydraulique_Hogneau\
copy /y ..\doc\users\TP_Hydraulique_Hogneau\data\* pamhyr\doc\TP_Hydraulique_Hogneau\data\
rem TP charriage
mkdir pamhyr\doc\TP_charriage
copy /y ..\doc\users\TP_charriage\ pamhyr\doc\TP_charriage
mkdir pamhyr\doc\TP_charriage\Donnees_TP_Pamhyr2_charriage
copy /y ..\doc\users\TP_charriage\TP_Pamhyr2_charriage.pdf pamhyr\doc\TP_charriage\
copy /y ..\doc\users\TP_charriage\Donnees_TP_Pamhyr2_charriage\* pamhyr\doc\TP_charriage\Donnees_TP_Pamhyr2_charriage\
rem TP AdisTS
mkdir pamhyr\doc\TP_AdisTS_Vieux_Rhone\
mkdir pamhyr\doc\TP_AdisTS_Vieux_Rhone\data
copy /y ..\doc\users\TP_AdisTS_Vieux_Rhone\*.pdf pamhyr\doc\TP_AdisTS_Vieux_Rhone\
copy /y ..\doc\users\TP_AdisTS_Vieux_Rhone\*.pamhyr pamhyr\doc\TP_AdisTS_Vieux_Rhone\
copy /y ..\doc\users\TP_AdisTS_Vieux_Rhone\data\* pamhyr\doc\TP_AdisTS_Vieux_Rhone\data\

View File

@ -12,3 +12,5 @@ shapely>=2.0.1
lxml>=4.9.3
platformdirs>=4.2.0
pyshp>=2.3.1
rasterio==1.3.11
#fortranformat==2.0.3

View File

@ -29,6 +29,7 @@ _translate = QCoreApplication.translate
logger = logging.getLogger()
class AdistsOutputRKChecker(AbstractModelChecker):
def __init__(self):
super(AdistsOutputRKChecker, self).__init__()

View File

@ -410,7 +410,7 @@ class MeshingWithMageMailleurTT(AMeshingTool):
str,
[
st_file, m_file,
"update_rk", step,
"update_kp", step,
limites[0], limites[1],
directrices[0], directrices[1],
orientation, lm, linear, origin, origin_value

View File

@ -128,7 +128,8 @@ class BoundaryCondition(SQLSubModel):
bc.node = None
if row[3] != -1:
bc.node = next(filter(lambda n: n.id == row[3], data["nodes"]))
bc.node = next(filter(lambda n: n.id == row[3], data["nodes"]),
None)
values = execute(
"SELECT ind, data0, data1 FROM boundary_condition_data " +

View File

@ -53,7 +53,8 @@ class BoundaryConditionAdisTS(SQLSubModel):
self._header = []
self._types = [self.time_convert, float]
BoundaryConditionAdisTS._id_cnt = max(BoundaryConditionAdisTS._id_cnt + 1, self.id)
BoundaryConditionAdisTS._id_cnt = max(
BoundaryConditionAdisTS._id_cnt + 1, self.id)
@classmethod
def _db_create(cls, execute):
@ -105,10 +106,17 @@ class BoundaryConditionAdisTS(SQLSubModel):
bc.node = None
if row[3] != -1:
bc.node = next(filter(lambda n: n.id == row[3], data["nodes"])).id
tmp = next(filter(
lambda n: n.id == row[3], data["nodes"]),
None)
if tmp is not None:
bc.node = tmp.id
else:
bc.node = -1
values = execute(
"SELECT data0, data1 FROM boundary_condition_data_adists " +
"SELECT data0, data1 FROM " +
"boundary_condition_data_adists " +
f"WHERE bc = '{bc.id}'"
)
@ -126,7 +134,8 @@ class BoundaryConditionAdisTS(SQLSubModel):
def _db_save(self, execute, data=None):
execute(f"DELETE FROM boundary_condition_adists WHERE id = {self.id}")
execute(f"DELETE FROM boundary_condition_data_adists WHERE bc = {self.id}")
execute(f"DELETE FROM boundary_condition_data_adists" +
f" WHERE bc = {self.id}")
node = -1
if self._node is not None:
@ -196,6 +205,11 @@ class BoundaryConditionAdisTS(SQLSubModel):
def pollutant(self):
return self._pollutant
@pollutant.setter
def pollutant(self, pollutant):
self._pollutant = pollutant
self._status.modified()
@property
def type(self):
return self._type
@ -209,13 +223,81 @@ class BoundaryConditionAdisTS(SQLSubModel):
def data(self):
return self._data.copy()
@property
def _default_0(self):
return self._types[0](0)
@property
def _default_1(self):
return self._types[1](0.0)
def new_from_data(self, header, data):
new_0 = self._default_0
new_1 = self._default_1
if len(header) != 0:
for i in [0, 1]:
for j in range(len(header)):
if self._header[i] == header[j]:
if i == 0:
new_0 = self._types[i](data[j].replace(",", "."))
else:
new_1 = self._types[i](data[j].replace(",", "."))
else:
new_0 = self._types[0](data[0].replace(",", "."))
new_1 = self._types[1](data[1].replace(",", "."))
return (new_0, new_1)
def add(self, index: int):
value = (self._default_0, self._default_1)
self._data.insert(index, value)
self._status.modified()
return value
def insert(self, index: int, value):
self._data.insert(index, value)
self._status.modified()
def delete_i(self, indexes):
self._data = list(
map(
lambda e: e[1],
filter(
lambda e: e[0] not in indexes,
enumerate(self.data)
)
)
)
self._status.modified()
def sort(self, _reverse=False, key=None):
if key is None:
self._data.sort(reverse=_reverse)
else:
self._data.sort(reverse=_reverse, key=key)
self._status.modified()
def index(self, bc):
self._data.index(bc)
def get_i(self, index):
return self.data[index]
def get_range(self, _range):
lst = []
for r in _range:
lst.append(r)
return lst
def _set_i_c_v(self, index, column, value):
v = list(self._data[index])
v[column] = self._types[column](value)
self._data[index] = tuple(v)
self._status.modified()
def set_i_0(self, index: int, value):
self._set_i_c_v(index, 0, value)
def set_i_1(self, index: int, value):
self._set_i_c_v(index, 1, value)

View File

@ -22,7 +22,9 @@ from tools import trace, timer
from Model.Tools.PamhyrList import PamhyrModelList
from Model.Except import NotImplementedMethodeError
from Model.BoundaryConditionsAdisTS.BoundaryConditionAdisTS import BoundaryConditionAdisTS
from Model.BoundaryConditionsAdisTS.BoundaryConditionAdisTS \
import BoundaryConditionAdisTS
class BoundaryConditionsAdisTSList(PamhyrModelList):
_sub_classes = [
@ -63,6 +65,3 @@ class BoundaryConditionsAdisTSList(PamhyrModelList):
@property
def BCs_AdisTS_List(self):
return self.lst

View File

@ -28,6 +28,7 @@ from Model.D90AdisTS.D90AdisTSSpec import D90AdisTSSpec
logger = logging.getLogger()
class D90AdisTS(SQLSubModel):
_sub_classes = [
D90AdisTSSpec,
@ -71,7 +72,7 @@ class D90AdisTS(SQLSubModel):
@classmethod
def _db_update(cls, execute, version):
major, minor, release = version.strip().split(".")
if major == minor == "0":
if major == 0 and minor < 1:
if int(release) < 6:
cls._db_create(execute)
@ -193,9 +194,3 @@ class D90AdisTS(SQLSubModel):
def insert(self, index, data):
self._data.insert(index, data)
self._status.modified()

View File

@ -22,6 +22,7 @@ from tools import trace, timer
from Model.Tools.PamhyrList import PamhyrModelList
from Model.D90AdisTS.D90AdisTS import D90AdisTS
class D90AdisTSList(PamhyrModelList):
_sub_classes = [
D90AdisTS,
@ -60,7 +61,3 @@ class D90AdisTSList(PamhyrModelList):
@property
def D90_AdisTS_List(self):
return self.lst

View File

@ -25,6 +25,7 @@ from Model.Except import NotImplementedMethodeError
logger = logging.getLogger()
class D90AdisTSSpec(SQLSubModel):
_sub_classes = [
]
@ -72,7 +73,7 @@ class D90AdisTSSpec(SQLSubModel):
@classmethod
def _db_update(cls, execute, version):
major, minor, release = version.strip().split(".")
if major == minor == "0":
if major == 0 and minor < 1:
if int(release) < 6:
cls._db_create(execute)
@ -89,6 +90,7 @@ class D90AdisTSSpec(SQLSubModel):
f"WHERE d90_default = {data['d90_default_id']} "
)
if table is not None:
for row in table:
id = row[0]
name = row[2]
@ -189,12 +191,3 @@ class D90AdisTSSpec(SQLSubModel):
def enabled(self, enabled):
self._enabled = enabled
self._status.modified()

Some files were not shown because too many files have changed in this diff Show More