From c35d58cffade917300b4cf99ac31cb5ec0dfb7e4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Grand?= <francois.grand@inrae.fr>
Date: Thu, 23 Mar 2023 08:56:52 +0100
Subject: [PATCH] refactor: check submergence percentage in Calc() instead of
 CalcSerie()

refs #302
---
 src/structure/parallel_structure.ts                | 14 ++++++--------
 src/structure/structure.ts                         | 14 ++++++++++----
 src/structure/structure_weir_submerged.ts          |  2 +-
 src/structure/structure_weir_submerged_larinier.ts |  2 +-
 4 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/src/structure/parallel_structure.ts b/src/structure/parallel_structure.ts
index 2a17ac83..be5b634c 100644
--- a/src/structure/parallel_structure.ts
+++ b/src/structure/parallel_structure.ts
@@ -74,14 +74,7 @@ export class ParallelStructure extends Nub {
             this._result.globalLog.insert(new Message(MessageCode.ERROR_STRUCTURE_AU_MOINS_UNE));
             return this._result;
         }
-        const res = super.CalcSerie(rInit);
-
-        // check structures submergence for some discharge laws
-        for (const st of this.structures) {
-            st.checkSubmergence();
-        }
-
-        return res;
+        return super.CalcSerie(rInit);
     }
 
     /**
@@ -158,6 +151,11 @@ export class ParallelStructure extends Nub {
                 this.result.globalLog.addLog(r.globalLog);
         }
 
+        // check structures submergence for some discharge laws
+        for (const st of this.structures) {
+            st.checkSubmergence();
+        }
+
         return this.result;
     }
 
diff --git a/src/structure/structure.ts b/src/structure/structure.ts
index 951c1e25..c644f55b 100644
--- a/src/structure/structure.ts
+++ b/src/structure/structure.ts
@@ -78,11 +78,11 @@ export abstract class Structure extends ChildNub {
     }
 
     /**
-     * méthode générique de vérification que l'ennoiemment est supérieur à une valeur donnée
-     * @param min valeur minimum de l'ennoiemment
+     * méthode générique de vérification que l'ennoiement est supérieur à une valeur donnée
+     * @param min valeur minimum de l'ennoiement
      */
     protected checkSubmergenceMin(min: number) {
-        const h2h1ratio = this.prms.h2.V / this.prms.h1.V;
+        const h2h1ratio = this.prms.h2.v / this.prms.h1.v;
         if (h2h1ratio < min) {
             this._result.resultElement.addMessage(new Message(
                 MessageCode.ERROR_STRUCTURE_SUBMERGENCE_LOWER_THAN,
@@ -95,7 +95,7 @@ export abstract class Structure extends ChildNub {
     }
 
     /**
-     * fonction appelée dans Calc() pour vérifier l'ennoiemment (cf. classes dérivées)
+     * fonction appelée dans Calc() pour vérifier l'ennoiement (cf. classes dérivées)
      */
     public checkSubmergence() {
     }
@@ -278,6 +278,12 @@ export abstract class Structure extends ChildNub {
         return super.Calc(sVarCalc, rInit);
     }
 
+    public CalcSerie(rInit?: number, resetDepending: boolean = true): Result {
+        const res = super.CalcSerie(rInit, resetDepending);
+        this.checkSubmergence();
+        return res;
+    }
+
     /**
      * Equation preprocessing
      * @return true if inverted discharge
diff --git a/src/structure/structure_weir_submerged.ts b/src/structure/structure_weir_submerged.ts
index f64e39ca..e5ef98b9 100644
--- a/src/structure/structure_weir_submerged.ts
+++ b/src/structure/structure_weir_submerged.ts
@@ -20,7 +20,7 @@ export class StructureWeirSubmerged extends RectangularStructure {
     }
 
     /**
-     * vérification que l'ennoiemment est supérieur à une valeur donnée
+     * vérification que l'ennoiement est supérieur à une valeur donnée
      */
     public checkSubmergence() {
         this.checkSubmergenceMin(0.6);
diff --git a/src/structure/structure_weir_submerged_larinier.ts b/src/structure/structure_weir_submerged_larinier.ts
index a2e21b1c..ca3843d0 100644
--- a/src/structure/structure_weir_submerged_larinier.ts
+++ b/src/structure/structure_weir_submerged_larinier.ts
@@ -26,7 +26,7 @@ export class StructureWeirSubmergedLarinier extends RectangularStructure {
     }
 
     /**
-     * vérification que l'ennoiemment est supérieur à une valeur donnée
+     * vérification que l'ennoiement est supérieur à une valeur donnée
      */
     public checkSubmergence() {
         this.checkSubmergenceMin(0.5);
-- 
GitLab