diff --git a/src/pab/cloison_aval.ts b/src/pab/cloison_aval.ts index 39c48c4a489c53a0cbe52efaee8a5eedabe10b02..ab93fa43b92a9b032802de072bce3b7fe8452add 100644 --- a/src/pab/cloison_aval.ts +++ b/src/pab/cloison_aval.ts @@ -74,7 +74,9 @@ export class CloisonAval extends ParallelStructure { } if (!this.hasVanneLevante() || this.result.ok) { // Calculation of Z1 with the new ZDV in case of existing vanne levante + this._doVanLevSubmergenceCheck = false; this.currentResultElement = super.Calc("Z1", rInit); + this._doVanLevSubmergenceCheck = true; if (this.result.ok) { this.getParameter(sVarCalc).v = this.result.vCalc; // Recalcul du débit total pour récupérer les résultats des ouvrages dans les résultats complémentaires diff --git a/src/structure/parallel_structure.ts b/src/structure/parallel_structure.ts index 682beb1c33c2d061ef60459d6a74396bc2d26b2d..addfaac739f62ec15a6721555da7c2fe5a441be0 100644 --- a/src/structure/parallel_structure.ts +++ b/src/structure/parallel_structure.ts @@ -16,9 +16,17 @@ import { MessageCode, Message } from "../internal_modules"; */ export class ParallelStructure extends Nub { + /** + * false pour inihiber le test d'erreur d'ennoiement dans les vannes levantes + * @see checkSubmergence + * @see checkSubmergenceMin + */ + protected _doVanLevSubmergenceCheck: boolean; + constructor(prms: ParamsEquation, dbg: boolean = false) { super(prms, dbg); this.setCalculatorType(CalculatorType.ParallelStructure); + this._doVanLevSubmergenceCheck = true; } /** children casting */ @@ -40,6 +48,10 @@ export class ParallelStructure extends Nub { return this._prms as ParallelStructureParams; } + public get doVanLevSubmergenceCheck(): boolean { + return this._doVanLevSubmergenceCheck; + } + /** Returns admissible LoiDebit grouped by StructureType */ public getLoisAdmissibles(): { [key: string]: LoiDebit[]; } { return loiAdmissiblesOuvrages; diff --git a/src/structure/structure.ts b/src/structure/structure.ts index 5ac03cb2d53b5a35382a6c11887299315e2f7969..e90938f0d0fa63b84fcbb5db4a71c6f54840ab59 100644 --- a/src/structure/structure.ts +++ b/src/structure/structure.ts @@ -81,16 +81,22 @@ export abstract class Structure extends ChildNub { * 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; - if (h2h1ratio < min) { - this._result.resultElement.addMessage(new Message( - MessageCode.ERROR_STRUCTURE_SUBMERGENCE_LOWER_THAN, - { - submergencePerc: this.computeSubmergencePercentage().toString(), - min: min * 100 - } - )); + protected checkSubmergenceMin(res: Result, min: number) { + // on fait le test soit : + // - si cette structure n'est pas une vanne levante + // - si cette structure est une vanne levante et le flag d'autorisation du test est vrai + if (!this.isVanneLevante || this.doVanLevSubmergenceCheck) { + const h2h1ratio = this.prms.h2.v / this.prms.h1.v; + if (h2h1ratio < min) { + res.resultElement.addMessage(new Message( + // this._result.globalLog.add(new Message( + MessageCode.ERROR_STRUCTURE_SUBMERGENCE_LOWER_THAN, + { + submergencePerc: this.computeSubmergencePercentage().toString(), + min: min * 100 + } + )); + } } } @@ -119,6 +125,20 @@ export abstract class Structure extends ChildNub { this._intlType = "Ouvrage"; } + public get doVanLevSubmergenceCheck(): boolean { + const ps = this.parent as ParallelStructure; + return ps.doVanLevSubmergenceCheck; + } + + /** + * true si la structure est une vanne levante + * @see StructureVanLevLarinier + * @see StructureVanLevVillemonte + */ + protected get isVanneLevante(): boolean { + return false; + } + public get isZDVcalculable(): boolean { return this._isZDVcalculable; } diff --git a/src/structure/structure_vanlev_larinier.ts b/src/structure/structure_vanlev_larinier.ts index 002838b5da4ebd2a8c547da824bdb83945119dc4..0f01035454a1d4242b766b388fc235b3ea36b430 100644 --- a/src/structure/structure_vanlev_larinier.ts +++ b/src/structure/structure_vanlev_larinier.ts @@ -15,4 +15,8 @@ export class StructureVanLevLarinier extends StructureWeirSubmergedLarinier { get prms(): StructureVanLevParams { return this._prms as StructureVanLevParams; } + + protected get isVanneLevante(): boolean { + return true; + } } diff --git a/src/structure/structure_vanlev_villemonte.ts b/src/structure/structure_vanlev_villemonte.ts index da61603d45c692b508ef5f50da3bd155a21a3416..9c01ef9f5fe638c286806d1c7203b9438739eefe 100644 --- a/src/structure/structure_vanlev_villemonte.ts +++ b/src/structure/structure_vanlev_villemonte.ts @@ -15,4 +15,8 @@ export class StructureVanLevVillemonte extends StructureWeirVillemonte { get prms(): StructureVanLevParams { return this._prms as StructureVanLevParams; } + + protected get isVanneLevante(): boolean { + return true; + } }