From 7b01c01ec549e6c62f2123053eb05b10d401008d Mon Sep 17 00:00:00 2001 From: David Dorchies <david.dorchies@irstea.fr> Date: Mon, 12 Aug 2019 09:58:19 +0200 Subject: [PATCH] Invisible parameters can be calculated anyway (Q for Compound Macrorugo) --- spec/fuzzing.spec.ts | 1 + src/nub.ts | 1 - src/structure/structure.ts | 2 +- src/structure/structure_cem88d.ts | 10 ++++++++++ src/structure/structure_cem88v.ts | 10 ++++++++++ src/structure/structure_cunge80.ts | 10 ++++++++++ src/structure/structure_rectangular_orifice_free.ts | 9 +++++++++ .../structure_rectangular_orifice_submerged.ts | 9 +++++++++ 8 files changed, 50 insertions(+), 2 deletions(-) diff --git a/spec/fuzzing.spec.ts b/spec/fuzzing.spec.ts index 060e09dc..c2643906 100644 --- a/spec/fuzzing.spec.ts +++ b/spec/fuzzing.spec.ts @@ -155,6 +155,7 @@ describe("Fuzz testing", () => { } }); for (const iCalType of calTypes) { + // if ([CalculatorType.MacroRugoCompound].includes(iCalType)) { if (!nubsNotTested.includes(iCalType)) { describe(CalculatorType[iCalType], () => { for (let i = 0; i < fuzzyCfg.nTests; i++) { diff --git a/src/nub.ts b/src/nub.ts index 4e32a729..a9c8ce5d 100644 --- a/src/nub.ts +++ b/src/nub.ts @@ -71,7 +71,6 @@ export abstract class Nub extends ComputeNode implements IObservable { for (const p of this.parameterIterator) { if ( p.symbol !== "Pr" && - p.visible && [ParamCalculability.DICHO, ParamCalculability.EQUATION].includes(p.calculability) ) { calcPrms.push(p); diff --git a/src/structure/structure.ts b/src/structure/structure.ts index 01980793..75285fdc 100644 --- a/src/structure/structure.ts +++ b/src/structure/structure.ts @@ -320,7 +320,7 @@ export abstract class Structure extends Nub { this.prms.Z2.calculability = ParamCalculability.DICHO; this.prms.h1.calculability = ParamCalculability.DICHO; this.prms.h2.calculability = ParamCalculability.DICHO; - this.prms.W.calculability = ParamCalculability.DICHO; + this.prms.W.calculability = ParamCalculability.FIXED; } /** diff --git a/src/structure/structure_cem88d.ts b/src/structure/structure_cem88d.ts index 08bfeb4c..51d820c5 100644 --- a/src/structure/structure_cem88d.ts +++ b/src/structure/structure_cem88d.ts @@ -1,3 +1,4 @@ +import { ParamCalculability } from "../param/param-definition"; import { Result } from "../util/result"; import { RectangularStructure } from "./rectangular_structure"; import { RectangularStructureParams } from "./rectangular_structure_params"; @@ -65,6 +66,14 @@ export class StructureGateCem88d extends RectangularStructure { return new Result(v, this, data); } + + /** + * paramétrage de la calculabilité des paramètres + */ + protected setParametersCalculability() { + super.setParametersCalculability(); + this.prms.W.calculability = ParamCalculability.DICHO; + } } // tslint:disable-next-line:max-classes-per-file @@ -81,4 +90,5 @@ export class StructureWeirCem88d extends StructureGateCem88d { protected getFlowMode(): StructureFlowMode { return StructureFlowMode.WEIR; } + } diff --git a/src/structure/structure_cem88v.ts b/src/structure/structure_cem88v.ts index 8a5d9c49..dec63d40 100644 --- a/src/structure/structure_cem88v.ts +++ b/src/structure/structure_cem88v.ts @@ -1,3 +1,4 @@ +import { ParamCalculability } from "../param/param-definition"; import { Result } from "../util/result"; import { RectangularStructure } from "./rectangular_structure"; import { RectangularStructureParams } from "./rectangular_structure_params"; @@ -115,6 +116,14 @@ export class StructureGateCem88v extends RectangularStructure { } } + /** + * paramétrage de la calculabilité des paramètres + */ + protected setParametersCalculability() { + super.setParametersCalculability(); + this.prms.W.calculability = ParamCalculability.DICHO; + } + private getAlfa(h2: number): number { let alfa: number = 1 - 0.14 * (h2) / this.W; alfa = Math.min(Math.max(alfa, 0.4), 0.75); @@ -147,4 +156,5 @@ export class StructureWeirCem88v extends StructureGateCem88v { protected getFlowMode(): StructureFlowMode { return StructureFlowMode.WEIR; } + } diff --git a/src/structure/structure_cunge80.ts b/src/structure/structure_cunge80.ts index 79c2fff0..a19f4354 100644 --- a/src/structure/structure_cunge80.ts +++ b/src/structure/structure_cunge80.ts @@ -1,3 +1,4 @@ +import { ParamCalculability } from "../param/param-definition"; import { Result } from "../util/result"; import { RectangularStructure } from "./rectangular_structure"; import { RectangularStructureParams } from "./rectangular_structure_params"; @@ -80,6 +81,14 @@ export class StructureGateCunge80 extends RectangularStructure { } } } + + /** + * paramétrage de la calculabilité des paramètres + */ + protected setParametersCalculability() { + super.setParametersCalculability(); + this.prms.W.calculability = ParamCalculability.DICHO; + } } // tslint:disable-next-line:max-classes-per-file @@ -94,4 +103,5 @@ export class StructureWeirCunge80 extends StructureGateCunge80 { protected getFlowMode(): StructureFlowMode { return StructureFlowMode.WEIR; } + } diff --git a/src/structure/structure_rectangular_orifice_free.ts b/src/structure/structure_rectangular_orifice_free.ts index 8f0592b6..18c2cc80 100644 --- a/src/structure/structure_rectangular_orifice_free.ts +++ b/src/structure/structure_rectangular_orifice_free.ts @@ -1,3 +1,4 @@ +import { ParamCalculability } from "../param/param-definition"; import { Result } from "../util/result"; import { RectangularStructure } from "./rectangular_structure"; import { RectangularStructureParams } from "./rectangular_structure_params"; @@ -34,4 +35,12 @@ export class StructureRectangularOrificeFree extends RectangularStructure { protected getFlowRegime() { return StructureFlowRegime.FREE; } + + /** + * paramétrage de la calculabilité des paramètres + */ + protected setParametersCalculability() { + super.setParametersCalculability(); + this.prms.W.calculability = ParamCalculability.DICHO; + } } diff --git a/src/structure/structure_rectangular_orifice_submerged.ts b/src/structure/structure_rectangular_orifice_submerged.ts index 2550a70e..257bbd49 100644 --- a/src/structure/structure_rectangular_orifice_submerged.ts +++ b/src/structure/structure_rectangular_orifice_submerged.ts @@ -1,3 +1,4 @@ +import { ParamCalculability } from "../param/param-definition"; import { Result } from "../util/result"; import { RectangularStructure } from "./rectangular_structure"; import { RectangularStructureParams } from "./rectangular_structure_params"; @@ -37,4 +38,12 @@ export class StructureRectangularOrificeSubmerged extends RectangularStructure { protected getFlowRegime() { return StructureFlowRegime.SUBMERGED; } + + /** + * paramétrage de la calculabilité des paramètres + */ + protected setParametersCalculability() { + super.setParametersCalculability(); + this.prms.W.calculability = ParamCalculability.DICHO; + } } -- GitLab