diff --git a/src/structure/structure.ts b/src/structure/structure.ts
index 3f5b891a4172ceda543a45e82c5d95b49fb1a4e7..951c1e259087875f0bd19e2d0c96af1336017328 100644
--- a/src/structure/structure.ts
+++ b/src/structure/structure.ts
@@ -77,24 +77,27 @@ export abstract class Structure extends ChildNub {
         return 100;
     }
 
-    private checkSubmergenceMin(loi: LoiDebit, min: number) {
-        if (this.loiDebit === loi) {
-            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,
-                    {
-                        submergencePerc: this.computeSubmergencePercentage().toString(),
-                        min: min
-                    }
-                ));
-            }
+    /**
+     * 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
+     */
+    protected checkSubmergenceMin(min: number) {
+        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,
+                {
+                    submergencePerc: this.computeSubmergencePercentage().toString(),
+                    min: min
+                }
+            ));
         }
     }
 
+    /**
+     * fonction appelée dans Calc() pour vérifier l'ennoiemment (cf. classes dérivées)
+     */
     public checkSubmergence() {
-        this.checkSubmergenceMin(LoiDebit.WeirSubmergedLarinier, 0.5);
-        this.checkSubmergenceMin(LoiDebit.WeirSubmerged, 0.6);
     }
 
     /** Constante utile : Racine de 2g */
diff --git a/src/structure/structure_weir_submerged.ts b/src/structure/structure_weir_submerged.ts
index 727c1ab3ad0d17b7767b3c3de772020d5dcc4328..f64e39cadb01b7f0127a0d6510e7d0212a23aad2 100644
--- a/src/structure/structure_weir_submerged.ts
+++ b/src/structure/structure_weir_submerged.ts
@@ -19,6 +19,13 @@ export class StructureWeirSubmerged extends RectangularStructure {
         this.prms.CdWS.visible = true;
     }
 
+    /**
+     * vérification que l'ennoiemment est supérieur à une valeur donnée
+     */
+    public checkSubmergence() {
+        this.checkSubmergenceMin(0.6);
+    }
+
     public Calc(sVarCalc: string, rInit?: number): Result {
         this.currentResultElement = super.Calc(sVarCalc, rInit);
         const h2h1ratio = this.prms.h2.v / this.prms.h1.v;
diff --git a/src/structure/structure_weir_submerged_larinier.ts b/src/structure/structure_weir_submerged_larinier.ts
index 22db3d6e11bc9093cf323f3e523547de24dfe485..a2e21b1c7a3dbd65924081210a8d848b6f62d5d1 100644
--- a/src/structure/structure_weir_submerged_larinier.ts
+++ b/src/structure/structure_weir_submerged_larinier.ts
@@ -25,6 +25,13 @@ export class StructureWeirSubmergedLarinier extends RectangularStructure {
         return this._prms as RectangularStructureParams;
     }
 
+    /**
+     * vérification que l'ennoiemment est supérieur à une valeur donnée
+     */
+    public checkSubmergence() {
+        this.checkSubmergenceMin(0.5);
+    }
+
     public Calc(sVarCalc: string, rInit?: number): Result {
         this.currentResultElement = super.Calc(sVarCalc, rInit);
         const h2h1ratio = this.prms.h2.v / this.prms.h1.v;