From d89bc96394551d92f68106c66ef2dd4d0e809e9e 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:08 +0100 Subject: [PATCH] refactor: check submergence percentage in structure derived classes refs #302 --- src/structure/structure.ts | 31 ++++++++++--------- src/structure/structure_weir_submerged.ts | 7 +++++ .../structure_weir_submerged_larinier.ts | 7 +++++ 3 files changed, 31 insertions(+), 14 deletions(-) diff --git a/src/structure/structure.ts b/src/structure/structure.ts index 3f5b891a..951c1e25 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 727c1ab3..f64e39ca 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 22db3d6e..a2e21b1c 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; -- GitLab