From 82d11c990faed33dd3119a64f1ea622dccc282dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grand?= <francois.grand@inrae.fr> Date: Mon, 5 Sep 2022 16:43:58 +0200 Subject: [PATCH] feat: backwater curve: generate error when discretisation step is greater than reach length refs #316 refs cassiopee/nghyd#565 --- src/open-channel/remous.ts | 9 +++++++-- src/util/message.ts | 5 +++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/open-channel/remous.ts b/src/open-channel/remous.ts index 0ffc2131..f3be2739 100644 --- a/src/open-channel/remous.ts +++ b/src/open-channel/remous.ts @@ -35,7 +35,7 @@ export class CourbeRemous extends SectionNub { private Dx: number; constructor(s: acSection, crp: CourbeRemousParams, method: MethodeResolution = MethodeResolution.Trapezes, - dbg: boolean = false + dbg: boolean = false ) { super(crp, dbg); this._calcType = CalculatorType.CourbeRemous; @@ -103,6 +103,11 @@ export class CourbeRemous extends SectionNub { res.globalLog.add(new Message(MessageCode.ERROR_REMOUS_NO_WATER_LINE)); return res; } + // si le pas de discrétisation est inférieur à la longueur du bief + if (this.prms.Dx.singleValue >= this.prms.Long.singleValue) { + res.globalLog.add(new Message(MessageCode.ERROR_REMOUS_PAS_SUPERIEUR_BIEF)); + return res; + } // let Yc: number = this.Sn.CalcSection("Yc"); const rYC = this.Sn.CalcSection("Yc"); @@ -471,7 +476,7 @@ export class CourbeRemous extends SectionNub { res.addLog(rVar.log); } else { let val = rVar.vCalc; - if ([ "Hs", "Hsc", "Ycor", "Ycon" ].includes(valACal)) { + if (["Hs", "Hsc", "Ycor", "Ycon"].includes(valACal)) { val += this.getCoteFond(x); } re.addExtraResult(valACal, val); diff --git a/src/util/message.ts b/src/util/message.ts index ae3e98ec..2d032ccb 100644 --- a/src/util/message.ts +++ b/src/util/message.ts @@ -417,6 +417,11 @@ export enum MessageCode { */ ERROR_REMOUS_PENTE_FORTE, + /** + * courbe de remous : Le pas de discrétisation doit être inférieur ou égal à la longueur du bief + */ + ERROR_REMOUS_PAS_SUPERIEUR_BIEF, + /** * courbe de remous : Condition limite aval < Hauteur critique : pas de calcul possible depuis l'aval */ -- GitLab