From 2ac41be2136b230845640654e3cb5f2c454fe96b Mon Sep 17 00:00:00 2001 From: "mathias.chouet" <mathias.chouet@irstea.fr> Date: Fri, 18 Jan 2019 15:27:03 +0100 Subject: [PATCH] =?UTF-8?q?Modification=20du=20syst=C3=A8me=20d'UIDtype:?= =?UTF-8?q?=20number=20=3D>=20stringUID=20des=20Param=C3=A8tres=20construi?= =?UTF-8?q?ts=20par=20uidnub::symbol?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spec/iterator/named_iterable_value.spec.ts | 4 +-- spec/nubtest.ts | 6 ++-- spec/param.spec.ts | 36 +++++++++---------- src/compute-node.ts | 4 +++ src/cond_distri.ts | 10 +++--- src/jalhyd_object.ts | 6 ++-- src/lechaptcalmon.ts | 14 ++++---- src/nub.ts | 3 +- src/pab/pab_dimension.ts | 8 ++--- src/pab/pab_puissance.ts | 8 ++--- src/param/param-definition.ts | 35 ++++++++++++++---- src/param/param-value-iterator.ts | 1 - src/param/params-equation.ts | 15 +++++++- src/remous.ts | 8 ++--- src/section/section_circulaire.ts | 2 +- src/section/section_nub.ts | 2 +- src/section/section_puissance.ts | 2 +- src/section/section_trapez.ts | 4 +-- src/section/section_type.ts | 19 +++++----- src/structure/cloisons_params.ts | 8 ++--- src/structure/dever_params.ts | 4 +-- src/structure/parallel_structure_params.ts | 6 ++-- src/structure/rectangular_structure_params.ts | 4 +-- src/structure/structure_kivi_params.ts | 8 ++--- .../structure_orifice_submerged_params.ts | 4 +-- src/structure/structure_params.ts | 14 ++++---- ...cture_triangular_trunc_weir_free_params.ts | 6 ++-- .../structure_triangular_weir_free_params.ts | 4 +-- 28 files changed, 142 insertions(+), 103 deletions(-) diff --git a/spec/iterator/named_iterable_value.spec.ts b/spec/iterator/named_iterable_value.spec.ts index 42926eb2..8770e8d0 100644 --- a/spec/iterator/named_iterable_value.spec.ts +++ b/spec/iterator/named_iterable_value.spec.ts @@ -9,7 +9,7 @@ import { ExtraResults, ParamDefinition, ParamDomainValue, Result, ResultElement // import { describe, expect, it, xdescribe, xit } from "../mock_jasmine"; function testParamDefinitionValues(vals: number[]): ParamDefinition { - const p: ParamDefinition = new ParamDefinition("aa", ParamDomainValue.ANY); + const p: ParamDefinition = new ParamDefinition(null, "aa", ParamDomainValue.ANY); p.paramValues.setValues(vals); @@ -61,7 +61,7 @@ describe("INamedIterableValues : ", () => { describe("ParamDefinition : ", () => { it("test 1", () => { const name = "aa"; - const p: ParamDefinition = new ParamDefinition(name, ParamDomainValue.ANY); + const p: ParamDefinition = new ParamDefinition(null, name, ParamDomainValue.ANY); expect(p.name).toEqual(name); }); diff --git a/spec/nubtest.ts b/spec/nubtest.ts index 710e3526..8f48e500 100644 --- a/spec/nubtest.ts +++ b/spec/nubtest.ts @@ -10,9 +10,9 @@ export class NubTestParams extends ParamsEquation { constructor() { super(); - this._A = new ParamDefinition("A", ParamDomainValue.POS_NULL, 1); - this._B = new ParamDefinition("B", ParamDomainValue.POS_NULL, 2); - this._C = new ParamDefinition("C", ParamDomainValue.POS_NULL, 3); + this._A = new ParamDefinition(this, "A", ParamDomainValue.POS_NULL, 1); + this._B = new ParamDefinition(this, "B", ParamDomainValue.POS_NULL, 2); + this._C = new ParamDefinition(this, "C", ParamDomainValue.POS_NULL, 3); this.addParamDefinition(this._A); this.addParamDefinition(this._B); diff --git a/spec/param.spec.ts b/spec/param.spec.ts index d91f3920..1dabaea3 100644 --- a/spec/param.spec.ts +++ b/spec/param.spec.ts @@ -63,76 +63,76 @@ describe("Class ParamDefinition : ", () => { describe("Domaine de définition : POS : ", () => { it("test 1", () => { - let p = new ParamDefinition("a", ParamDomainValue.POS, 1e-8); - p = new ParamDefinition("a", ParamDomainValue.POS, 10); + let p = new ParamDefinition(null, "a", ParamDomainValue.POS, 1e-8); + p = new ParamDefinition(null, "a", ParamDomainValue.POS, 10); }); it("test 2", () => { shouldFail(() => { - const p = new ParamDefinition("a", ParamDomainValue.POS, 0); + const p = new ParamDefinition(null, "a", ParamDomainValue.POS, 0); }, MessageCode.ERROR_PARAMDEF_VALUE_POS); }); it("test 3", () => { shouldFail(() => { - const p = new ParamDefinition("a", ParamDomainValue.POS, -1); + const p = new ParamDefinition(null, "a", ParamDomainValue.POS, -1); }, MessageCode.ERROR_PARAMDEF_VALUE_POS); }); }); describe("Domaine de définition : POS_NULL : ", () => { it("test 1", () => { - let p = new ParamDefinition("a", ParamDomainValue.POS_NULL, 0); - p = new ParamDefinition("a", ParamDomainValue.POS_NULL, 10); + let p = new ParamDefinition(null, "a", ParamDomainValue.POS_NULL, 0); + p = new ParamDefinition(null, "a", ParamDomainValue.POS_NULL, 10); }); it("test 2", () => { shouldFail(() => { - const p = new ParamDefinition("a", ParamDomainValue.POS_NULL, -1); + const p = new ParamDefinition(null, "a", ParamDomainValue.POS_NULL, -1); }, MessageCode.ERROR_PARAMDEF_VALUE_POSNULL); }); }); describe("Domaine de définition : NOT_NULL : ", () => { it("test 1", () => { - let p = new ParamDefinition("a", ParamDomainValue.NOT_NULL, -1); - p = new ParamDefinition("a", ParamDomainValue.NOT_NULL, 1); + let p = new ParamDefinition(null, "a", ParamDomainValue.NOT_NULL, -1); + p = new ParamDefinition(null, "a", ParamDomainValue.NOT_NULL, 1); }); it("test 2", () => { shouldFail(() => { - const p = new ParamDefinition("a", ParamDomainValue.NOT_NULL, 0); + const p = new ParamDefinition(null, "a", ParamDomainValue.NOT_NULL, 0); }, MessageCode.ERROR_PARAMDEF_VALUE_NULL); }); }); describe("Domaine de définition : ANY : ", () => { it("test 1", () => { - let p = new ParamDefinition("a", ParamDomainValue.ANY, -1); - p = new ParamDefinition("a", ParamDomainValue.ANY, 0); - p = new ParamDefinition("a", ParamDomainValue.ANY, 1); + let p = new ParamDefinition(null, "a", ParamDomainValue.ANY, -1); + p = new ParamDefinition(null, "a", ParamDomainValue.ANY, 0); + p = new ParamDefinition(null, "a", ParamDomainValue.ANY, 1); }); }); describe("Domaine de définition : INTERVAL : ", () => { it("test 1", () => { const d = new ParamDomain(ParamDomainValue.INTERVAL, 0, 10); - let p = new ParamDefinition("a", d, 0); - p = new ParamDefinition("a", d, 1); - p = new ParamDefinition("a", d, 10); + let p = new ParamDefinition(null, "a", d, 0); + p = new ParamDefinition(null, "a", d, 1); + p = new ParamDefinition(null, "a", d, 10); }); it("test 2", () => { shouldFail(() => { const d = new ParamDomain(ParamDomainValue.INTERVAL, 0, 10); - const p = new ParamDefinition("a", d, -1e-8); + const p = new ParamDefinition(null, "a", d, -1e-8); }, MessageCode.ERROR_PARAMDEF_VALUE_INTERVAL); }); it("test 3", () => { shouldFail(() => { const d = new ParamDomain(ParamDomainValue.INTERVAL, 0, 10); - const p = new ParamDefinition("a", d, 10 + 1e-8); + const p = new ParamDefinition(null, "a", d, 10 + 1e-8); }, MessageCode.ERROR_PARAMDEF_VALUE_INTERVAL); }); }); diff --git a/src/compute-node.ts b/src/compute-node.ts index 51515e93..0d9b8a8a 100644 --- a/src/compute-node.ts +++ b/src/compute-node.ts @@ -44,6 +44,10 @@ export abstract class ComputeNode extends JalhydObject implements IDebug { this._debug = new Debug(dbg); this._prms = prms; this.debug("PARAMS", prms); + + // important for Param uid + this._prms.parent = this; + if (!this._prms.calculabilityDefined) { this._prms.resetParametersCalculability(); } diff --git a/src/cond_distri.ts b/src/cond_distri.ts index f1ab56df..6ad742b7 100644 --- a/src/cond_distri.ts +++ b/src/cond_distri.ts @@ -27,11 +27,11 @@ export class ConduiteDistribParams extends ParamsEquation { constructor(rQ: number, rD: number, rJ: number, rLg: number, rNu: number) { super(); - this.Q = new ParamDefinition("Q", ParamDomainValue.POS, rQ); - this.D = new ParamDefinition("D", ParamDomainValue.POS, rD); - this.J = new ParamDefinition("J", ParamDomainValue.POS, rJ); - this.Lg = new ParamDefinition("Lg", ParamDomainValue.POS, rLg); - this.Nu = new ParamDefinition("Nu", ParamDomainValue.POS, rNu); + this.Q = new ParamDefinition(this, "Q", ParamDomainValue.POS, rQ); + this.D = new ParamDefinition(this, "D", ParamDomainValue.POS, rD); + this.J = new ParamDefinition(this, "J", ParamDomainValue.POS, rJ); + this.Lg = new ParamDefinition(this, "Lg", ParamDomainValue.POS, rLg); + this.Nu = new ParamDefinition(this, "Nu", ParamDomainValue.POS, rNu); this.addParamDefinition(this.Q); this.addParamDefinition(this.D); diff --git a/src/jalhyd_object.ts b/src/jalhyd_object.ts index 5c9fe62a..90dbd869 100644 --- a/src/jalhyd_object.ts +++ b/src/jalhyd_object.ts @@ -1,5 +1,5 @@ export interface IJalhydObject { - readonly uid: number; + readonly uid: string; } export interface INamedObject extends IJalhydObject { @@ -8,8 +8,8 @@ export interface INamedObject extends IJalhydObject { export abstract class JalhydObject implements IJalhydObject { - public get uid(): number { - return this._uid; + public get uid(): string { + return String(this._uid); } public static get nextUID(): number { diff --git a/src/lechaptcalmon.ts b/src/lechaptcalmon.ts index 6e2c1122..e003c54b 100644 --- a/src/lechaptcalmon.ts +++ b/src/lechaptcalmon.ts @@ -31,13 +31,13 @@ export class LechaptCalmonParams extends ParamsEquation { constructor(rQ: number, rD: number, rJ: number, rLg: number, rL: number, rM: number, rN: number) { super(); - this._Q = new ParamDefinition("Q", ParamDomainValue.POS, rQ); - this._D = new ParamDefinition("D", ParamDomainValue.POS, rD); - this._J = new ParamDefinition("J", ParamDomainValue.POS, rJ); - this._Lg = new ParamDefinition("Lg", ParamDomainValue.POS, rLg); - this._L = new ParamDefinition("L", ParamDomainValue.POS, rL); - this._M = new ParamDefinition("M", ParamDomainValue.POS, rM); - this._N = new ParamDefinition("N", ParamDomainValue.POS, rN); + this._Q = new ParamDefinition(this, "Q", ParamDomainValue.POS, rQ); + this._D = new ParamDefinition(this, "D", ParamDomainValue.POS, rD); + this._J = new ParamDefinition(this, "J", ParamDomainValue.POS, rJ); + this._Lg = new ParamDefinition(this, "Lg", ParamDomainValue.POS, rLg); + this._L = new ParamDefinition(this, "L", ParamDomainValue.POS, rL); + this._M = new ParamDefinition(this, "M", ParamDomainValue.POS, rM); + this._N = new ParamDefinition(this, "N", ParamDomainValue.POS, rN); this.addParamDefinition(this._Q); this.addParamDefinition(this._D); diff --git a/src/nub.ts b/src/nub.ts index 11f98edc..957f4271 100644 --- a/src/nub.ts +++ b/src/nub.ts @@ -1,4 +1,4 @@ -import { ParamDefinition, ParamsEquation } from "."; +import { ParamDefinition } from "."; import { ComputeNode } from "./compute-node"; import { Dichotomie } from "./dichotomie"; import { INamedIterableValues, INumberIterator, IterableValues } from "./param/param-value-iterator"; @@ -30,7 +30,6 @@ export abstract class Nub extends ComputeNode implements IReferencedNub { return this._props; } - // originally in SessionNub public set properties(props: Props | {}) { const params = props instanceof Props ? props : new Props(props); this._props = params.clone(); diff --git a/src/pab/pab_dimension.ts b/src/pab/pab_dimension.ts index fe7594a4..40631cce 100644 --- a/src/pab/pab_dimension.ts +++ b/src/pab/pab_dimension.ts @@ -21,10 +21,10 @@ export class PabDimensionParams extends ParamsEquation { constructor(rL: number, rW: number, rY: number, rV?: number) { super(); - this._L = new ParamDefinition("L", ParamDomainValue.POS, rL); - this._W = new ParamDefinition("W", ParamDomainValue.POS, rW); - this._Y = new ParamDefinition("Y", ParamDomainValue.POS, rY); - this._V = new ParamDefinition("V", ParamDomainValue.POS, rV); + this._L = new ParamDefinition(this, "L", ParamDomainValue.POS, rL); + this._W = new ParamDefinition(this, "W", ParamDomainValue.POS, rW); + this._Y = new ParamDefinition(this, "Y", ParamDomainValue.POS, rY); + this._V = new ParamDefinition(this, "V", ParamDomainValue.POS, rV); this.addParamDefinition(this._L); this.addParamDefinition(this._W); diff --git a/src/pab/pab_puissance.ts b/src/pab/pab_puissance.ts index 9f4fd19c..5a397b63 100644 --- a/src/pab/pab_puissance.ts +++ b/src/pab/pab_puissance.ts @@ -21,10 +21,10 @@ export class PabPuissanceParams extends ParamsEquation { constructor(rDH: number, rQ: number, rV: number, rPV?: number) { super(); - this._DH = new ParamDefinition("DH", ParamDomainValue.POS, rDH); - this._Q = new ParamDefinition("Q", ParamDomainValue.POS, rQ); - this._V = new ParamDefinition("V", ParamDomainValue.POS, rV); - this._PV = new ParamDefinition("PV", ParamDomainValue.POS, rPV); + this._DH = new ParamDefinition(this, "DH", ParamDomainValue.POS, rDH); + this._Q = new ParamDefinition(this, "Q", ParamDomainValue.POS, rQ); + this._V = new ParamDefinition(this, "V", ParamDomainValue.POS, rV); + this._PV = new ParamDefinition(this, "PV", ParamDomainValue.POS, rPV); this.addParamDefinition(this._DH); this.addParamDefinition(this._Q); diff --git a/src/param/param-definition.ts b/src/param/param-definition.ts index d38c0be7..3db288f4 100644 --- a/src/param/param-definition.ts +++ b/src/param/param-definition.ts @@ -9,6 +9,7 @@ import { ParamDomain, ParamDomainValue } from "./param-domain"; import { INamedIterableValues, INumberIterator } from "./param-value-iterator"; import { ParamValueMode } from "./param-value-mode"; import { ParamValues } from "./param-values"; +import { ParamsEquation } from "./params-equation"; /** * Calculabilité du paramètre @@ -27,11 +28,13 @@ export enum ParamCalculability { /** * Paramètre avec symbole, domaine de définition, calculabilité */ -export class ParamDefinition extends JalhydObject implements INubReference, INamedIterableValues, IObservable { +export class ParamDefinition implements INubReference, INamedIterableValues, IObservable { /** symbole */ private _symbol: string; + private _parent: any; + /** domaine de définition */ private _domain: ParamDomain; @@ -44,8 +47,8 @@ export class ParamDefinition extends JalhydObject implements INubReference, INam /** implémentation par délégation de IObservable */ private _observable: Observable; - constructor(symb: string, d: ParamDomain | ParamDomainValue, val?: number) { - super(); + constructor(parent: ParamsEquation | JalhydObject, symb: string, d: ParamDomain | ParamDomainValue, val?: number) { + this._parent = parent; this._symbol = symb; this._observable = new Observable(); this._paramValues = new ParamValues(); @@ -61,6 +64,27 @@ export class ParamDefinition extends JalhydObject implements INubReference, INam this.checkValue(val); } + /** + * identifiant unique de la forme + * (uid du JalhydObject (en général un Nub) + "_" + symbole du paramètre) + * ex: 123_Q + */ + get uid(): string { + let parentUid: string = null; + if (this._parent instanceof JalhydObject) { + parentUid = String(this._parent.uid); + } else if (this._parent instanceof ParamsEquation) { + // uid du ComputeNode utilisant le ParamsEquation + parentUid = String(this._parent.nubUid); + } else { + // @TODO generate ? + // parentUid = "ORPHAN"; + console.log("DIE", this._parent, this); + throw new Error("ParamDefinition.uid : parameter has no parent !"); + } + return parentUid + "::" + this._symbol; + } + get symbol(): string { return this._symbol; } @@ -412,7 +436,7 @@ export class ParamDefinition extends JalhydObject implements INubReference, INam } public clone(): ParamDefinition { - const res = new ParamDefinition(this.symbol, this.getDomain().clone(), this.uncheckedValue); + const res = new ParamDefinition(this._parent, this._symbol, this.getDomain().clone(), this.uncheckedValue); res._calc = this._calc; return res; } @@ -469,9 +493,8 @@ export class ParamDefinition extends JalhydObject implements INubReference, INam * @param seenUids liste des uids déjà vérifiés * @param o objet à tester (son uid est il déjà dans la liste ?) */ - private checkReferenceCircularity(o: any, seenUids: number[]) { + private checkReferenceCircularity(o: any, seenUids: string[]) { if ("uid" in o) { - // if (o.uid in seenUids) if (seenUids.indexOf(o.uid) !== -1) { throw new Error(`références circulaires détectées (uids : ${seenUids})`); } diff --git a/src/param/param-value-iterator.ts b/src/param/param-value-iterator.ts index 827da347..8d59ecd5 100644 --- a/src/param/param-value-iterator.ts +++ b/src/param/param-value-iterator.ts @@ -174,7 +174,6 @@ export class ParamValueIterator implements INumberIterator { // liste case 2: - const i = this._index; if (this.hasNext) { this._current = this._param.valueList[this._index++]; return { diff --git a/src/param/params-equation.ts b/src/param/params-equation.ts index ff7d1e6d..9d348acf 100644 --- a/src/param/params-equation.ts +++ b/src/param/params-equation.ts @@ -1,5 +1,6 @@ import { MapIterator } from "../util/iterator"; +import { ComputeNode } from "../compute-node"; import { ParamDefinition } from "./param-definition"; export interface IParamDefinitionIterator extends IterableIterator<ParamDefinition> { @@ -83,14 +84,26 @@ export class ParamsEquationArrayIterator implements IParamDefinitionIterator { */ // tslint:disable-next-line:max-classes-per-file export abstract class ParamsEquation implements Iterable<ParamDefinition> { + + /** pointeur vers la calculette qui utilise ces paramètres */ + public parent: ComputeNode; + protected _paramMap: { [key: string]: ParamDefinition } = {}; private _calculabilityDefined: boolean; - public constructor() { + public constructor(parent?: ComputeNode) { + this.parent = parent; this._calculabilityDefined = false; } + get nubUid() { + if (! this.parent) { + throw new Error("ParamsEquation.nubUid : equation has no parent Nub !"); + } + return this.parent.uid; + } + get calculabilityDefined(): boolean { return this._calculabilityDefined; } diff --git a/src/remous.ts b/src/remous.ts index b0b3e52d..a0542380 100644 --- a/src/remous.ts +++ b/src/remous.ts @@ -56,10 +56,10 @@ export class CourbeRemousParams extends ParamsEquation { constructor(s: acSection, rYamont: number, rYAval: number, rLong: number, rDx: number, meth: MethodeResolution) { super(); this._section = s; - this._Yamont = new ParamDefinition("Yamont", ParamDomainValue.POS, rYamont); - this._Yaval = new ParamDefinition("Yaval", ParamDomainValue.POS, rYAval); - this._Long = new ParamDefinition("Long", ParamDomainValue.POS, rLong); - this._Dx = new ParamDefinition("Dx", ParamDomainValue.POS, rDx); + this._Yamont = new ParamDefinition(this, "Yamont", ParamDomainValue.POS, rYamont); + this._Yaval = new ParamDefinition(this, "Yaval", ParamDomainValue.POS, rYAval); + this._Long = new ParamDefinition(this, "Long", ParamDomainValue.POS, rLong); + this._Dx = new ParamDefinition(this, "Dx", ParamDomainValue.POS, rDx); this._methodeResolution = meth; this.addParamDefinition(this._Yamont); diff --git a/src/section/section_circulaire.ts b/src/section/section_circulaire.ts index f165d3d5..9547a52e 100644 --- a/src/section/section_circulaire.ts +++ b/src/section/section_circulaire.ts @@ -9,7 +9,7 @@ export class ParamsSectionCirc extends ParamsSection { constructor(rD: number, rY: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number) { super(rY, undefined, rKs, rQ, rIf, rPrec, rYB); - this._D = new ParamDefinition("D", ParamDomainValue.POS, rD); + this._D = new ParamDefinition(this, "D", ParamDomainValue.POS, rD); this.addParamDefinition(this._D); } diff --git a/src/section/section_nub.ts b/src/section/section_nub.ts index 478b0049..660b5a1b 100644 --- a/src/section/section_nub.ts +++ b/src/section/section_nub.ts @@ -208,7 +208,7 @@ export class SectionParametree extends Nub { throw new Error(`SectionParametree.createSectionVar() : symbole ${symbol} non pris en charge`); } - const res = new ParamDefinition(symbol, dom); + const res = new ParamDefinition(this, symbol, dom); res.calculability = ParamCalculability.EQUATION; return res; } diff --git a/src/section/section_puissance.ts b/src/section/section_puissance.ts index 1e1a285b..1ee1d152 100644 --- a/src/section/section_puissance.ts +++ b/src/section/section_puissance.ts @@ -13,7 +13,7 @@ export class ParamsSectionPuiss extends ParamsSection { rIf: number, rPrec: number, rYB: number) { super(rY, rLargeurBerge, rKs, rQ, rIf, rPrec, rYB); - this._k = new ParamDefinition("k", new ParamDomain(ParamDomainValue.INTERVAL, 0, 1), rk); + this._k = new ParamDefinition(this, "k", new ParamDomain(ParamDomainValue.INTERVAL, 0, 1), rk); this.addParamDefinition(this._k); } diff --git a/src/section/section_trapez.ts b/src/section/section_trapez.ts index 8da343f2..9def6096 100644 --- a/src/section/section_trapez.ts +++ b/src/section/section_trapez.ts @@ -11,8 +11,8 @@ export class ParamsSectionTrapez extends ParamsSection { rQ: number, rIf: number, rPrec: number, rYB: number) { super(rY, undefined, rKs, rQ, rIf, rPrec, rYB); - this._LargeurFond = new ParamDefinition("LargeurFond", ParamDomainValue.POS_NULL, rLargeurFond); - this._Fruit = new ParamDefinition("Fruit", ParamDomainValue.POS_NULL, rFruit); + this._LargeurFond = new ParamDefinition(this, "LargeurFond", ParamDomainValue.POS_NULL, rLargeurFond); + this._Fruit = new ParamDefinition(this, "Fruit", ParamDomainValue.POS_NULL, rFruit); this.addParamDefinition(this._LargeurFond); this.addParamDefinition(this._Fruit); diff --git a/src/section/section_type.ts b/src/section/section_type.ts index e954ad9f..a1f4dff6 100644 --- a/src/section/section_type.ts +++ b/src/section/section_type.ts @@ -22,16 +22,15 @@ export abstract class cParamsCanal extends ParamsEquation { constructor(rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number) { super(); - this._Ks = new ParamDefinition("Ks", ParamDomainValue.POS, rKs); - this._Q = new ParamDefinition("Q", ParamDomainValue.POS_NULL, rQ); - this._If = new ParamDefinition("If", ParamDomainValue.ANY, rIf); - this._Prec = new ParamDefinition("Prec", ParamDomainValue.POS, rPrec); + this._Ks = new ParamDefinition(this, "Ks", ParamDomainValue.POS, rKs); + this._Q = new ParamDefinition(this, "Q", ParamDomainValue.POS_NULL, rQ); + this._If = new ParamDefinition(this, "If", ParamDomainValue.ANY, rIf); + this._Prec = new ParamDefinition(this, "Prec", ParamDomainValue.POS, rPrec); this._iPrec = new ParamDefinition( - "iPrec", - ParamDomainValue.ANY, + this, "iPrec", ParamDomainValue.ANY, Math.round(-Math.log(rPrec) / Math.log(10)) ); - this._YB = new ParamDefinition("YB", ParamDomainValue.POS, rYB); + this._YB = new ParamDefinition(this, "YB", ParamDomainValue.POS, rYB); this.addParamDefinition(this._Ks); this.addParamDefinition(this._Q); @@ -97,8 +96,10 @@ export abstract class ParamsSection extends cParamsCanal { rPrec: number, rYB: number) { super(rKs, rQ, rIf, rPrec, rYB); - this._Y = new ParamDefinition("Y", ParamDomainValue.POS_NULL, rY); - this._LargeurBerge = new ParamDefinition("LargeurBerge", ParamDomainValue.POS_NULL, rLargeurBerge); + this._Y = new ParamDefinition(this, "Y", ParamDomainValue.POS_NULL, rY); + this._LargeurBerge = new ParamDefinition( + this, "LargeurBerge", ParamDomainValue.POS_NULL, rLargeurBerge + ); this.addParamDefinition(this._Y); this.addParamDefinition(this._LargeurBerge); diff --git a/src/structure/cloisons_params.ts b/src/structure/cloisons_params.ts index ca7d2732..da09e5c2 100644 --- a/src/structure/cloisons_params.ts +++ b/src/structure/cloisons_params.ts @@ -29,13 +29,13 @@ export class CloisonsParams extends ParallelStructureParams { */ constructor(rQ: number, rZ1: number, rLB: number, rBB: number, rPB: number, rDH: number) { super(rQ, rZ1, rZ1 - rDH); - this.LB = new ParamDefinition("LB", ParamDomainValue.POS, rLB); + this.LB = new ParamDefinition(this, "LB", ParamDomainValue.POS, rLB); this.addParamDefinition(this.LB); - this.BB = new ParamDefinition("BB", ParamDomainValue.POS, rBB); + this.BB = new ParamDefinition(this, "BB", ParamDomainValue.POS, rBB); this.addParamDefinition(this.BB); - this.PB = new ParamDefinition("PB", ParamDomainValue.POS, rPB); + this.PB = new ParamDefinition(this, "PB", ParamDomainValue.POS, rPB); this.addParamDefinition(this.PB); - this.DH = new ParamDefinition("DH", ParamDomainValue.POS, rDH); + this.DH = new ParamDefinition(this, "DH", ParamDomainValue.POS, rDH); this.addParamDefinition(this.DH); } } diff --git a/src/structure/dever_params.ts b/src/structure/dever_params.ts index 02bad78a..05d6a07f 100644 --- a/src/structure/dever_params.ts +++ b/src/structure/dever_params.ts @@ -21,9 +21,9 @@ export class DeverParams extends ParallelStructureParams { */ constructor(rQ: number, rZ1: number, rBR: number, rZR: number) { super(rQ, rZ1, - Infinity); - this.BR = new ParamDefinition("BR", ParamDomainValue.ANY, rBR); + this.BR = new ParamDefinition(this, "BR", ParamDomainValue.ANY, rBR); this.addParamDefinition(this.BR); - this.ZR = new ParamDefinition("ZR", ParamDomainValue.ANY, rZR); + this.ZR = new ParamDefinition(this, "ZR", ParamDomainValue.ANY, rZR); this.addParamDefinition(this.ZR); } } diff --git a/src/structure/parallel_structure_params.ts b/src/structure/parallel_structure_params.ts index 40426c82..6bcfd33e 100644 --- a/src/structure/parallel_structure_params.ts +++ b/src/structure/parallel_structure_params.ts @@ -23,11 +23,11 @@ export class ParallelStructureParams extends ParamsEquation { */ constructor(rQ: number, rZ1: number, rZ2: number) { super(); - this.Q = new ParamDefinition("Q", ParamDomainValue.ANY, rQ); + this.Q = new ParamDefinition(this, "Q", ParamDomainValue.ANY, rQ); this.addParamDefinition(this.Q); - this.Z1 = new ParamDefinition("Z1", ParamDomainValue.ANY, rZ1); + this.Z1 = new ParamDefinition(this, "Z1", ParamDomainValue.ANY, rZ1); this.addParamDefinition(this.Z1); - this.Z2 = new ParamDefinition("Z2", ParamDomainValue.ANY, rZ2); + this.Z2 = new ParamDefinition(this, "Z2", ParamDomainValue.ANY, rZ2); this.addParamDefinition(this.Z2); } } diff --git a/src/structure/rectangular_structure_params.ts b/src/structure/rectangular_structure_params.ts index 0f157d44..1ffab809 100644 --- a/src/structure/rectangular_structure_params.ts +++ b/src/structure/rectangular_structure_params.ts @@ -25,9 +25,9 @@ export class RectangularStructureParams extends StructureParams { */ constructor(rQ: number, rZDV: number, rZ1: number, rZ2: number, rL: number, rCd: number, rW: number = Infinity) { super(rQ, rZDV, rZ1, rZ2, rW); - this.L = new ParamDefinition("L", ParamDomainValue.POS, rL); + this.L = new ParamDefinition(this, "L", ParamDomainValue.POS, rL); this.addParamDefinition(this.L); - this.Cd = new ParamDefinition("Cd", ParamDomainValue.POS, rCd); + this.Cd = new ParamDefinition(this, "Cd", ParamDomainValue.POS, rCd); this.addParamDefinition(this.Cd); } } diff --git a/src/structure/structure_kivi_params.ts b/src/structure/structure_kivi_params.ts index 4e8a4869..a690bd61 100644 --- a/src/structure/structure_kivi_params.ts +++ b/src/structure/structure_kivi_params.ts @@ -30,13 +30,13 @@ export class StructureKiviParams extends StructureParams { rZRAM: number ) { super(rQ, rZDV, rZ1, rZ2, Infinity); - this.L = new ParamDefinition("L", ParamDomainValue.POS_NULL, rL); + this.L = new ParamDefinition(this, "L", ParamDomainValue.POS_NULL, rL); this.addParamDefinition(this.L); - this.alpha = new ParamDefinition("alpha", ParamDomainValue.POS, rAlpha); + this.alpha = new ParamDefinition(this, "alpha", ParamDomainValue.POS, rAlpha); this.addParamDefinition(this.alpha); - this.beta = new ParamDefinition("beta", ParamDomainValue.POS_NULL, rBeta); + this.beta = new ParamDefinition(this, "beta", ParamDomainValue.POS_NULL, rBeta); this.addParamDefinition(this.beta); - this.ZRAM = new ParamDefinition("ZRAM", ParamDomainValue.ANY, rZRAM); + this.ZRAM = new ParamDefinition(this, "ZRAM", ParamDomainValue.ANY, rZRAM); this.addParamDefinition(this.ZRAM); } } diff --git a/src/structure/structure_orifice_submerged_params.ts b/src/structure/structure_orifice_submerged_params.ts index a8f86172..5db236bf 100644 --- a/src/structure/structure_orifice_submerged_params.ts +++ b/src/structure/structure_orifice_submerged_params.ts @@ -24,9 +24,9 @@ export class StructureOrificeSubmergedParams extends StructureParams { */ constructor(rQ: number, rZ1: number, rZ2: number, rCd: number, rS: number) { super(rQ, -Infinity, rZ1, rZ2); - this.S = new ParamDefinition("S", ParamDomainValue.POS_NULL, rS); + this.S = new ParamDefinition(this, "S", ParamDomainValue.POS_NULL, rS); this.addParamDefinition(this.S); - this.Cd = new ParamDefinition("Cd", ParamDomainValue.POS_NULL, rCd); + this.Cd = new ParamDefinition(this, "Cd", ParamDomainValue.POS_NULL, rCd); this.addParamDefinition(this.Cd); } diff --git a/src/structure/structure_params.ts b/src/structure/structure_params.ts index 8740525e..cadac28a 100644 --- a/src/structure/structure_params.ts +++ b/src/structure/structure_params.ts @@ -40,21 +40,21 @@ export class StructureParams extends ParamsEquation { */ constructor(rQ: number, rZDV: number, rZ1: number, rZ2: number, rW: number = Infinity) { super(); - this.Q = new ParamDefinition("Q", ParamDomainValue.ANY, rQ); + this.Q = new ParamDefinition(this, "Q", ParamDomainValue.ANY, rQ); this.addParamDefinition(this.Q); - this.ZDV = new ParamDefinition("ZDV", ParamDomainValue.ANY, rZDV); + this.ZDV = new ParamDefinition(this, "ZDV", ParamDomainValue.ANY, rZDV); this.addParamDefinition(this.ZDV); - this.Z1 = new ParamDefinition("Z1", ParamDomainValue.ANY, rZ1); + this.Z1 = new ParamDefinition(this, "Z1", ParamDomainValue.ANY, rZ1); this.addParamDefinition(this.Z1); - this.Z2 = new ParamDefinition("Z2", ParamDomainValue.ANY, rZ2); + this.Z2 = new ParamDefinition(this, "Z2", ParamDomainValue.ANY, rZ2); this.addParamDefinition(this.Z2); - this.h1 = new ParamDefinition("h1", ParamDomainValue.POS_NULL, + this.h1 = new ParamDefinition(this, "h1", ParamDomainValue.POS_NULL, Math.max(0, this.Z1.v - this.ZDV.v)); this.addParamDefinition(this.h1); - this.h2 = new ParamDefinition("h2", ParamDomainValue.POS_NULL, + this.h2 = new ParamDefinition(this, "h2", ParamDomainValue.POS_NULL, Math.max(0, this.Z2.v - this.ZDV.v)); this.addParamDefinition(this.h2); - this.W = new ParamDefinition("W", ParamDomainValue.POS_NULL, rW); + this.W = new ParamDefinition(this, "W", ParamDomainValue.POS_NULL, rW); this.addParamDefinition(this.W); } diff --git a/src/structure/structure_triangular_trunc_weir_free_params.ts b/src/structure/structure_triangular_trunc_weir_free_params.ts index 7b3687b9..6226c35e 100644 --- a/src/structure/structure_triangular_trunc_weir_free_params.ts +++ b/src/structure/structure_triangular_trunc_weir_free_params.ts @@ -31,11 +31,11 @@ export class TriangularTruncStructureParams extends StructureParams { rBT: number, rZT: number, rCd: number, rW: number = Infinity ) { super(rQ, rZDV, rZ1, - Infinity, rW); - this.BT = new ParamDefinition("BT", ParamDomainValue.POS, rBT); + this.BT = new ParamDefinition(this, "BT", ParamDomainValue.POS, rBT); this.addParamDefinition(this.BT); - this.ZT = new ParamDefinition("ZT", ParamDomainValue.POS, rZT); + this.ZT = new ParamDefinition(this, "ZT", ParamDomainValue.POS, rZT); this.addParamDefinition(this.ZT); - this.Cd = new ParamDefinition("Cd", ParamDomainValue.POS, rCd); + this.Cd = new ParamDefinition(this, "Cd", ParamDomainValue.POS, rCd); this.addParamDefinition(this.Cd); } } diff --git a/src/structure/structure_triangular_weir_free_params.ts b/src/structure/structure_triangular_weir_free_params.ts index 7cfe3544..7c4253ec 100644 --- a/src/structure/structure_triangular_weir_free_params.ts +++ b/src/structure/structure_triangular_weir_free_params.ts @@ -27,9 +27,9 @@ export class TriangularStructureParams extends StructureParams { rAlpha2: number, rCd: number, rW: number = Infinity ) { super(rQ, rZDV, rZ1, - Infinity, rW); - this.alpha2 = new ParamDefinition("alpha2", ParamDomainValue.POS, rAlpha2); + this.alpha2 = new ParamDefinition(this, "alpha2", ParamDomainValue.POS, rAlpha2); this.addParamDefinition(this.alpha2); - this.Cd = new ParamDefinition("Cd", ParamDomainValue.POS, rCd); + this.Cd = new ParamDefinition(this, "Cd", ParamDomainValue.POS, rCd); this.addParamDefinition(this.Cd); } } -- GitLab