From 5dc07a456992279d06aa2b32a62a2ab941cc2ca4 Mon Sep 17 00:00:00 2001
From: "francois.grand" <francois.grand@irstea.fr>
Date: Fri, 9 Mar 2018 15:12:38 +0100
Subject: [PATCH] simplification de l'utilisation de l'enum CalculatorType

---
 spec/nubtest.ts                               |  6 ++--
 spec/param.spec.ts                            | 36 +++++++++----------
 src/cond_distri.ts                            | 12 +++----
 src/lechaptcalmon.ts                          | 16 ++++-----
 src/pab/pab_dimension.ts                      | 10 +++---
 src/pab/pab_puissance.ts                      | 10 +++---
 src/param.ts                                  | 11 ++----
 src/remous.ts                                 | 11 +++---
 src/section/section_circulaire.ts             |  4 +--
 src/section/section_puissance.ts              |  4 +--
 src/section/section_trapez.ts                 |  6 ++--
 src/section/section_type.ts                   | 22 ++++++------
 src/structure/parallel_structure_params.ts    |  8 ++---
 src/structure/rectangular_structure_params.ts |  6 ++--
 src/structure/structure_params.ts             | 16 ++++-----
 15 files changed, 85 insertions(+), 93 deletions(-)

diff --git a/spec/nubtest.ts b/spec/nubtest.ts
index 5d67bff3..b16dc52d 100644
--- a/spec/nubtest.ts
+++ b/spec/nubtest.ts
@@ -9,9 +9,9 @@ class NubTestParams extends ParamsEquation {
 
     constructor() {
         super();
-        this._A = new ParamDefinition(undefined, "A", ParamDomainValue.POS_NULL, 1);
-        this._B = new ParamDefinition(undefined, "B", ParamDomainValue.POS_NULL, 2);
-        this._C = new ParamDefinition(undefined, "C", ParamDomainValue.POS_NULL, 3);
+        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.addParamDefinition(this._A);
         this.addParamDefinition(this._B);
diff --git a/spec/param.spec.ts b/spec/param.spec.ts
index 2f54abc7..e134b983 100644
--- a/spec/param.spec.ts
+++ b/spec/param.spec.ts
@@ -64,76 +64,76 @@ describe('Class ParamDefinition : ', () => {
 
     describe('Domaine de définition : POS : ', () => {
         it('test 1', () => {
-            let p = new ParamDefinition(undefined, "a", ParamDomainValue.POS, 1e-8);
-            p = new ParamDefinition(undefined, "a", ParamDomainValue.POS, 10);
+            let p = new ParamDefinition("a", ParamDomainValue.POS, 1e-8);
+            p = new ParamDefinition("a", ParamDomainValue.POS, 10);
         });
 
         it('test 2', () => {
             shouldFail(() => {
-                const p = new ParamDefinition(undefined, "a", ParamDomainValue.POS, 0);
+                const p = new ParamDefinition("a", ParamDomainValue.POS, 0);
             }, MessageCode.ERROR_PARAMDEF_VALUE_POS);
         });
 
         it('test 3', () => {
             shouldFail(() => {
-                const p = new ParamDefinition(undefined, "a", ParamDomainValue.POS, -1);
+                const p = new ParamDefinition("a", ParamDomainValue.POS, -1);
             }, MessageCode.ERROR_PARAMDEF_VALUE_POS);
         });
     });
 
     describe('Domaine de définition : POS_NULL : ', () => {
         it('test 1', () => {
-            let p = new ParamDefinition(undefined, "a", ParamDomainValue.POS_NULL, 0);
-            p = new ParamDefinition(undefined, "a", ParamDomainValue.POS_NULL, 10);
+            let p = new ParamDefinition("a", ParamDomainValue.POS_NULL, 0);
+            p = new ParamDefinition("a", ParamDomainValue.POS_NULL, 10);
         });
 
         it('test 2', () => {
             shouldFail(() => {
-                const p = new ParamDefinition(undefined, "a", ParamDomainValue.POS_NULL, -1);
+                const p = new ParamDefinition("a", ParamDomainValue.POS_NULL, -1);
             }, MessageCode.ERROR_PARAMDEF_VALUE_POSNULL);
         });
     });
 
     describe('Domaine de définition : NOT_NULL : ', () => {
         it('test 1', () => {
-            let p = new ParamDefinition(undefined, "a", ParamDomainValue.NOT_NULL, -1);
-            p = new ParamDefinition(undefined, "a", ParamDomainValue.NOT_NULL, 1);
+            let p = new ParamDefinition("a", ParamDomainValue.NOT_NULL, -1);
+            p = new ParamDefinition("a", ParamDomainValue.NOT_NULL, 1);
         });
 
         it('test 2', () => {
             shouldFail(() => {
-                const p = new ParamDefinition(undefined, "a", ParamDomainValue.NOT_NULL, 0);
+                const p = new ParamDefinition("a", ParamDomainValue.NOT_NULL, 0);
             }, MessageCode.ERROR_PARAMDEF_VALUE_NULL);
         });
     });
 
     describe('Domaine de définition : ANY : ', () => {
         it('test 1', () => {
-            let p = new ParamDefinition(undefined, "a", ParamDomainValue.ANY, -1);
-            p = new ParamDefinition(undefined, "a", ParamDomainValue.ANY, 0);
-            p = new ParamDefinition(undefined, "a", ParamDomainValue.ANY, 1);
+            let p = new ParamDefinition("a", ParamDomainValue.ANY, -1);
+            p = new ParamDefinition("a", ParamDomainValue.ANY, 0);
+            p = new ParamDefinition("a", ParamDomainValue.ANY, 1);
         });
     });
 
     describe('Domaine de définition : INTERVAL : ', () => {
         it('test 1', () => {
             let d = new ParamDomain(ParamDomainValue.INTERVAL, 0, 10)
-            let p = new ParamDefinition(undefined, "a", d, 0);
-            p = new ParamDefinition(undefined, "a", d, 1);
-            p = new ParamDefinition(undefined, "a", d, 10);
+            let p = new ParamDefinition("a", d, 0);
+            p = new ParamDefinition("a", d, 1);
+            p = new ParamDefinition("a", d, 10);
         });
 
         it('test 2', () => {
             shouldFail(() => {
                 let d = new ParamDomain(ParamDomainValue.INTERVAL, 0, 10)
-                let p = new ParamDefinition(undefined, "a", d, -1e-8);
+                let p = new ParamDefinition("a", d, -1e-8);
             }, MessageCode.ERROR_PARAMDEF_VALUE_INTERVAL);
         });
 
         it('test 3', () => {
             shouldFail(() => {
                 let d = new ParamDomain(ParamDomainValue.INTERVAL, 0, 10)
-                let p = new ParamDefinition(undefined, "a", d, 10 + 1e-8);
+                let p = new ParamDefinition("a", d, 10 + 1e-8);
             }, MessageCode.ERROR_PARAMDEF_VALUE_INTERVAL);
         });
     });
diff --git a/src/cond_distri.ts b/src/cond_distri.ts
index caab5cfd..958e176d 100644
--- a/src/cond_distri.ts
+++ b/src/cond_distri.ts
@@ -1,5 +1,5 @@
 import { Result } from "./util/result";
-import { ParamDefinition, ParamDomainValue, ParamCalculability, ParamsEquation, CalculatorType } from "./param";
+import { ParamDefinition, ParamDomainValue, ParamCalculability, ParamsEquation } from "./param";
 import { Nub } from "./nub";
 
 /**
@@ -23,11 +23,11 @@ export class ConduiteDistribParams extends ParamsEquation {
 
     constructor(rQ: number, rD: number, rJ: number, rLg: number, rNu: number) {
         super();
-        this.Q = new ParamDefinition(CalculatorType.ConduiteDistributrice, 'Q', ParamDomainValue.POS, rQ);
-        this.D = new ParamDefinition(CalculatorType.ConduiteDistributrice, 'D', ParamDomainValue.POS, rD);
-        this.J = new ParamDefinition(CalculatorType.ConduiteDistributrice, 'J', ParamDomainValue.POS, rJ);
-        this.Lg = new ParamDefinition(CalculatorType.ConduiteDistributrice, 'Lg', ParamDomainValue.POS, rLg);
-        this.Nu = new ParamDefinition(CalculatorType.ConduiteDistributrice, 'Nu', ParamDomainValue.POS, rNu);
+        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.addParamDefinition(this.Q);
         this.addParamDefinition(this.D);
diff --git a/src/lechaptcalmon.ts b/src/lechaptcalmon.ts
index f42e59dd..ad6c8c01 100644
--- a/src/lechaptcalmon.ts
+++ b/src/lechaptcalmon.ts
@@ -1,5 +1,5 @@
 import { Result } from "./util/result";
-import { ParamDefinition, ParamDomainValue, ParamCalculability, ParamsEquation, CalculatorType } from "./param";
+import { ParamDefinition, ParamDomainValue, ParamCalculability, ParamsEquation } from "./param";
 import { Nub } from "./nub";
 
 /**
@@ -29,13 +29,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(CalculatorType.LechaptCalmon, 'Q', ParamDomainValue.POS, rQ);
-        this._D = new ParamDefinition(CalculatorType.LechaptCalmon, 'D', ParamDomainValue.POS, rD);
-        this._J = new ParamDefinition(CalculatorType.LechaptCalmon, 'J', ParamDomainValue.POS, rJ);
-        this._Lg = new ParamDefinition(CalculatorType.LechaptCalmon, 'Lg', ParamDomainValue.POS, rLg);
-        this._L = new ParamDefinition(CalculatorType.LechaptCalmon, 'L', ParamDomainValue.POS, rL);
-        this._M = new ParamDefinition(CalculatorType.LechaptCalmon, 'M', ParamDomainValue.POS, rM);
-        this._N = new ParamDefinition(CalculatorType.LechaptCalmon, 'N', ParamDomainValue.POS, rN);
+        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.addParamDefinition(this._Q);
         this.addParamDefinition(this._D);
diff --git a/src/pab/pab_dimension.ts b/src/pab/pab_dimension.ts
index 4a7dd263..02dbd6c5 100644
--- a/src/pab/pab_dimension.ts
+++ b/src/pab/pab_dimension.ts
@@ -1,5 +1,5 @@
 import { Result } from "../util/result";
-import { ParamDefinition, ParamDomainValue, ParamCalculability, ParamsEquation, CalculatorType } from "../param";
+import { ParamDefinition, ParamDomainValue, ParamCalculability, ParamsEquation } from "../param";
 import { Nub } from "../nub";
 
 export class PabDimensionParams extends ParamsEquation {
@@ -19,10 +19,10 @@ export class PabDimensionParams extends ParamsEquation {
 
     constructor(rL: number, rW: number, rY: number, rV: number = undefined) {
         super();
-        this._L = new ParamDefinition(CalculatorType.PabDimensions, 'L', ParamDomainValue.POS, rL);
-        this._W = new ParamDefinition(CalculatorType.PabDimensions, 'W', ParamDomainValue.POS, rW);
-        this._Y = new ParamDefinition(CalculatorType.PabDimensions, 'Y', ParamDomainValue.POS, rY);
-        this._V = new ParamDefinition(CalculatorType.PabDimensions, 'V', ParamDomainValue.POS, rV);
+        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.addParamDefinition(this._L);
         this.addParamDefinition(this._W);
diff --git a/src/pab/pab_puissance.ts b/src/pab/pab_puissance.ts
index a37e256d..445ddd1d 100644
--- a/src/pab/pab_puissance.ts
+++ b/src/pab/pab_puissance.ts
@@ -1,5 +1,5 @@
 import { Result } from "../util/result";
-import { ParamDefinition, ParamDomainValue, ParamCalculability, ParamsEquation, CalculatorType } from "../param";
+import { ParamDefinition, ParamDomainValue, ParamCalculability, ParamsEquation } from "../param";
 import { Nub } from "../nub";
 
 export class PabPuissanceParams extends ParamsEquation {
@@ -19,10 +19,10 @@ export class PabPuissanceParams extends ParamsEquation {
 
     constructor(rDH: number, rQ: number, rV: number, rPV: number = undefined) {
         super();
-        this._DH = new ParamDefinition(CalculatorType.PabPuissance, 'DH', ParamDomainValue.POS, rDH);
-        this._Q = new ParamDefinition(CalculatorType.PabPuissance, 'Q', ParamDomainValue.POS, rQ);
-        this._V = new ParamDefinition(CalculatorType.PabPuissance, 'V', ParamDomainValue.POS, rV);
-        this._Pv = new ParamDefinition(CalculatorType.PabPuissance, 'Pv', ParamDomainValue.POS, rPV);
+        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.addParamDefinition(this._DH);
         this.addParamDefinition(this._Q);
diff --git a/src/param.ts b/src/param.ts
index 694c6804..98268a09 100644
--- a/src/param.ts
+++ b/src/param.ts
@@ -290,15 +290,8 @@ export class ParamDefinition extends BaseParam {
      */
     private _calc: ParamCalculability;
 
-    /**
-     * calculette parente
-     */
-    private _calculatorType: CalculatorType;
-
-    constructor(ct: CalculatorType, s: string, d: ParamDomain | ParamDomainValue, val?: number) {
+    constructor(s: string, d: ParamDomain | ParamDomainValue, val?: number) {
         super(s, d, val);
-        this._calculatorType = ct;
-
         this._calc = undefined;
         this.checkValue(val);
     }
@@ -343,7 +336,7 @@ export class ParamDefinition extends BaseParam {
     }
 
     public clone(): ParamDefinition {
-        const res = new ParamDefinition(this._calculatorType, this.symbol, this.getDomain().clone(), this.uncheckedValue);
+        const res = new ParamDefinition(this.symbol, this.getDomain().clone(), this.uncheckedValue);
         res._calc = this._calc;
         return res;
     }
diff --git a/src/remous.ts b/src/remous.ts
index 90e2601e..554f5f3c 100644
--- a/src/remous.ts
+++ b/src/remous.ts
@@ -1,7 +1,7 @@
 import { round, XOR } from "./base";
 import { Dichotomie } from "./dichotomie";
 import { Nub } from "./nub";
-import { ParamCalculability, ParamDefinition, ParamDomainValue, ParamsEquation, CalculatorType } from "./param";
+import { ParamCalculability, ParamDefinition, ParamDomainValue, ParamsEquation } from "./param";
 import { acSection, ParamsSection } from "./section/section_type";
 import { cLog } from "./util/log";
 import { Message, MessageCode } from "./util/message";
@@ -51,14 +51,13 @@ export class CourbeRemousParams extends ParamsEquation {
      */
     private _methodeResolution: MethodeResolution;
 
-    // constructor(rQamont: number, rYamont: number, rYAval: number, meth: MethodeResolution) {
     constructor(s: acSection, rYamont: number, rYAval: number, rLong: number, rDx: number, meth: MethodeResolution) {
         super();
         this._section = s;
-        this._Yamont = new ParamDefinition(CalculatorType.CourbeRemous, "Yamont", ParamDomainValue.POS, rYamont);
-        this._Yaval = new ParamDefinition(CalculatorType.CourbeRemous, "Yaval", ParamDomainValue.POS, rYAval);
-        this._Long = new ParamDefinition(CalculatorType.CourbeRemous, "Long", ParamDomainValue.POS, rLong);
-        this._Dx = new ParamDefinition(CalculatorType.CourbeRemous, "Dx", ParamDomainValue.POS, rDx);
+        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._methodeResolution = meth;
 
         this.addParamDefinition(this._Yamont);
diff --git a/src/section/section_circulaire.ts b/src/section/section_circulaire.ts
index 223c8155..f1f661ce 100644
--- a/src/section/section_circulaire.ts
+++ b/src/section/section_circulaire.ts
@@ -1,4 +1,4 @@
-import { ParamDefinition, ParamDomainValue, ParamCalculability, CalculatorType } from "../param";
+import { ParamDefinition, ParamDomainValue, ParamCalculability } from "../param";
 import { acSection, ParamsSection } from "./section_type";
 import { Message, MessageCode } from "../util/message";
 import { Result } from "../util/result";
@@ -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(CalculatorType.SectionParametree, 'D', ParamDomainValue.POS, rD);
+                this._D = new ParamDefinition('D', ParamDomainValue.POS, rD);
 
                 this.addParamDefinition(this._D);
         }
diff --git a/src/section/section_puissance.ts b/src/section/section_puissance.ts
index 0efc0d8b..4a58f459 100644
--- a/src/section/section_puissance.ts
+++ b/src/section/section_puissance.ts
@@ -1,4 +1,4 @@
-import { ParamDefinition, ParamDomain, ParamDomainValue, ParamCalculability, CalculatorType } from "../param";
+import { ParamDefinition, ParamDomain, ParamDomainValue, ParamCalculability } from "../param";
 import { acSection, ParamsSection } from "./section_type";
 import { Result } from "../util/result";
 
@@ -10,7 +10,7 @@ export class ParamsSectionPuiss extends ParamsSection {
 
         constructor(rk: number, rY: number, rLargeurBerge: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number) {
                 super(rY, rLargeurBerge, rKs, rQ, rIf, rPrec, rYB);
-                this._k = new ParamDefinition(CalculatorType.SectionParametree, 'k', new ParamDomain(ParamDomainValue.INTERVAL, 0, 1), rk);
+                this._k = new ParamDefinition('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 1c725ba9..03f93d44 100644
--- a/src/section/section_trapez.ts
+++ b/src/section/section_trapez.ts
@@ -1,4 +1,4 @@
-import { ParamDefinition, ParamDomainValue, ParamCalculability, CalculatorType } from "../param";
+import { ParamDefinition, ParamDomainValue, ParamCalculability } from "../param";
 import { acSection, ParamsSection } from "./section_type";
 import { Result } from "../util/result";
 
@@ -8,8 +8,8 @@ export class ParamsSectionTrapez extends ParamsSection {
 
         constructor(rLargeurFond: number, rFruit: number, rY: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number) {
                 super(rY, undefined, rKs, rQ, rIf, rPrec, rYB);
-                this._LargeurFond = new ParamDefinition(CalculatorType.SectionParametree, 'LargeurFond', ParamDomainValue.POS_NULL, rLargeurFond);
-                this._Fruit = new ParamDefinition(CalculatorType.SectionParametree, 'Fruit', ParamDomainValue.POS_NULL, rFruit);
+                this._LargeurFond = new ParamDefinition('LargeurFond', ParamDomainValue.POS_NULL, rLargeurFond);
+                this._Fruit = new ParamDefinition('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 35c0a174..99f98b1f 100644
--- a/src/section/section_type.ts
+++ b/src/section/section_type.ts
@@ -1,5 +1,5 @@
 import { MessageCode, Message } from "../util/message";
-import { ComputeNode, ParamDefinition, ParamDomainValue, ParamCalculability, ParamsEquation, CalculatorType } from "../param";
+import { ComputeNode, ParamDefinition, ParamDomainValue, ParamCalculability, ParamsEquation } from "../param";
 import { cHautCritique, cHautNormale, cHautCorrespondante, cHautConjuguee } from "./hauteur";
 import { Result } from "../util/result";
 
@@ -16,14 +16,14 @@ export abstract class cParamsCanal extends ParamsEquation {
         private _iPrec: ParamDefinition;  // Précision en nombre de décimales
         private _YB: ParamDefinition;  // Hauteur de berge
 
-        constructor(calcType: CalculatorType, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number) {
+        constructor(rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number) {
                 super();
-                this._Ks = new ParamDefinition(calcType, 'Ks', ParamDomainValue.POS, rKs);
-                this._Q = new ParamDefinition(calcType, 'Q', ParamDomainValue.POS_NULL, rQ);
-                this._If = new ParamDefinition(calcType, 'If', ParamDomainValue.ANY, rIf);
-                this._Prec = new ParamDefinition(calcType, 'Prec', ParamDomainValue.POS, rPrec);
-                this._iPrec = new ParamDefinition(calcType, 'iPrec', ParamDomainValue.ANY, Math.round(-Math.log(rPrec) / Math.log(10)));
-                this._YB = new ParamDefinition(calcType, 'YB', ParamDomainValue.POS, rYB);
+                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._iPrec = new ParamDefinition('iPrec', ParamDomainValue.ANY, Math.round(-Math.log(rPrec) / Math.log(10)));
+                this._YB = new ParamDefinition('YB', ParamDomainValue.POS, rYB);
 
                 this.addParamDefinition(this._Ks);
                 this.addParamDefinition(this._Q);
@@ -88,9 +88,9 @@ export abstract class ParamsSection extends cParamsCanal {
                 rIf: number,
                 rPrec: number,
                 rYB: number) {
-                super(CalculatorType.SectionParametree, rKs, rQ, rIf, rPrec, rYB);
-                this._Y = new ParamDefinition(CalculatorType.SectionParametree, 'Y', ParamDomainValue.POS_NULL, rY);
-                this._LargeurBerge = new ParamDefinition(CalculatorType.SectionParametree, 'LargeurBerge', ParamDomainValue.POS_NULL, rLargeurBerge);
+                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.addParamDefinition(this._Y);
                 this.addParamDefinition(this._LargeurBerge);
diff --git a/src/structure/parallel_structure_params.ts b/src/structure/parallel_structure_params.ts
index 798d7585..3af8ca04 100644
--- a/src/structure/parallel_structure_params.ts
+++ b/src/structure/parallel_structure_params.ts
@@ -1,5 +1,5 @@
 import { Nub } from "../nub";
-import { ParamDefinition, ParamDomainValue, ParamsEquation, CalculatorType } from "../param";
+import { ParamDefinition, ParamDomainValue, ParamsEquation } from "../param";
 
 /**
  * Common parameters of hydraulic structure equations
@@ -22,11 +22,11 @@ export class ParallelStructureParams extends ParamsEquation {
      */
     constructor(rQ: number, rZ1: number, rZ2: number) {
         super();
-        this.Q = new ParamDefinition(CalculatorType.ParallelStructure, "Q", ParamDomainValue.ANY, rQ);
+        this.Q = new ParamDefinition("Q", ParamDomainValue.ANY, rQ);
         this.addParamDefinition(this.Q);
-        this.Z1 = new ParamDefinition(CalculatorType.ParallelStructure, "Z1", ParamDomainValue.ANY, rZ1);
+        this.Z1 = new ParamDefinition("Z1", ParamDomainValue.ANY, rZ1);
         this.addParamDefinition(this.Z1);
-        this.Z2 = new ParamDefinition(CalculatorType.ParallelStructure, "Z2", ParamDomainValue.ANY, rZ2);
+        this.Z2 = new ParamDefinition("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 929e42d0..61b11480 100644
--- a/src/structure/rectangular_structure_params.ts
+++ b/src/structure/rectangular_structure_params.ts
@@ -1,4 +1,4 @@
-import { ParamCalculability, ParamDefinition, ParamDomainValue, ParamsEquation, CalculatorType } from "../param";
+import { ParamCalculability, ParamDefinition, ParamDomainValue, ParamsEquation } from "../param";
 import { Structure } from "./structure";
 import { StructureParams } from "./structure_params";
 
@@ -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(CalculatorType.Structure, "L", ParamDomainValue.POS, rL);
+        this.L = new ParamDefinition("L", ParamDomainValue.POS, rL);
         this.addParamDefinition(this.L);
-        this.Cd = new ParamDefinition(CalculatorType.Structure, "Cd", ParamDomainValue.POS, rCd);
+        this.Cd = new ParamDefinition("Cd", ParamDomainValue.POS, rCd);
         this.addParamDefinition(this.Cd);
     }
 }
diff --git a/src/structure/structure_params.ts b/src/structure/structure_params.ts
index f782e0ed..e75d4c11 100644
--- a/src/structure/structure_params.ts
+++ b/src/structure/structure_params.ts
@@ -1,5 +1,5 @@
 import { Nub } from "../nub";
-import { ParamDefinition, ParamDomainValue, ParamsEquation, CalculatorType } from "../param";
+import { ParamDefinition, ParamDomainValue, ParamsEquation } from "../param";
 
 /**
  * Common parameters of hydraulic structure equations
@@ -38,21 +38,21 @@ export class StructureParams extends ParamsEquation {
      */
     constructor(rQ: number, rZDV: number, rZ1: number, rZ2: number, rW: number = Infinity) {
         super();
-        this.Q = new ParamDefinition(CalculatorType.Structure, "Q", ParamDomainValue.ANY, rQ);
+        this.Q = new ParamDefinition("Q", ParamDomainValue.ANY, rQ);
         this.addParamDefinition(this.Q);
-        this.ZDV = new ParamDefinition(CalculatorType.Structure, "ZDV", ParamDomainValue.ANY, rZDV);
+        this.ZDV = new ParamDefinition("ZDV", ParamDomainValue.ANY, rZDV);
         this.addParamDefinition(this.ZDV);
-        this.Z1 = new ParamDefinition(CalculatorType.Structure, "Z1", ParamDomainValue.ANY, rZ1);
+        this.Z1 = new ParamDefinition("Z1", ParamDomainValue.ANY, rZ1);
         this.addParamDefinition(this.Z1);
-        this.Z2 = new ParamDefinition(CalculatorType.Structure, "Z2", ParamDomainValue.ANY, rZ2);
+        this.Z2 = new ParamDefinition("Z2", ParamDomainValue.ANY, rZ2);
         this.addParamDefinition(this.Z2);
-        this.h1 = new ParamDefinition(CalculatorType.Structure, "h1", ParamDomainValue.POS_NULL,
+        this.h1 = new ParamDefinition("h1", ParamDomainValue.POS_NULL,
             Math.max(0, this.Z1.v - this.ZDV.v));
         this.addParamDefinition(this.h1);
-        this.h2 = new ParamDefinition(CalculatorType.Structure, "h2", ParamDomainValue.POS_NULL,
+        this.h2 = new ParamDefinition("h2", ParamDomainValue.POS_NULL,
             Math.max(0, this.Z2.v - this.ZDV.v));
         this.addParamDefinition(this.h2);
-        this.W = new ParamDefinition(CalculatorType.Structure, "W", ParamDomainValue.POS_NULL, rW);
+        this.W = new ParamDefinition("W", ParamDomainValue.POS_NULL, rW);
         this.addParamDefinition(this.W);
     }
 
-- 
GitLab