From ea86668b148647f4a4e2d1d6afcb62159fc4bff7 Mon Sep 17 00:00:00 2001
From: "francois.grand" <francois.grand@irstea.fr>
Date: Tue, 19 Sep 2017 15:29:48 +0200
Subject: [PATCH] =?UTF-8?q?sections=20param=C3=A9tr=C3=A9es=20:=20passage?=
 =?UTF-8?q?=20des=20m=C3=A9thodes=20Calc=5Fxx=20en=20private/protected?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 spec/section_param_circ_fluvial.spec.ts      |  64 +++++------
 spec/section_param_circ_torrentiel.spec.ts   |  32 +++---
 spec/section_param_puiss_fluvial.spec.ts     |  64 +++++------
 spec/section_param_puiss_torrentiel.spec.ts  |  32 +++---
 spec/section_param_rect_fluvial.spec.ts      |  64 +++++------
 spec/section_param_rect_torrentiel.spec.ts   |  32 +++---
 spec/section_param_trapez_fluvial.spec.ts    |  64 +++++------
 spec/section_param_trapez_torrentiel.spec.ts |  32 +++---
 src/section/section_circulaire.ts            |  18 +--
 src/section/section_puissance.ts             |  16 +--
 src/section/section_rectang.ts               |  12 +-
 src/section/section_trapez.ts                |  16 +--
 src/section/section_type.ts                  | 109 ++++++-------------
 13 files changed, 259 insertions(+), 296 deletions(-)

diff --git a/spec/section_param_circ_fluvial.spec.ts b/spec/section_param_circ_fluvial.spec.ts
index 521651e7..e4631773 100644
--- a/spec/section_param_circ_fluvial.spec.ts
+++ b/spec/section_param_circ_fluvial.spec.ts
@@ -43,73 +43,73 @@ describe('Section paramétrée circulaire : ', () => {
     describe('fluvial / pas de débordement :', () => {
         // charge spécifique
         it('Hs should equal to 0.853', () => {
-            expect(sect.Calc_Hs()).toBeCloseTo(0.853, precDigits);
+            expect(sect.Calc("Hs")).toBeCloseTo(0.853, precDigits);
         });
 
         // charge critique
         it('Hsc should equal to 0.694', () => {
-            expect(sect.Calc_Hsc()).toBeCloseTo(0.694, precDigits);
+            expect(sect.Calc("Hsc")).toBeCloseTo(0.694, precDigits);
         });
 
         // largeur au miroir
         it('B should equal to 1.959', () => {
-            expect(sect.Calc_B()).toBeCloseTo(1.959, 2);
+            expect(sect.Calc("B")).toBeCloseTo(1.959, 2);
         });
 
         // périmètre mouillé
         it('P should equal to 2.738', () => {
-            expect(sect.Calc_P()).toBeCloseTo(2.738, 2);
+            expect(sect.Calc("P")).toBeCloseTo(2.738, 2);
         });
 
         // surface mouillée
         it('S should equal to 1.173', () => {
-            expect(sect.Calc_S()).toBeCloseTo(1.173, precDigits);
+            expect(sect.Calc("S")).toBeCloseTo(1.173, precDigits);
         });
 
         // rayon hydraulique
         it('R should equal to 0.428', () => {
-            expect(sect.Calc_R()).toBeCloseTo(0.428, precDigits);
+            expect(sect.Calc("R")).toBeCloseTo(0.428, precDigits);
         });
 
         // vitesse moyenne
         it('V should equal to 1.023', () => {
-            expect(sect.Calc_V()).toBeCloseTo(1.023, precDigits);
+            expect(sect.Calc("V")).toBeCloseTo(1.023, precDigits);
         });
 
         // nombre de Froude
         it('Fr should equal to 0.422', () => {
-            expect(sect.Calc_Fr()).toBeCloseTo(0.422, precDigits);
+            expect(sect.Calc("Fr")).toBeCloseTo(0.422, precDigits);
         });
 
         // tirant d'eau critique
         it('Yc should equal to 0.512', () => {
-            expect(sect.Calc_Yc()).toBeCloseTo(0.512, precDigits);
+            expect(sect.Calc("Yc")).toBeCloseTo(0.512, precDigits);
         });
 
         // tirant d'eau normal
         it('Yn should equal to 0.976', () => {
-            expect(sect.Calc_Yn()).toBeCloseTo(0.976, precDigits);
+            expect(sect.Calc("Yn")).toBeCloseTo(0.976, precDigits);
         });
 
         // tirant d'eau fluvial
         it('Yf should equal to 0.8', () => {
-            expect(sect.Calc_Yf()).toBeCloseTo(0.8, precDigits);
+            expect(sect.Calc("Yf")).toBeCloseTo(0.8, precDigits);
         });
 
         // tirant d'eau torrentiel
         it('Yt should equal to 0.361', () => {
-            expect(sect.Calc_Yt()).toBeCloseTo(0.361, precDigits);
+            expect(sect.Calc("Yt")).toBeCloseTo(0.361, precDigits);
         });
 
         // tirant d'eau conjugué
         it('Yco should equal to 0.307', () => {
-            expect(sect.Calc_Yco()).toBeCloseTo(0.307, precDigits);
+            expect(sect.Calc("Yco")).toBeCloseTo(0.307, precDigits);
         });
 
         // perte de charge
         it('J should equal to 0.002', () => {
             //sect = createSection(0.00001);
-            expect(sect.Calc_J()).toBeCloseTo(0.002, precDigits);
+            expect(sect.Calc("J")).toBeCloseTo(0.002, precDigits);
         });
 
         // Variation linéaire de l'énergie spécifique
@@ -120,12 +120,12 @@ describe('Section paramétrée circulaire : ', () => {
 
         // impulsion hydraulique
         it('Imp should equal to 5076.304', () => {
-            expect(sect.Calc_Imp()).toBeCloseTo(5076.304, precDigits);
+            expect(sect.Calc("Imp")).toBeCloseTo(5076.304, precDigits);
         });
 
         // force tractrice (contrainte de cisaillement)
         it('Tau0 should equal to 8.505', () => {
-            expect(sect.Calc_Tau0()).toBeCloseTo(8.505, precDigits);
+            expect(sect.Calc("Tau0")).toBeCloseTo(8.505, precDigits);
         });
     });
 });
@@ -139,73 +139,73 @@ describe('Section paramétrée circulaire : ', () => {
     describe('fluvial / débordement :', () => {
         // charge spécifique
         it('Hs should equal to 2.006', () => {
-            expect(sect.Calc_Hs()).toBeCloseTo(2.006, precDigits);
+            expect(sect.Calc("Hs")).toBeCloseTo(2.006, precDigits);
         });
 
         // charge critique
         it('Hsc should equal to 0.694', () => {
-            expect(sect.Calc_Hsc()).toBeCloseTo(0.694, precDigits);
+            expect(sect.Calc("Hsc")).toBeCloseTo(0.694, precDigits);
         });
 
         // largeur au miroir
         it('B should equal to 2', () => {
-            expect(sect.Calc_B()).toBeCloseTo(2, precDigits);
+            expect(sect.Calc("B")).toBeCloseTo(2, precDigits);
         });
 
         // périmètre mouillé
         it('P should equal to 5.142', () => {
-            expect(sect.Calc_P()).toBeCloseTo(5.142, precDigits);
+            expect(sect.Calc("P")).toBeCloseTo(5.142, precDigits);
         });
 
         // surface mouillée
         it('S should equal to 3.571', () => {
-            expect(sect.Calc_S()).toBeCloseTo(3.571, precDigits);
+            expect(sect.Calc("S")).toBeCloseTo(3.571, precDigits);
         });
 
         // rayon hydraulique
         it('R should equal to 0.694', () => {
-            expect(sect.Calc_R()).toBeCloseTo(0.694, precDigits);
+            expect(sect.Calc("R")).toBeCloseTo(0.694, precDigits);
         });
 
         // vitesse moyenne
         it('V should equal to 0.336', () => {
-            expect(sect.Calc_V()).toBeCloseTo(0.336, precDigits);
+            expect(sect.Calc("V")).toBeCloseTo(0.336, precDigits);
         });
 
         // nombre de Froude
         it('Fr should equal to 0.08', () => {
-            expect(sect.Calc_Fr()).toBeCloseTo(0.08, precDigits);
+            expect(sect.Calc("Fr")).toBeCloseTo(0.08, precDigits);
         });
 
         // tirant d'eau critique
         it('Yc should equal to 0.512', () => {
-            expect(sect.Calc_Yc()).toBeCloseTo(0.512, precDigits);
+            expect(sect.Calc("Yc")).toBeCloseTo(0.512, precDigits);
         });
 
         // tirant d'eau normal
         it('Yn should equal to 0.976', () => {
-            expect(sect.Calc_Yn()).toBeCloseTo(0.976, precDigits);
+            expect(sect.Calc("Yn")).toBeCloseTo(0.976, precDigits);
         });
 
         // tirant d'eau fluvial
         it('Yf should equal to 2', () => {
-            expect(sect.Calc_Yf()).toBeCloseTo(2, precDigits);
+            expect(sect.Calc("Yf")).toBeCloseTo(2, precDigits);
         });
 
         // tirant d'eau torrentiel
         it('Yt should equal to 0.232', () => {
-            expect(sect.Calc_Yt()).toBeCloseTo(0.232, precDigits);
+            expect(sect.Calc("Yt")).toBeCloseTo(0.232, precDigits);
         });
 
         // tirant d'eau conjugué
         it('Yco should equal to 0.24', () => {
-            expect(sect.Calc_Yco()).toBeCloseTo(0.24, precDigits);
+            expect(sect.Calc("Yco")).toBeCloseTo(0.24, precDigits);
         });
 
         // perte de charge
         it('J should equal to 0.0001', () => {
             sect = createSectionDebordement(0.00001);
-            expect(sect.Calc_J()).toBeCloseTo(0.0001, precDigits);
+            expect(sect.Calc("J")).toBeCloseTo(0.0001, precDigits);
         });
 
         // Variation linéaire de l'énergie spécifique
@@ -216,12 +216,12 @@ describe('Section paramétrée circulaire : ', () => {
 
         // impulsion hydraulique
         it('Imp should equal to 6943.271', () => {
-            expect(sect.Calc_Imp()).toBeCloseTo(6943.271, precDigits);
+            expect(sect.Calc("Imp")).toBeCloseTo(6943.271, precDigits);
         });
 
         // force tractrice (contrainte de cisaillement)
         it('Tau0 should equal to 0.782', () => {
-            expect(sect.Calc_Tau0()).toBeCloseTo(0.782, precDigits);
+            expect(sect.Calc("Tau0")).toBeCloseTo(0.782, precDigits);
         });
     });
 });
diff --git a/spec/section_param_circ_torrentiel.spec.ts b/spec/section_param_circ_torrentiel.spec.ts
index f98fa9c4..3f77f02a 100644
--- a/spec/section_param_circ_torrentiel.spec.ts
+++ b/spec/section_param_circ_torrentiel.spec.ts
@@ -29,73 +29,73 @@ describe('Section paramétrée circulaire : ', () => {
     describe('torrentiel :', () => {
         // charge spécifique
         it('Hs should equal to 4.501', () => {
-            expect(sect.Calc_Hs()).toBeCloseTo(4.501, precDigits);
+            expect(sect.Calc("Hs")).toBeCloseTo(4.501, precDigits);
         });
 
         // charge critique
         it('Hsc should equal to 2.263', () => {
-            expect(sect.Calc_Hsc()).toBeCloseTo(2.263, precDigits);
+            expect(sect.Calc("Hsc")).toBeCloseTo(2.263, precDigits);
         });
 
         // largeur au miroir
         it('B should equal to 1.960', () => {
-            expect(sect.Calc_B()).toBeCloseTo(1.960, precDigits);
+            expect(sect.Calc("B")).toBeCloseTo(1.960, precDigits);
         });
 
         // périmètre mouillé
         it('P should equal to 2.739', () => {
-            expect(sect.Calc_P()).toBeCloseTo(2.739, precDigits);
+            expect(sect.Calc("P")).toBeCloseTo(2.739, precDigits);
         });
 
         // surface mouillée
         it('S should equal to 1.173', () => {
-            expect(sect.Calc_S()).toBeCloseTo(1.173, precDigits);
+            expect(sect.Calc("S")).toBeCloseTo(1.173, precDigits);
         });
 
         // rayon hydraulique
         it('R should equal to 0.428', () => {
-            expect(sect.Calc_R()).toBeCloseTo(0.428, precDigits);
+            expect(sect.Calc("R")).toBeCloseTo(0.428, precDigits);
         });
 
         // vitesse moyenne
         it('V should equal to 8.522', () => {
-            expect(sect.Calc_V()).toBeCloseTo(8.522, precDigits);
+            expect(sect.Calc("V")).toBeCloseTo(8.522, precDigits);
         });
 
         // nombre de Froude
         it('Fr should equal to 3.516', () => {
-            expect(sect.Calc_Fr()).toBeCloseTo(3.516, precDigits);
+            expect(sect.Calc("Fr")).toBeCloseTo(3.516, precDigits);
         });
 
         // tirant d'eau critique
         it('Yc should equal to 1.581', () => {
-            expect(sect.Calc_Yc()).toBeCloseTo(1.581, precDigits);
+            expect(sect.Calc("Yc")).toBeCloseTo(1.581, precDigits);
         });
 
         // tirant d'eau normal
         it('Yn should equal to 4.624', () => {
-            expect(sect.Calc_Yn()).toBeCloseTo(4.624, precDigits);
+            expect(sect.Calc("Yn")).toBeCloseTo(4.624, precDigits);
         });
 
         // tirant d'eau fluvial
         it('Yf should equal to 4.43', () => {
-            expect(sect.Calc_Yf()).toBeCloseTo(4.43, precDigits);
+            expect(sect.Calc("Yf")).toBeCloseTo(4.43, precDigits);
         });
 
         // tirant d'eau torrentiel
         it('Yt should equal to 0.8', () => {
-            expect(sect.Calc_Yt()).toBeCloseTo(0.8, precDigits);
+            expect(sect.Calc("Yt")).toBeCloseTo(0.8, precDigits);
         });
 
         // tirant d'eau conjugué
         it('Yco should equal to 0.8', () => {
-            expect(sect.Calc_Yco()).toBeCloseTo(0.8, precDigits);
+            expect(sect.Calc("Yco")).toBeCloseTo(0.8, precDigits);
         });
 
         // perte de charge
         it('J should equal to 0.141', () => {
             //sect = createSection(0.00001);
-            expect(sect.Calc_J()).toBeCloseTo(0.141, precDigits);
+            expect(sect.Calc("J")).toBeCloseTo(0.141, precDigits);
         });
 
         // Variation linéaire de l'énergie spécifique
@@ -106,12 +106,12 @@ describe('Section paramétrée circulaire : ', () => {
 
         // impulsion hydraulique
         it('Imp should equal to 89065.861', () => {
-            expect(sect.Calc_Imp()).toBeCloseTo(89065.861, precDigits);
+            expect(sect.Calc("Imp")).toBeCloseTo(89065.861, precDigits);
         });
 
         // force tractrice (contrainte de cisaillement)
         it('Tau0 should equal to 590.605', () => {
-            expect(sect.Calc_Tau0()).toBeCloseTo(590.605, precDigits);
+            expect(sect.Calc("Tau0")).toBeCloseTo(590.605, precDigits);
         });
     });
 });
diff --git a/spec/section_param_puiss_fluvial.spec.ts b/spec/section_param_puiss_fluvial.spec.ts
index ead8d5fe..54941e14 100644
--- a/spec/section_param_puiss_fluvial.spec.ts
+++ b/spec/section_param_puiss_fluvial.spec.ts
@@ -45,73 +45,73 @@ describe('Section paramétrée puissance :', () => {
     describe('fluvial / pas de débordement :', () => {
         // charge spécifique
         it('Hs should equal to 0.82', () => {
-            expect(sect.Calc_Hs()).toBeCloseTo(0.82, precDigits);
+            expect(sect.Calc("Hs")).toBeCloseTo(0.82, precDigits);
         });
 
         // charge critique
         it('Hsc should equal to 0.559', () => {
-            expect(sect.Calc_Hsc()).toBeCloseTo(0.559, precDigits);
+            expect(sect.Calc("Hsc")).toBeCloseTo(0.559, precDigits);
         });
 
         // largeur au miroir
         it('B should equal to 3.578', () => {
-            expect(sect.Calc_B()).toBeCloseTo(3.578, precDigits);
+            expect(sect.Calc("B")).toBeCloseTo(3.578, precDigits);
         });
 
         // périmètre mouillé
         it('P should equal to 4.223', () => {
-            expect(sect.Calc_P()).toBeCloseTo(4.223, precDigits);
+            expect(sect.Calc("P")).toBeCloseTo(4.223, precDigits);
         });
 
         // surface mouillée
         it('S should equal to 1.908', () => {
-            expect(sect.Calc_S()).toBeCloseTo(1.908, precDigits);
+            expect(sect.Calc("S")).toBeCloseTo(1.908, precDigits);
         });
 
         // rayon hydraulique
         it('R should equal to 0.452', () => {
-            expect(sect.Calc_R()).toBeCloseTo(0.452, precDigits);
+            expect(sect.Calc("R")).toBeCloseTo(0.452, precDigits);
         });
 
         // vitesse moyenne
         it('V should equal to 0.629', () => {
-            expect(sect.Calc_V()).toBeCloseTo(0.629, precDigits);
+            expect(sect.Calc("V")).toBeCloseTo(0.629, precDigits);
         });
 
         // nombre de Froude
         it('Fr should equal to 0.275', () => {
-            expect(sect.Calc_Fr()).toBeCloseTo(0.275, precDigits);
+            expect(sect.Calc("Fr")).toBeCloseTo(0.275, precDigits);
         });
 
         // tirant d'eau critique
         it('Yc should equal to 0.419', () => {
-            expect(sect.Calc_Yc()).toBeCloseTo(0.419, precDigits);
+            expect(sect.Calc("Yc")).toBeCloseTo(0.419, precDigits);
         });
 
         // tirant d'eau normal
         it('Yn should equal to 0.742', () => {
-            expect(sect.Calc_Yn()).toBeCloseTo(0.742, precDigits);
+            expect(sect.Calc("Yn")).toBeCloseTo(0.742, precDigits);
         });
 
         // tirant d'eau fluvial
         it('Yf should equal to 0.8', () => {
-            expect(sect.Calc_Yf()).toBeCloseTo(0.8, precDigits);
+            expect(sect.Calc("Yf")).toBeCloseTo(0.8, precDigits);
         });
 
         // tirant d'eau torrentiel
         it('Yt should equal to 0.265', () => {
-            expect(sect.Calc_Yt()).toBeCloseTo(0.265, precDigits);
+            expect(sect.Calc("Yt")).toBeCloseTo(0.265, precDigits);
         });
 
         // tirant d'eau conjugué
         it('Yco should equal to 0.189', () => {
-            expect(sect.Calc_Yco()).toBeCloseTo(0.189, precDigits);
+            expect(sect.Calc("Yco")).toBeCloseTo(0.189, precDigits);
         });
 
         // perte de charge
         it('J should equal to 0.0007', () => {
             sect = createSection(0.00001);
-            expect(sect.Calc_J()).toBeCloseTo(0.0007, precDigits);
+            expect(sect.Calc("J")).toBeCloseTo(0.0007, precDigits);
         });
 
         // Variation linéaire de l'énergie spécifique
@@ -122,12 +122,12 @@ describe('Section paramétrée puissance :', () => {
 
         // impulsion hydraulique
         it('Imp should equal to 6744.616', () => {
-            expect(sect.Calc_Imp()).toBeCloseTo(6744.616, precDigits);
+            expect(sect.Calc("Imp")).toBeCloseTo(6744.616, precDigits);
         });
 
         // force tractrice (contrainte de cisaillement)
         it('Tau0 should equal to 3.16', () => {
-            expect(sect.Calc_Tau0()).toBeCloseTo(3.16, precDigits);
+            expect(sect.Calc("Tau0")).toBeCloseTo(3.16, precDigits);
         });
     });
 });
@@ -141,73 +141,73 @@ describe('Section paramétrée puissance :', () => {
     describe('fluvial / débordement :', () => {
         // charge spécifique
         it('Hs should equal to 2.001', () => {
-            expect(sect.Calc_Hs()).toBeCloseTo(2.001, precDigits);
+            expect(sect.Calc("Hs")).toBeCloseTo(2.001, precDigits);
         });
 
         // charge critique
         it('Hsc should equal to 0.559', () => {
-            expect(sect.Calc_Hsc()).toBeCloseTo(0.559, precDigits);
+            expect(sect.Calc("Hsc")).toBeCloseTo(0.559, precDigits);
         });
 
         // largeur au miroir
         it('B should equal to 4', () => {
-            expect(sect.Calc_B()).toBeCloseTo(4, precDigits);
+            expect(sect.Calc("B")).toBeCloseTo(4, precDigits);
         });
 
         // périmètre mouillé
         it('P should equal to 6.098', () => {
-            expect(sect.Calc_P()).toBeCloseTo(6.098, precDigits);
+            expect(sect.Calc("P")).toBeCloseTo(6.098, precDigits);
         });
 
         // surface mouillée
         it('S should equal to 7.542', () => {
-            expect(sect.Calc_S()).toBeCloseTo(7.542, precDigits);
+            expect(sect.Calc("S")).toBeCloseTo(7.542, precDigits);
         });
 
         // rayon hydraulique
         it('R should equal to 1.237', () => {
-            expect(sect.Calc_R()).toBeCloseTo(1.237, precDigits);
+            expect(sect.Calc("R")).toBeCloseTo(1.237, precDigits);
         });
 
         // vitesse moyenne
         it('V should equal to 0.159', () => {
-            expect(sect.Calc_V()).toBeCloseTo(0.159, precDigits);
+            expect(sect.Calc("V")).toBeCloseTo(0.159, precDigits);
         });
 
         // nombre de Froude
         it('Fr should equal to 0.037', () => {
-            expect(sect.Calc_Fr()).toBeCloseTo(0.037, precDigits);
+            expect(sect.Calc("Fr")).toBeCloseTo(0.037, precDigits);
         });
 
         // tirant d'eau critique
         it('Yc should equal to 0.419', () => {
-            expect(sect.Calc_Yc()).toBeCloseTo(0.419, precDigits);
+            expect(sect.Calc("Yc")).toBeCloseTo(0.419, precDigits);
         });
 
         // tirant d'eau normal
         it('Yn should equal to 0.742', () => {
-            expect(sect.Calc_Yn()).toBeCloseTo(0.742, precDigits);
+            expect(sect.Calc("Yn")).toBeCloseTo(0.742, precDigits);
         });
 
         // tirant d'eau fluvial
         it('Yf should equal to 2', () => {
-            expect(sect.Calc_Yf()).toBeCloseTo(2, precDigits);
+            expect(sect.Calc("Yf")).toBeCloseTo(2, precDigits);
         });
 
         // tirant d'eau torrentiel
         it('Yt should equal to 0.178', () => {
-            expect(sect.Calc_Yt()).toBeCloseTo(0.178, precDigits);
+            expect(sect.Calc("Yt")).toBeCloseTo(0.178, precDigits);
         });
 
         // tirant d'eau conjugué
         it('Yco should equal to 0.044', () => {
-            expect(sect.Calc_Yco()).toBeCloseTo(0.044, precDigits);
+            expect(sect.Calc("Yco")).toBeCloseTo(0.044, precDigits);
         });
 
         // perte de charge
         it('J should equal to 0.00059', () => {
             sect = createSection(0.00001);
-            expect(sect.Calc_J()).toBeCloseTo(0.00059, precDigits);
+            expect(sect.Calc("J")).toBeCloseTo(0.00059, precDigits);
         });
 
         // Variation linéaire de l'énergie spécifique
@@ -218,12 +218,12 @@ describe('Section paramétrée puissance :', () => {
 
         // impulsion hydraulique
         it('Imp should equal to 59384.242', () => {
-            expect(sect.Calc_Imp()).toBeCloseTo(59384.242, precDigits);
+            expect(sect.Calc("Imp")).toBeCloseTo(59384.242, precDigits);
         });
 
         // force tractrice (contrainte de cisaillement)
         it('Tau0 should equal to 0.145', () => {
-            expect(sect.Calc_Tau0()).toBeCloseTo(0.145, precDigits);
+            expect(sect.Calc("Tau0")).toBeCloseTo(0.145, precDigits);
         });
     });
 });
diff --git a/spec/section_param_puiss_torrentiel.spec.ts b/spec/section_param_puiss_torrentiel.spec.ts
index 1cac7936..179d9a63 100644
--- a/spec/section_param_puiss_torrentiel.spec.ts
+++ b/spec/section_param_puiss_torrentiel.spec.ts
@@ -30,73 +30,73 @@ describe('Section paramétrée puissance :', () => {
     describe('torrentiel / pas de débordement :', () => {
         // charge spécifique
         it('Hs should equal to 2.2', () => {
-            expect(sect.Calc_Hs()).toBeCloseTo(2.2, precDigits);
+            expect(sect.Calc("Hs")).toBeCloseTo(2.2, precDigits);
         });
 
         // charge critique
         it('Hsc should equal to 1.616', () => {
-            expect(sect.Calc_Hsc()).toBeCloseTo(1.616, precDigits);
+            expect(sect.Calc("Hsc")).toBeCloseTo(1.616, precDigits);
         });
 
         // largeur au miroir
         it('B should equal to 3.578', () => {
-            expect(sect.Calc_B()).toBeCloseTo(3.578, precDigits);
+            expect(sect.Calc("B")).toBeCloseTo(3.578, precDigits);
         });
 
         // périmètre mouillé
         it('P should equal to 4.223', () => {
-            expect(sect.Calc_P()).toBeCloseTo(4.223, precDigits);
+            expect(sect.Calc("P")).toBeCloseTo(4.223, precDigits);
         });
 
         // surface mouillée
         it('S should equal to 1.908', () => {
-            expect(sect.Calc_S()).toBeCloseTo(1.908, precDigits);
+            expect(sect.Calc("S")).toBeCloseTo(1.908, precDigits);
         });
 
         // rayon hydraulique
         it('R should equal to 0.452', () => {
-            expect(sect.Calc_R()).toBeCloseTo(0.452, precDigits);
+            expect(sect.Calc("R")).toBeCloseTo(0.452, precDigits);
         });
 
         // vitesse moyenne
         it('V should equal to 5.241', () => {
-            expect(sect.Calc_V()).toBeCloseTo(5.241, precDigits);
+            expect(sect.Calc("V")).toBeCloseTo(5.241, precDigits);
         });
 
         // nombre de Froude
         it('Fr should equal to 2.291', () => {
-            expect(sect.Calc_Fr()).toBeCloseTo(2.291, precDigits);
+            expect(sect.Calc("Fr")).toBeCloseTo(2.291, precDigits);
         });
 
         // tirant d'eau critique
         it('Yc should equal to 1.186', () => {
-            expect(sect.Calc_Yc()).toBeCloseTo(1.186, precDigits);
+            expect(sect.Calc("Yc")).toBeCloseTo(1.186, precDigits);
         });
 
         // tirant d'eau normal
         it('Yn should equal to 1.916', () => {
-            expect(sect.Calc_Yn()).toBeCloseTo(1.916, precDigits);
+            expect(sect.Calc("Yn")).toBeCloseTo(1.916, precDigits);
         });
 
         // tirant d'eau fluvial
         it('Yf should equal to 2.126', () => {
-            expect(sect.Calc_Yf()).toBeCloseTo(2.126, precDigits);
+            expect(sect.Calc("Yf")).toBeCloseTo(2.126, precDigits);
         });
 
         // tirant d'eau torrentiel
         it('Yt should equal to 0.8', () => {
-            expect(sect.Calc_Yt()).toBeCloseTo(0.8, precDigits);
+            expect(sect.Calc("Yt")).toBeCloseTo(0.8, precDigits);
         });
 
         // tirant d'eau conjugué
         it('Yco should equal to 1.746', () => {
-            expect(sect.Calc_Yco()).toBeCloseTo(1.746, precDigits);
+            expect(sect.Calc("Yco")).toBeCloseTo(1.746, precDigits);
         });
 
         // perte de charge
         it('J should equal to 0.05', () => {
             //sect = createSection(0.00001);
-            expect(sect.Calc_J()).toBeCloseTo(0.05, precDigits);
+            expect(sect.Calc("J")).toBeCloseTo(0.05, precDigits);
         });
 
         // Variation linéaire de l'énergie spécifique
@@ -107,12 +107,12 @@ describe('Section paramétrée puissance :', () => {
 
         // impulsion hydraulique
         it('Imp should equal to 58397.786', () => {
-            expect(sect.Calc_Imp()).toBeCloseTo(58397.786, precDigits);
+            expect(sect.Calc("Imp")).toBeCloseTo(58397.786, precDigits);
         });
 
         // force tractrice (contrainte de cisaillement)
         it('Tau0 should equal to 219.455', () => {
-            expect(sect.Calc_Tau0()).toBeCloseTo(219.455, precDigits);
+            expect(sect.Calc("Tau0")).toBeCloseTo(219.455, precDigits);
         });
     });
 });
diff --git a/spec/section_param_rect_fluvial.spec.ts b/spec/section_param_rect_fluvial.spec.ts
index 5c0af5b9..b59d05f6 100644
--- a/spec/section_param_rect_fluvial.spec.ts
+++ b/spec/section_param_rect_fluvial.spec.ts
@@ -43,73 +43,73 @@ describe('Section paramétrée rectangulaire : ', () => {
     describe('fluvial / pas de débordement :', () => {
         // charge spécifique
         it('Hs should equal to 0.818', () => {
-            expect(sect.Calc_Hs()).toBeCloseTo(0.818, precDigits);
+            expect(sect.Calc("Hs")).toBeCloseTo(0.818, precDigits);
         });
 
         // charge critique
         it('Hsc should equal to 0.43', () => {
-            expect(sect.Calc_Hsc()).toBeCloseTo(0.43, precDigits);
+            expect(sect.Calc("Hsc")).toBeCloseTo(0.43, precDigits);
         });
 
         // largeur au miroir
         it('B should equal to 2.5', () => {
-            expect(sect.Calc_B()).toBeCloseTo(2.5, precDigits);
+            expect(sect.Calc("B")).toBeCloseTo(2.5, precDigits);
         });
 
         // périmètre mouillé
         it('P should equal to 4.1', () => {
-            expect(sect.Calc_P()).toBeCloseTo(4.1, precDigits);
+            expect(sect.Calc("P")).toBeCloseTo(4.1, precDigits);
         });
 
         // surface mouillée
         it('S should equal to 2', () => {
-            expect(sect.Calc_S()).toBeCloseTo(2, precDigits);
+            expect(sect.Calc("S")).toBeCloseTo(2, precDigits);
         });
 
         // rayon hydraulique
         it('R should equal to 0.488', () => {
-            expect(sect.Calc_R()).toBeCloseTo(0.488, precDigits);
+            expect(sect.Calc("R")).toBeCloseTo(0.488, precDigits);
         });
 
         // vitesse moyenne
         it('V should equal to 0.6', () => {
-            expect(sect.Calc_V()).toBeCloseTo(0.6, precDigits);
+            expect(sect.Calc("V")).toBeCloseTo(0.6, precDigits);
         });
 
         // nombre de Froude
         it('Fr should equal to 0.214', () => {
-            expect(sect.Calc_Fr()).toBeCloseTo(0.214, precDigits);
+            expect(sect.Calc("Fr")).toBeCloseTo(0.214, precDigits);
         });
 
         // tirant d'eau critique
         it('Yc should equal to 0.286', () => {
-            expect(sect.Calc_Yc()).toBeCloseTo(0.286, precDigits);
+            expect(sect.Calc("Yc")).toBeCloseTo(0.286, precDigits);
         });
 
         // tirant d'eau normal
         it('Yn should equal to 0.663', () => {
-            expect(sect.Calc_Yn()).toBeCloseTo(0.663, precDigits);
+            expect(sect.Calc("Yn")).toBeCloseTo(0.663, precDigits);
         });
 
         // tirant d'eau fluvial
         it('Yf should equal to 0.8', () => {
-            expect(sect.Calc_Yf()).toBeCloseTo(0.8, precDigits);
+            expect(sect.Calc("Yf")).toBeCloseTo(0.8, precDigits);
         });
 
         // tirant d'eau torrentiel
         it('Yt should equal to 0.131', () => {
-            expect(sect.Calc_Yt()).toBeCloseTo(0.131, precDigits);
+            expect(sect.Calc("Yt")).toBeCloseTo(0.131, precDigits);
         });
 
         // tirant d'eau conjugué
         it('Yco should equal to 0.068', () => {
-            expect(sect.Calc_Yco()).toBeCloseTo(0.068, precDigits);
+            expect(sect.Calc("Yco")).toBeCloseTo(0.068, precDigits);
         });
 
         // perte de charge
         it('J should equal to 0.00059', () => {
             sect = createSection(0.00001);
-            expect(sect.Calc_J()).toBeCloseTo(0.00059, precDigits);
+            expect(sect.Calc("J")).toBeCloseTo(0.00059, precDigits);
         });
 
         // Variation linéaire de l'énergie spécifique
@@ -120,12 +120,12 @@ describe('Section paramétrée rectangulaire : ', () => {
 
         // impulsion hydraulique
         it('Imp should equal to 8568', () => {
-            expect(sect.Calc_Imp()).toBeCloseTo(8568, precDigits);
+            expect(sect.Calc("Imp")).toBeCloseTo(8568, precDigits);
         });
 
         // force tractrice (contrainte de cisaillement)
         it('Tau0 should equal to 2.804', () => {
-            expect(sect.Calc_Tau0()).toBeCloseTo(2.804, precDigits);
+            expect(sect.Calc("Tau0")).toBeCloseTo(2.804, precDigits);
         });
     });
 });
@@ -139,73 +139,73 @@ describe('Section paramétrée rectangulaire : ', () => {
     describe('fluvial / débordement :', () => {
         // charge spécifique
         it('Hs should equal to 2.003', () => {
-            expect(sect.Calc_Hs()).toBeCloseTo(2.003, precDigits);
+            expect(sect.Calc("Hs")).toBeCloseTo(2.003, precDigits);
         });
 
         // charge critique
         it('Hsc should equal to 0.43', () => {
-            expect(sect.Calc_Hsc()).toBeCloseTo(0.43, precDigits);
+            expect(sect.Calc("Hsc")).toBeCloseTo(0.43, precDigits);
         });
 
         // largeur au miroir
         it('B should equal to 2.5', () => {
-            expect(sect.Calc_B()).toBeCloseTo(2.5, precDigits);
+            expect(sect.Calc("B")).toBeCloseTo(2.5, precDigits);
         });
 
         // périmètre mouillé
         it('P should equal to 6.5', () => {
-            expect(sect.Calc_P()).toBeCloseTo(6.5, precDigits);
+            expect(sect.Calc("P")).toBeCloseTo(6.5, precDigits);
         });
 
         // surface mouillée
         it('S should equal to 5', () => {
-            expect(sect.Calc_S()).toBeCloseTo(5, precDigits);
+            expect(sect.Calc("S")).toBeCloseTo(5, precDigits);
         });
 
         // rayon hydraulique
         it('R should equal to 0.769', () => {
-            expect(sect.Calc_R()).toBeCloseTo(0.769, precDigits);
+            expect(sect.Calc("R")).toBeCloseTo(0.769, precDigits);
         });
 
         // vitesse moyenne
         it('V should equal to 0.24', () => {
-            expect(sect.Calc_V()).toBeCloseTo(0.24, precDigits);
+            expect(sect.Calc("V")).toBeCloseTo(0.24, precDigits);
         });
 
         // nombre de Froude
         it('Fr should equal to 0.0542', () => {
-            expect(sect.Calc_Fr()).toBeCloseTo(0.0542, precDigits);
+            expect(sect.Calc("Fr")).toBeCloseTo(0.0542, precDigits);
         });
 
         // tirant d'eau critique
         it('Yc should equal to 0.286', () => {
-            expect(sect.Calc_Yc()).toBeCloseTo(0.286, precDigits);
+            expect(sect.Calc("Yc")).toBeCloseTo(0.286, precDigits);
         });
 
         // tirant d'eau normal
         it('Yn should equal to 0.663', () => {
-            expect(sect.Calc_Yn()).toBeCloseTo(0.663, precDigits);
+            expect(sect.Calc("Yn")).toBeCloseTo(0.663, precDigits);
         });
 
         // tirant d'eau fluvial
         it('Yf should equal to 2', () => {
-            expect(sect.Calc_Yf()).toBeCloseTo(2, precDigits);
+            expect(sect.Calc("Yf")).toBeCloseTo(2, precDigits);
         });
 
         // tirant d'eau torrentiel
         it('Yt should equal to 0.078', () => {
-            expect(sect.Calc_Yt()).toBeCloseTo(0.078, precDigits);
+            expect(sect.Calc("Yt")).toBeCloseTo(0.078, precDigits);
         });
 
         // tirant d'eau conjugué
         it('Yco should equal to 0.012', () => {
-            expect(sect.Calc_Yco()).toBeCloseTo(0.012, precDigits);
+            expect(sect.Calc("Yco")).toBeCloseTo(0.012, precDigits);
         });
 
         // perte de charge
         it('J should equal to 0.00059', () => {
             sect = createSection(0.00001);
-            expect(sect.Calc_J()).toBeCloseTo(0.00059, precDigits);
+            expect(sect.Calc("J")).toBeCloseTo(0.00059, precDigits);
         });
 
         // Variation linéaire de l'énergie spécifique
@@ -216,12 +216,12 @@ describe('Section paramétrée rectangulaire : ', () => {
 
         // impulsion hydraulique
         it('Imp should equal to 49338', () => {
-            expect(sect.Calc_Imp()).toBeCloseTo(49338, precDigits);
+            expect(sect.Calc("Imp")).toBeCloseTo(49338, precDigits);
         });
 
         // force tractrice (contrainte de cisaillement)
         it('Tau0 should equal to 0.385', () => {
-            expect(sect.Calc_Tau0()).toBeCloseTo(0.385, precDigits);
+            expect(sect.Calc("Tau0")).toBeCloseTo(0.385, precDigits);
         });
     });
 });
diff --git a/spec/section_param_rect_torrentiel.spec.ts b/spec/section_param_rect_torrentiel.spec.ts
index 98e741e1..c754fc2f 100644
--- a/spec/section_param_rect_torrentiel.spec.ts
+++ b/spec/section_param_rect_torrentiel.spec.ts
@@ -25,73 +25,73 @@ describe('Section paramétrée rectangulaire : ', () => {
     describe('torrentiel :', () => {
         // charge spécifique
         it('Hs should equal to 2.074', () => {
-            expect(sect.Calc_Hs()).toBeCloseTo(2.074, precDigits);
+            expect(sect.Calc("Hs")).toBeCloseTo(2.074, precDigits);
         });
 
         // charge critique
         it('Hsc should equal to 1.766', () => {
-            expect(sect.Calc_Hsc()).toBeCloseTo(1.766, precDigits);
+            expect(sect.Calc("Hsc")).toBeCloseTo(1.766, precDigits);
         });
 
         // largeur au miroir
         it('B should equal to 2.5', () => {
-            expect(sect.Calc_B()).toBeCloseTo(2.5, precDigits);
+            expect(sect.Calc("B")).toBeCloseTo(2.5, precDigits);
         });
 
         // périmètre mouillé
         it('P should equal to 4.1', () => {
-            expect(sect.Calc_P()).toBeCloseTo(4.1, precDigits);
+            expect(sect.Calc("P")).toBeCloseTo(4.1, precDigits);
         });
 
         // surface mouillée
         it('S should equal to 2', () => {
-            expect(sect.Calc_S()).toBeCloseTo(2, precDigits);
+            expect(sect.Calc("S")).toBeCloseTo(2, precDigits);
         });
 
         // rayon hydraulique
         it('R should equal to 0.488', () => {
-            expect(sect.Calc_R()).toBeCloseTo(0.488, precDigits);
+            expect(sect.Calc("R")).toBeCloseTo(0.488, precDigits);
         });
 
         // vitesse moyenne
         it('V should equal to 5', () => {
-            expect(sect.Calc_V()).toBeCloseTo(5, precDigits);
+            expect(sect.Calc("V")).toBeCloseTo(5, precDigits);
         });
 
         // nombre de Froude
         it('Fr should equal to 1.785', () => {
-            expect(sect.Calc_Fr()).toBeCloseTo(1.785, precDigits);
+            expect(sect.Calc("Fr")).toBeCloseTo(1.785, precDigits);
         });
 
         // tirant d'eau critique
         it('Yc should equal to 1.177', () => {
-            expect(sect.Calc_Yc()).toBeCloseTo(1.177, precDigits);
+            expect(sect.Calc("Yc")).toBeCloseTo(1.177, precDigits);
         });
 
         // tirant d'eau normal
         it('Yn should equal to 3.364', () => {
-            expect(sect.Calc_Yn()).toBeCloseTo(3.364, precDigits);
+            expect(sect.Calc("Yn")).toBeCloseTo(3.364, precDigits);
         });
 
         // tirant d'eau fluvial
         it('Yf should equal to 1.831', () => {
-            expect(sect.Calc_Yf()).toBeCloseTo(1.831, precDigits);
+            expect(sect.Calc("Yf")).toBeCloseTo(1.831, precDigits);
         });
 
         // tirant d'eau torrentiel
         it('Yt should equal to 0.8', () => {
-            expect(sect.Calc_Yt()).toBeCloseTo(0.8, precDigits);
+            expect(sect.Calc("Yt")).toBeCloseTo(0.8, precDigits);
         });
 
         // tirant d'eau conjugué
         it('Yco should equal to 1.659', () => {
-            expect(sect.Calc_Yco()).toBeCloseTo(1.659, precDigits);
+            expect(sect.Calc("Yco")).toBeCloseTo(1.659, precDigits);
         });
 
         // perte de charge
         it('J should equal to 0.041', () => {
             //paramCnl.v.Prec = 0.00001;
-            expect(sect.Calc_J()).toBeCloseTo(0.041, precDigits);
+            expect(sect.Calc("J")).toBeCloseTo(0.041, precDigits);
         });
 
         // Variation linéaire de l'énergie spécifique
@@ -102,12 +102,12 @@ describe('Section paramétrée rectangulaire : ', () => {
 
         // impulsion hydraulique
         it('Imp should equal to 57848', () => {
-            expect(sect.Calc_Imp()).toBeCloseTo(57848, precDigits);
+            expect(sect.Calc("Imp")).toBeCloseTo(57848, precDigits);
         });
 
         // force tractrice (contrainte de cisaillement)
         it('Tau0 should equal to 194.718', () => {
-            expect(sect.Calc_Tau0()).toBeCloseTo(194.718, precDigits);
+            expect(sect.Calc("Tau0")).toBeCloseTo(194.718, precDigits);
         });
     });
 });
diff --git a/spec/section_param_trapez_fluvial.spec.ts b/spec/section_param_trapez_fluvial.spec.ts
index cfe42854..1107cdf6 100644
--- a/spec/section_param_trapez_fluvial.spec.ts
+++ b/spec/section_param_trapez_fluvial.spec.ts
@@ -45,73 +45,73 @@ describe('Section paramétrée trapèze : ', () => {
     describe('fluvial / pas de débordement :', () => {
         // charge spécifique
         it('Hs should equal to 0.813', () => {
-            expect(sect.Calc_Hs()).toBeCloseTo(0.813, precDigits);
+            expect(sect.Calc("Hs")).toBeCloseTo(0.813, precDigits);
         });
 
         // charge critique
         it('Hsc should equal to 0.413', () => {
-            expect(sect.Calc_Hsc()).toBeCloseTo(0.413, precDigits);
+            expect(sect.Calc("Hsc")).toBeCloseTo(0.413, precDigits);
         });
 
         // largeur au miroir
         it('B should equal to 3.396', () => {
-            expect(sect.Calc_B()).toBeCloseTo(3.396, precDigits);
+            expect(sect.Calc("B")).toBeCloseTo(3.396, precDigits);
         });
 
         // périmètre mouillé
         it('P should equal to 4.334', () => {
-            expect(sect.Calc_P()).toBeCloseTo(4.334, precDigits);
+            expect(sect.Calc("P")).toBeCloseTo(4.334, precDigits);
         });
 
         // surface mouillée
         it('S should equal to 2.358', () => {
-            expect(sect.Calc_S()).toBeCloseTo(2.358, precDigits);
+            expect(sect.Calc("S")).toBeCloseTo(2.358, precDigits);
         });
 
         // rayon hydraulique
         it('R should equal to 0.544', () => {
-            expect(sect.Calc_R()).toBeCloseTo(0.544, precDigits);
+            expect(sect.Calc("R")).toBeCloseTo(0.544, precDigits);
         });
 
         // vitesse moyenne
         it('V should equal to 0.509', () => {
-            expect(sect.Calc_V()).toBeCloseTo(0.509, precDigits);
+            expect(sect.Calc("V")).toBeCloseTo(0.509, precDigits);
         });
 
         // nombre de Froude
         it('Fr should equal to 0.195', () => {
-            expect(sect.Calc_Fr()).toBeCloseTo(0.195, precDigits);
+            expect(sect.Calc("Fr")).toBeCloseTo(0.195, precDigits);
         });
 
         // tirant d'eau critique
         it('Yc should equal to 0.28', () => {
-            expect(sect.Calc_Yc()).toBeCloseTo(0.28, precDigits);
+            expect(sect.Calc("Yc")).toBeCloseTo(0.28, precDigits);
         });
 
         // tirant d'eau normal
         it('Yn should equal to 0.587', () => {
-            expect(sect.Calc_Yn()).toBeCloseTo(0.587, precDigits);
+            expect(sect.Calc("Yn")).toBeCloseTo(0.587, precDigits);
         });
 
         // tirant d'eau fluvial
         it('Yf should equal to 0.8', () => {
-            expect(sect.Calc_Yf()).toBeCloseTo(0.8, precDigits);
+            expect(sect.Calc("Yf")).toBeCloseTo(0.8, precDigits);
         });
 
         // tirant d'eau torrentiel
         it('Yt should equal to 0.127', () => {
-            expect(sect.Calc_Yt()).toBeCloseTo(0.127, precDigits);
+            expect(sect.Calc("Yt")).toBeCloseTo(0.127, precDigits);
         });
 
         // tirant d'eau conjugué
         it('Yco should equal to 0.061', () => {
-            expect(sect.Calc_Yco()).toBeCloseTo(0.061, precDigits);
+            expect(sect.Calc("Yco")).toBeCloseTo(0.061, precDigits);
         });
 
         // perte de charge
         it('J should equal to 0.00036', () => {
             let sect = createSection(0.00001);
-            expect(sect.Calc_J()).toBeCloseTo(0.00036, precDigits);
+            expect(sect.Calc("J")).toBeCloseTo(0.00036, precDigits);
         });
 
         // Variation linéaire de l'énergie spécifique
@@ -121,12 +121,12 @@ describe('Section paramétrée trapèze : ', () => {
 
         // impulsion hydraulique
         it('Imp should equal to 9396.158', () => {
-            expect(sect.Calc_Imp()).toBeCloseTo(9396.158, precDigits);
+            expect(sect.Calc("Imp")).toBeCloseTo(9396.158, precDigits);
         });
 
         // force tractrice (contrainte de cisaillement)
         it('Tau0 should equal to 1.944', () => {
-            expect(sect.Calc_Tau0()).toBeCloseTo(1.944, precDigits);
+            expect(sect.Calc("Tau0")).toBeCloseTo(1.944, precDigits);
         });
     });
 });
@@ -140,73 +140,73 @@ describe('Section paramétrée trapèze : ', () => {
     describe('fluvial / débordement :', () => {
         // charge spécifique
         it('Hs should equal to 2.002', () => {
-            expect(sect.Calc_Hs()).toBeCloseTo(2.002, precDigits);
+            expect(sect.Calc("Hs")).toBeCloseTo(2.002, precDigits);
         });
 
         // charge critique
         it('Hsc should equal to 0.413', () => {
-            expect(sect.Calc_Hsc()).toBeCloseTo(0.413, precDigits);
+            expect(sect.Calc("Hsc")).toBeCloseTo(0.413, precDigits);
         });
 
         // largeur au miroir
         it('B should equal to 3.62', () => {
-            expect(sect.Calc_B()).toBeCloseTo(3.62, precDigits);
+            expect(sect.Calc("B")).toBeCloseTo(3.62, precDigits);
         });
 
         // périmètre mouillé
         it('P should equal to 6.792', () => {
-            expect(sect.Calc_P()).toBeCloseTo(6.792, precDigits);
+            expect(sect.Calc("P")).toBeCloseTo(6.792, precDigits);
         });
 
         // surface mouillée
         it('S should equal to 6.68', () => {
-            expect(sect.Calc_S()).toBeCloseTo(6.68, precDigits);
+            expect(sect.Calc("S")).toBeCloseTo(6.68, precDigits);
         });
 
         // rayon hydraulique
         it('R should equal to 0.983', () => {
-            expect(sect.Calc_R()).toBeCloseTo(0.983, precDigits);
+            expect(sect.Calc("R")).toBeCloseTo(0.983, precDigits);
         });
 
         // vitesse moyenne
         it('V should equal to 0.18', () => {
-            expect(sect.Calc_V()).toBeCloseTo(0.18, precDigits);
+            expect(sect.Calc("V")).toBeCloseTo(0.18, precDigits);
         });
 
         // nombre de Froude
         it('Fr should equal to 0.042', () => {
-            expect(sect.Calc_Fr()).toBeCloseTo(0.042, precDigits);
+            expect(sect.Calc("Fr")).toBeCloseTo(0.042, precDigits);
         });
 
         // tirant d'eau critique
         it('Yc should equal to 0.28', () => {
-            expect(sect.Calc_Yc()).toBeCloseTo(0.28, precDigits);
+            expect(sect.Calc("Yc")).toBeCloseTo(0.28, precDigits);
         });
 
         // tirant d'eau normal
         it('Yn should equal to 0.587', () => {
-            expect(sect.Calc_Yn()).toBeCloseTo(0.587, precDigits);
+            expect(sect.Calc("Yn")).toBeCloseTo(0.587, precDigits);
         });
 
         // tirant d'eau fluvial
         it('Yf should equal to 2', () => {
-            expect(sect.Calc_Yf()).toBeCloseTo(2, precDigits);
+            expect(sect.Calc("Yf")).toBeCloseTo(2, precDigits);
         });
 
         // tirant d'eau torrentiel
         it('Yt should equal to 0.077', () => {
-            expect(sect.Calc_Yt()).toBeCloseTo(0.077, precDigits);
+            expect(sect.Calc("Yt")).toBeCloseTo(0.077, precDigits);
         });
 
         // tirant d'eau conjugué
         it('Yco should equal to 0.009', () => {
-            expect(sect.Calc_Yco()).toBeCloseTo(0.009, precDigits);
+            expect(sect.Calc("Yco")).toBeCloseTo(0.009, precDigits);
         });
 
         // perte de charge
         it('J should equal to 0.00002', () => {
             let sect = createSection(0.00001);
-            expect(sect.Calc_J()).toBeCloseTo(0.00002, precDigits);
+            expect(sect.Calc("J")).toBeCloseTo(0.00002, precDigits);
         });
 
         // Variation linéaire de l'énergie spécifique
@@ -216,12 +216,12 @@ describe('Section paramétrée trapèze : ', () => {
 
         // impulsion hydraulique
         it('Imp should equal to 63915.169', () => {
-            expect(sect.Calc_Imp()).toBeCloseTo(63915.169, precDigits);
+            expect(sect.Calc("Imp")).toBeCloseTo(63915.169, precDigits);
         });
 
         // force tractrice (contrainte de cisaillement)
         it('Tau0 should equal to 0.199', () => {
-            expect(sect.Calc_Tau0()).toBeCloseTo(0.199, precDigits);
+            expect(sect.Calc("Tau0")).toBeCloseTo(0.199, precDigits);
         });
     });
 });
diff --git a/spec/section_param_trapez_torrentiel.spec.ts b/spec/section_param_trapez_torrentiel.spec.ts
index c659aa2b..c653eee0 100644
--- a/spec/section_param_trapez_torrentiel.spec.ts
+++ b/spec/section_param_trapez_torrentiel.spec.ts
@@ -26,73 +26,73 @@ describe('Section paramétrée trapèze :', () => {
     describe('torrentiel :', () => {
         // charge spécifique
         it('Hs should equal to 1.716', () => {
-            expect(sect.Calc_Hs()).toBeCloseTo(1.716, precDigits);
+            expect(sect.Calc("Hs")).toBeCloseTo(1.716, precDigits);
         });
 
         // charge critique
         it('Hsc should equal to 1.534', () => {
-            expect(sect.Calc_Hsc()).toBeCloseTo(1.534, precDigits);
+            expect(sect.Calc("Hsc")).toBeCloseTo(1.534, precDigits);
         });
 
         // largeur au miroir
         it('B should equal to 3.396', () => {
-            expect(sect.Calc_B()).toBeCloseTo(3.396, precDigits);
+            expect(sect.Calc("B")).toBeCloseTo(3.396, precDigits);
         });
 
         // périmètre mouillé
         it('P should equal to 4.334', () => {
-            expect(sect.Calc_P()).toBeCloseTo(4.334, precDigits);
+            expect(sect.Calc("P")).toBeCloseTo(4.334, precDigits);
         });
 
         // surface mouillée
         it('S should equal to 2.358', () => {
-            expect(sect.Calc_S()).toBeCloseTo(2.358, precDigits);
+            expect(sect.Calc("S")).toBeCloseTo(2.358, precDigits);
         });
 
         // rayon hydraulique
         it('R should equal to 0.544', () => {
-            expect(sect.Calc_R()).toBeCloseTo(0.544, precDigits);
+            expect(sect.Calc("R")).toBeCloseTo(0.544, precDigits);
         });
 
         // vitesse moyenne
         it('V should equal to 4.24', () => {
-            expect(sect.Calc_V()).toBeCloseTo(4.24, precDigits);
+            expect(sect.Calc("V")).toBeCloseTo(4.24, precDigits);
         });
 
         // nombre de Froude
         it('Fr should equal to 1.625', () => {
-            expect(sect.Calc_Fr()).toBeCloseTo(1.625, precDigits);
+            expect(sect.Calc("Fr")).toBeCloseTo(1.625, precDigits);
         });
 
         // tirant d'eau critique
         it('Yc should equal to 1.074', () => {
-            expect(sect.Calc_Yc()).toBeCloseTo(1.074, precDigits);
+            expect(sect.Calc("Yc")).toBeCloseTo(1.074, precDigits);
         });
 
         // tirant d'eau normal
         it('Yn should equal to 2.275', () => {
-            expect(sect.Calc_Yn()).toBeCloseTo(2.275, precDigits);
+            expect(sect.Calc("Yn")).toBeCloseTo(2.275, precDigits);
         });
 
         // tirant d'eau fluvial
         it('Yf should equal to 1.502', () => {
-            expect(sect.Calc_Yf()).toBeCloseTo(1.502, precDigits);
+            expect(sect.Calc("Yf")).toBeCloseTo(1.502, precDigits);
         });
 
         // tirant d'eau torrentiel
         it('Yt should equal to 0.8', () => {
-            expect(sect.Calc_Yt()).toBeCloseTo(0.8, precDigits);
+            expect(sect.Calc("Yt")).toBeCloseTo(0.8, precDigits);
         });
 
         // tirant d'eau conjugué
         it('Yco should equal to 1.398', () => {
-            expect(sect.Calc_Yco()).toBeCloseTo(1.398, precDigits);
+            expect(sect.Calc("Yco")).toBeCloseTo(1.398, precDigits);
         });
 
         // perte de charge
         it('J should equal to 0.025', () => {
             //paramCnl.v.Prec = 0.00001;
-            expect(sect.Calc_J()).toBeCloseTo(0.025, precDigits);
+            expect(sect.Calc("J")).toBeCloseTo(0.025, precDigits);
         });
 
         // Variation linéaire de l'énergie spécifique
@@ -102,12 +102,12 @@ describe('Section paramétrée trapèze :', () => {
 
         // impulsion hydraulique
         it('Imp should equal to 51187.203', () => {
-            expect(sect.Calc_Imp()).toBeCloseTo(51187.203, precDigits);
+            expect(sect.Calc("Imp")).toBeCloseTo(51187.203, precDigits);
         });
 
         // force tractrice (contrainte de cisaillement)
         it('Tau0 should equal to 135.020', () => {
-            expect(sect.Calc_Tau0()).toBeCloseTo(135.020, precDigits);
+            expect(sect.Calc("Tau0")).toBeCloseTo(135.020, precDigits);
         });
     });
 });
diff --git a/src/section/section_circulaire.ts b/src/section/section_circulaire.ts
index 9bc49b07..09931c2a 100644
--- a/src/section/section_circulaire.ts
+++ b/src/section/section_circulaire.ts
@@ -73,7 +73,7 @@ export class cSnCirc extends acSection {
                 return Math.min(alpha, Math.PI);
         }
 
-        Calc_Alpha() {
+        protected Calc_Alpha() {
                 this.debug("Calc_Alpha : bSnFermee " + this.bSnFermee);
 
                 if (this.prms.Y.v <= 0)
@@ -92,7 +92,7 @@ export class cSnCirc extends acSection {
          * Calcul de dérivée de l'angle Alpha de la surface libre par rapport au fond.
          * @return dAlpha
          */
-        Calc_dAlpha() {
+        protected Calc_dAlpha() {
                 if (this.prms.Y.v <= 0 || this.isDebordement())
                         return 0;
 
@@ -117,7 +117,7 @@ export class cSnCirc extends acSection {
          * Calcul de la largeur au miroir.
          * @return B
          */
-        Calc_B() {
+        protected Calc_B() {
                 this.debug("circ.Calc_B() : LargeurBerge " + this.prms.LargeurBerge.toString());
                 this.debug("circ.Calc_B() : D " + this.prms.D.toString());
                 this.debug("circ.Calc_B() : Y " + this.prms.Y.toString());
@@ -144,7 +144,7 @@ export class cSnCirc extends acSection {
          * Calcul du périmètre mouillé.
          * @return B
          */
-        Calc_P() {
+        protected Calc_P() {
                 if (!this.bSnFermee && this.isDebordement())
                         // On n'ajoute pas le périmètre dans le cas d'une fente de Preissmann
                         return this.CalcGeo("P") + super.Calc_P_Debordement(this.valeurYDebordement());
@@ -156,7 +156,7 @@ export class cSnCirc extends acSection {
          * Calcul de la surface mouillée.
          * @return S
          */
-        Calc_S() {
+        protected Calc_S() {
                 if (!this.bSnFermee && this.isDebordement())
                         return this.CalcGeo("S") + super.Calc_S_Debordement(this.valeurYDebordement());
 
@@ -169,7 +169,7 @@ export class cSnCirc extends acSection {
          * Calcul de dérivée du périmètre hydraulique par rapport au tirant d'eau.
          * @return dP
          */
-        Calc_dP() {
+        protected Calc_dP() {
                 if (!this.bSnFermee && this.isDebordement())
                         return super.Calc_dP_Debordement();
 
@@ -180,7 +180,7 @@ export class cSnCirc extends acSection {
          * Calcul de dérivée de la largeur au miroir par rapport au tirant d'eau.
          * @return dB
          */
-        Calc_dB() {
+        protected Calc_dB() {
                 if (this.isDebordement())
                         return super.Calc_dB_Debordement();
 
@@ -192,7 +192,7 @@ export class cSnCirc extends acSection {
          * multiplié par la surface hydraulique
          * @return S x Yg
          */
-        Calc_SYg() {
+        protected Calc_SYg(): number {
                 let alpha = this.Calc("Alpha");
                 let SYg = Math.sin(alpha) - Math.pow(Math.sin(alpha), 3) / 3 - alpha * Math.cos(alpha);
                 SYg = Math.pow(this.prms.D.v, 3) / 8 * SYg;
@@ -204,7 +204,7 @@ export class cSnCirc extends acSection {
          * multiplié par la surface hydraulique
          * @return S x Yg
          */
-        Calc_dSYg() {
+        protected Calc_dSYg() {
                 let alpha = this.Calc("Alpha");
                 let dAlpha = this.Calc("dAlpha");
                 var cos = Math.cos(alpha);
diff --git a/src/section/section_puissance.ts b/src/section/section_puissance.ts
index 81f972a8..b39afc56 100644
--- a/src/section/section_puissance.ts
+++ b/src/section/section_puissance.ts
@@ -45,7 +45,7 @@ export class cSnPuiss extends acSection {
          * Calcul de Lambda (mais on garde la routine Alpha commune avec la section circulaire)
          * @return Lambda
          */
-        Calc_Alpha(): number {
+        protected Calc_Alpha(): number {
                 return this.prms.LargeurBerge.v / Math.pow(this.prms.YB.v, this.prms.k.v);
         }
 
@@ -53,7 +53,7 @@ export class cSnPuiss extends acSection {
          * Calcul de la largeur au miroir.
          * @return B
          */
-        Calc_B(): number {
+        protected Calc_B(): number {
                 if (this.prms.Y.v >= this.prms.YB.v)
                         return this.prms.LargeurBerge.v;
 
@@ -64,7 +64,7 @@ export class cSnPuiss extends acSection {
          * Calcul du périmètre mouillé.
          * @return B
          */
-        Calc_P(): number {
+        protected Calc_P(): number {
                 var n = 100; /// Le nombre de partie pour le calcul de l'intégrale
                 var Lambda2 = Math.pow(this.Calc("Alpha"), 2);
                 var P = 0; /// Le périmètre à calculer
@@ -82,7 +82,7 @@ export class cSnPuiss extends acSection {
          * Calcul de la surface mouillée.
          * @return S
          */
-        Calc_S(): number {
+        protected Calc_S(): number {
                 let k = this.prms.k.v;
                 return this.Calc("Alpha") * Math.pow(this.prms.Y.v, k + 1) / (k + 1);
         }
@@ -91,7 +91,7 @@ export class cSnPuiss extends acSection {
          * Calcul de dérivée du périmètre hydraulique par rapport au tirant d'eau.
          * @return dP
          */
-        Calc_dP(): number {
+        protected Calc_dP(): number {
                 let k = this.prms.k.v;
                 return 2 * Math.sqrt(1 + Math.pow(k * this.Calc("Alpha") / 2, 2) * Math.pow(this.prms.Y.v, 2 * (k - 1)));
         }
@@ -100,7 +100,7 @@ export class cSnPuiss extends acSection {
          * Calcul de dérivée de la largeur au miroir par rapport au tirant d'eau.
          * @return dB
          */
-        Calc_dB(): number {
+        protected Calc_dB(): number {
                 let k = this.prms.k.v;
                 return this.Calc("Alpha") * k * Math.pow(this.prms.Y.v, k - 1);
         }
@@ -110,7 +110,7 @@ export class cSnPuiss extends acSection {
          * multiplié par la surface hydraulique
          * @return S x Yg
          */
-        Calc_SYg(): number {
+        protected Calc_SYg(): number {
                 let k = this.prms.k.v;
                 return this.Calc("Alpha") * Math.pow(this.prms.Y.v, k + 2) / ((k + 1) * (k + 2));
         }
@@ -120,7 +120,7 @@ export class cSnPuiss extends acSection {
          * multiplié par la surface hydraulique
          * @return S x Yg
          */
-        Calc_dSYg(): number {
+        protected Calc_dSYg(): number {
                 let k = this.prms.k.v;
                 let Y = this.prms.Y.v;
                 let SYg = this.Calc("dAlpha") * Math.pow(Y, k + 2) + this.Calc("Alpha") * Math.pow(Y, k + 1) * (k + 2);
diff --git a/src/section/section_rectang.ts b/src/section/section_rectang.ts
index 537b62bd..7f62985f 100644
--- a/src/section/section_rectang.ts
+++ b/src/section/section_rectang.ts
@@ -26,23 +26,23 @@ export class cSnRectang extends acSection {
          * Calcul du périmètre mouillé
          * @return Périmètre mouillé (m)
          */
-        Calc_P(): number {
+        protected Calc_P(): number {
                 return this.prms.LargeurBerge.v + super.Calc_P_Debordement(this.prms.Y.v);
         }
 
-        Calc_dP(): number {
+        protected Calc_dP(): number {
                 return super.Calc_dP_Debordement();
         }
 
-        Calc_B(): number {
+        protected Calc_B(): number {
                 return super.Calc_B_Debordement();
         }
 
-        Calc_dB(): number {
+        protected Calc_dB(): number {
                 return super.Calc_dB_Debordement();
         }
 
-        Calc_S(): number {
+        protected Calc_S(): number {
                 return super.Calc_S_Debordement(this.prms.Y.v);
         }
 
@@ -50,7 +50,7 @@ export class cSnRectang extends acSection {
          * Calcul du tirant d'eau conjugué avec la formule analytique pour la section rectangulaire
          * @return tirant d'eau conjugué
          */
-        CalcYco(): number {
+        protected CalcYco(): number {
                 return this.prms.Y.v * (Math.sqrt(1 + 8 * Math.pow(this.Calc("Fr"), 2)) - 1) / 2;
         }
 }
\ No newline at end of file
diff --git a/src/section/section_trapez.ts b/src/section/section_trapez.ts
index 23d60825..9ea275ea 100644
--- a/src/section/section_trapez.ts
+++ b/src/section/section_trapez.ts
@@ -52,7 +52,7 @@ export class cSnTrapez extends acSection {
         }
 
         // Calc_B(bBerge = false): number {
-        Calc_B(): number {
+        protected Calc_B(): number {
                 // if (!bBerge && this.isDebordement())
                 if (this.isDebordement())
                         //return this.prms.LargeurBerge.v;
@@ -65,7 +65,7 @@ export class cSnTrapez extends acSection {
          * Calcul du périmètre mouillé
          * @return Périmètre mouillé (m)
          */
-        Calc_P(): number {
+        protected Calc_P(): number {
                 if (this.isDebordement())
                         return this.CalcGeo("P") + super.Calc_P_Debordement(this.prms.Y.v - this.prms.YB.v);
 
@@ -76,7 +76,7 @@ export class cSnTrapez extends acSection {
          * Calcul de la surface mouillée
          * @return Surface mouillée (m2)
          */
-        Calc_S(): number {
+        protected Calc_S(): number {
                 if (this.isDebordement())
                         return this.CalcGeo("S") + super.Calc_S_Debordement(this.prms.Y.v - this.prms.YB.v);
 
@@ -87,7 +87,7 @@ export class cSnTrapez extends acSection {
          * Calcul de dérivée de la surface hydraulique par rapport au tirant d'eau.
          * @return dS
          */
-        Calc_dS(): number {
+        protected Calc_dS(): number {
                 if (this.isDebordement())
                         return super.Calc_dS();
 
@@ -98,7 +98,7 @@ export class cSnTrapez extends acSection {
          * Calcul de dérivée du périmètre hydraulique par rapport au tirant d'eau.
          * @return dP
          */
-        Calc_dP(): number {
+        protected Calc_dP(): number {
                 if (this.isDebordement())
                         return super.Calc_dP_Debordement();
 
@@ -109,7 +109,7 @@ export class cSnTrapez extends acSection {
          * Calcul de dérivée de la largeur au miroir par rapport au tirant d'eau.
          * @return dB
          */
-        Calc_dB(): number {
+        protected Calc_dB(): number {
                 if (this.isDebordement())
                         return super.Calc_dB_Debordement();
 
@@ -121,7 +121,7 @@ export class cSnTrapez extends acSection {
          * multiplié par la surface hydraulique
          * @return S x Yg
          */
-        Calc_SYg(): number {
+        protected Calc_SYg(): number {
                 return (this.prms.LargeurFond.v / 2 + this.prms.Fruit.v * this.prms.Y.v / 3) * Math.pow(this.prms.Y.v, 2);
         }
 
@@ -130,7 +130,7 @@ export class cSnTrapez extends acSection {
          * multiplié par la surface hydraulique
          * @return S x Yg
          */
-        Calc_dSYg(): number {
+        protected Calc_dSYg(): number {
                 var SYg = this.prms.Fruit.v / 3 * Math.pow(this.prms.Y.v, 2);
                 SYg += (this.prms.LargeurFond.v / 2 + this.prms.Fruit.v * this.prms.Y.v / 3) * 2 * this.prms.Y.v;
                 return SYg;
diff --git a/src/section/section_type.ts b/src/section/section_type.ts
index 0cb41d93..7c0ac54b 100644
--- a/src/section/section_type.ts
+++ b/src/section/section_type.ts
@@ -207,7 +207,7 @@ export abstract class acSection extends ComputeNode {
          * Efface toutes les données calculées pour forcer le recalcul
          * @param bGeo Réinitialise les données de géométrie aussi
          */
-        Reset(bGeo = true) {
+        public Reset(bGeo = true) {
                 this.debug("reset(" + bGeo + ")");
                 this.arCalc = {};
                 if (bGeo) {
@@ -245,7 +245,7 @@ export abstract class acSection extends ComputeNode {
          * @param rY valeur de Y à utiliser
          * @return la donnée calculée
          */
-        Calc(sDonnee: string, rY: number = undefined): number {
+        public Calc(sDonnee: string, rY: number = undefined): number {
                 this.debug("in Calc(" + sDonnee + ", rY=" + rY + ") old " + sDonnee + "=" + this.arCalc[sDonnee]);
                 this.debug("this.Y=" + this.prms.Y.toString());
 
@@ -289,7 +289,7 @@ export abstract class acSection extends ComputeNode {
          * @param sDonnee Clé de la donnée à calculer (voir this->arCalcGeo)
          * @return la donnée calculée
          */
-        CalcGeo(sDonnee: string): number {
+        protected CalcGeo(sDonnee: string): number {
                 this.debug("in CalcGeo(" + sDonnee + ") old " + sDonnee + "=" + this.arCalcGeo[sDonnee]);
                 this.debug("this.Y=" + this.prms.Y.toString());
 
@@ -336,10 +336,10 @@ export abstract class acSection extends ComputeNode {
          * Calcul de la surface hydraulique.
          * @return La surface hydraulique
          */
-        abstract Calc_S(): number;
+        protected abstract Calc_S(): number;
 
 
-        Calc_dS(): number {
+        protected Calc_dS(): number {
                 return this.Calc("B"); // largeur au miroir
         }
 
@@ -347,7 +347,7 @@ export abstract class acSection extends ComputeNode {
          *  calcul de la surface hydraulique en cas de débordement
          * @param Y hauteur d'eau au dela de la berge
          **/
-        Calc_S_Debordement(Y: number): number {
+        protected Calc_S_Debordement(Y: number): number {
                 // this.debug('section->CalcS(rY=' + Y + ') LargeurBerge=' + this.prms.LargeurBerge);
                 this.debug('section->CalcS(rY=' + Y + ') LargeurBerge=' + this.CalcGeo("B"));
                 // return Y * this.prms.LargeurBerge.v;
@@ -358,7 +358,7 @@ export abstract class acSection extends ComputeNode {
          * Calcul de la dérivée surface hydraulique en cas de débordement
          * @return La dérivée de la surface hydraulique en cas de débordement
          */
-        Calc_dS_Debordement(): number {
+        private Calc_dS_Debordement(): number {
                 // return this.prms.LargeurBerge.v;
                 return this.CalcGeo("B");
         }
@@ -367,13 +367,13 @@ export abstract class acSection extends ComputeNode {
          * Calcul du périmètre hydraulique.
          * @return Le périmètre hydraulique
          */
-        abstract Calc_P(): number;
+        protected abstract Calc_P(): number;
 
         /**
          * Calcul du périmètre hydraulique en cas de débordement
          * @param Y hauteur d'eau au dela de la berge
          */
-        Calc_P_Debordement(Y: number): number {
+        protected Calc_P_Debordement(Y: number): number {
                 return 2 * Y;
         }
 
@@ -381,13 +381,13 @@ export abstract class acSection extends ComputeNode {
          * Calcul de dérivée du périmètre hydraulique par rapport au tirant d'eau.
          * @return dP
          */
-        abstract Calc_dP(): number;
+        protected abstract Calc_dP(): number;
 
         /**
          * Calcul de dérivée du périmètre hydraulique par rapport au tirant d'eau en cas de débordement
          * @return la dérivée du périmètre hydraulique par rapport au tirant d'eau en cas de débordement
          */
-        Calc_dP_Debordement(): number {
+        protected Calc_dP_Debordement(): number {
                 return 2;
         }
 
@@ -395,7 +395,7 @@ export abstract class acSection extends ComputeNode {
          * Calcul du rayon hydraulique.
          * @return Le rayon hydraulique
          */
-        Calc_R(): number {
+        private Calc_R(): number {
                 let P = this.Calc("P");
                 if (P != 0)
                         return this.Calc("S") / P;
@@ -407,7 +407,7 @@ export abstract class acSection extends ComputeNode {
          * Calcul de dérivée du rayon hydraulique par rapport au tirant d'eau.
          * @return dR
          */
-        Calc_dR(): number {
+        private Calc_dR(): number {
                 let P = this.Calc("P");
                 if (P != 0)
                         return ((this.Calc("B") * P - this.Calc("S") * this.Calc("dP")) / Math.pow(P, 2));
@@ -419,14 +419,14 @@ export abstract class acSection extends ComputeNode {
          * Calcul de la largeur au miroir.
          * @return La largeur au miroir
          */
-        abstract Calc_B(): number;
+        protected abstract Calc_B(): number;
 
 
         /**
            * Calcul de la largeur au miroir en cas de débordement
            * @return La largeur au miroir en cas de débordement
            */
-        Calc_B_Debordement(): number {
+        protected Calc_B_Debordement(): number {
                 return this.prms.LargeurBerge.v;
                 // return this.CalcGeo("B");
         }
@@ -435,13 +435,13 @@ export abstract class acSection extends ComputeNode {
           * Calcul de dérivée de la largeur au miroir par rapport au tirant d'eau.
           * @return dB
           */
-        abstract Calc_dB(): number;
+        protected abstract Calc_dB(): number;
 
         /**
          * Calcul de dérivée de la largeur au miroir par rapport au tirant d'eau en cas de débordement
          * @return la dérivée de la largeur au miroir par rapport au tirant d'eau en cas de débordement
          */
-        Calc_dB_Debordement(): number {
+        protected Calc_dB_Debordement(): number {
                 return 0;
         }
 
@@ -449,7 +449,7 @@ export abstract class acSection extends ComputeNode {
          * Calcul de la perte de charge par la formule de Manning-Strickler.
          * @return La perte de charge
          */
-        Calc_J(): number {
+        private Calc_J(): number {
                 let R = this.Calc("R");
                 if (R != 0)
                         return Math.pow(this.Calc("V") / this.prms.Ks.v, 2) / Math.pow(R, 4 / 3);
@@ -461,7 +461,7 @@ export abstract class acSection extends ComputeNode {
          * Calcul du nombre de Froude.
          * @return Le nombre de Froude
          */
-        Calc_Fr(): number {
+        private Calc_Fr(): number {
                 let S = this.Calc("S");
                 if (S != 0)
                         return this.prms.Q.v / S * Math.sqrt(this.Calc("B") / S / cParamsCanal.G);
@@ -472,7 +472,7 @@ export abstract class acSection extends ComputeNode {
         /**
          * Calcul de dy/dx
          */
-        Calc_dYdX(Y: number): number {
+        private Calc_dYdX(Y: number): number {
                 // L'appel à Calc("J') avec Y en paramètre réinitialise toutes les données dépendantes de la ligne d'eau
                 return - (this.prms.If.v - this.Calc("J", Y) / (1 - Math.pow(this.Calc("Fr", Y), 2)));
         }
@@ -481,7 +481,7 @@ export abstract class acSection extends ComputeNode {
          * Calcul du point suivant de la courbe de remous par la méthode Euler explicite.
          * @return Tirant d'eau
          */
-        Calc_Y_Euler(Y: number): number {
+        private Calc_Y_Euler(Y: number): number {
                 // L'appel à Calc("J') avec Y en paramètre réinitialise toutes les données dépendantes de la ligne d'eau
                 var Y2 = Y + this.prms.Dx.v * this.Calc_dYdX(Y);
                 if (XOR(this.prms.Dx.v > 0, !(Y2 < this.HautCritique)))
@@ -494,7 +494,7 @@ export abstract class acSection extends ComputeNode {
          * Calcul du point suivant de la courbe de remous par la méthode RK4.
          * @return Tirant d'eau
          */
-        Calc_Y_RK4(Y: number): number {
+        private Calc_Y_RK4(Y: number): number {
                 // L'appel à Calc("J') avec Y en paramètre réinitialise toutes les données dépendantes de la ligne d'eau
                 var Dx = this.prms.Dx.v;
                 var k1 = this.Calc_dYdX(Y);
@@ -507,30 +507,12 @@ export abstract class acSection extends ComputeNode {
                 if (XOR(Dx > 0, !(Y + Dx / 6 * (k1 + 2 * (k2 + k3) + k4) < this.HautCritique))) { return undefined; }
                 return Y + Dx / 6 * (k1 + 2 * (k2 + k3) + k4);
         }
-        // /**
-        //  * Calcul du point suivant d'une courbe de remous
-        //  * @return Tirant d'eau
-        //  */
-        // Calc_Y(rY) {
-        // var funcCalcY = 'Calc_Y_' + this.prms.Resolution;
-        // var methods = Object.getOwnPropertyNames(this).filter(function (p) {
-        //         return typeof this[p] === 'function';
-        // });
-        // for (var m of methods) {
-        //         if (funcCalcY == m) {
-        //                 return this[funcCalcY](rY);
-        //         }
-        //         else {
-        //                 return false;
-        //         }
-        // }
-        // }
 
         /**
          * Calcul de la vitesse moyenne.
          * @return Vitesse moyenne
          */
-        Calc_V(): number {
+        private Calc_V(): number {
                 let S = this.Calc("S");
                 if (S != 0)
                         return this.prms.Q.v / S;
@@ -542,7 +524,7 @@ export abstract class acSection extends ComputeNode {
          * Calcul de la charge spécifique.
          * @return Charge spécifique
          */
-        Calc_Hs(): number {
+        private Calc_Hs(): number {
                 return this.prms.Y.v + Math.pow(this.Calc("V"), 2) / (2 * cParamsCanal.G);
         }
 
@@ -550,7 +532,7 @@ export abstract class acSection extends ComputeNode {
          * Calcul de la charge spécifique critique.
          * @return Charge spécifique critique
          */
-        Calc_Hsc(): number {
+        private Calc_Hsc(): number {
                 this.Swap(true); // On mémorise les données hydrauliques en cours
                 // On calcule la charge avec la hauteur critique
                 var Hsc = this.Calc("Hs", this.CalcGeo("Yc"));
@@ -563,7 +545,7 @@ export abstract class acSection extends ComputeNode {
          * Calcul du tirant d'eau critique.
          * @return tirant d'eau critique
          */
-        Calc_Yc(): number {
+        private Calc_Yc(): number {
                 var hautCritique = new cHautCritique(this, this.DBG);
                 this.HautCritique = hautCritique.Newton(this.prms.YB.v);
                 return this.HautCritique;
@@ -573,7 +555,7 @@ export abstract class acSection extends ComputeNode {
          * Calcul du tirant d'eau normal.
          * @return tirant d'eau normal
          */
-        Calc_Yn(): number {
+        private Calc_Yn(): number {
                 this.debug("in calc_Yn");
                 if (this.prms.If.v <= 0)
                         return undefined;
@@ -586,7 +568,7 @@ export abstract class acSection extends ComputeNode {
          * Calcul du tirant d'eau fluvial.
          * @return tirant d'eau fluvial
          */
-        Calc_Yf(): number {
+        private Calc_Yf(): number {
                 if (this.prms.Y.v > this.CalcGeo("Yc"))
                         return this.prms.Y.v;
 
@@ -598,7 +580,7 @@ export abstract class acSection extends ComputeNode {
          * Calcul du tirant d'eau torrentiel.
          * @return tirant d'eau torrentiel
          */
-        Calc_Yt(): number {
+        private Calc_Yt(): number {
                 if (this.prms.Y.v < this.CalcGeo("Yc"))
                         return this.prms.Y.v;
 
@@ -610,7 +592,7 @@ export abstract class acSection extends ComputeNode {
          * Calcul du tirant d'eau conjugué.
          * @return tirant d'eau conjugué
          */
-        Calc_Yco(): number {
+        private Calc_Yco(): number {
                 this.Swap(true);
                 var oHautConj = new cHautConjuguee(this, this.DBG);
                 // Choisir une valeur initiale du bon côté de la courbe
@@ -631,7 +613,7 @@ export abstract class acSection extends ComputeNode {
          * Calcul de la contrainte de cisaillement.
          * @return contrainte de cisaillement
          */
-        Calc_Tau0(): number {
+        private Calc_Tau0(): number {
                 return 1000 * cParamsCanal.G * this.Calc("R") * this.Calc("J");
         }
 
@@ -640,7 +622,7 @@ export abstract class acSection extends ComputeNode {
          * multiplié par la surface hydraulique
          * @return S x Yg
          */
-        Calc_SYg(): number {
+        protected Calc_SYg(): number {
                 // return Math.pow(this.prms.Y.v, 2) * this.prms.LargeurBerge.v / 2;
                 return Math.pow(this.prms.Y.v, 2) * this.CalcGeo("B") / 2;
         }
@@ -650,7 +632,7 @@ export abstract class acSection extends ComputeNode {
          * multiplié par la surface hydraulique
          * @return S x Yg
          */
-        Calc_dSYg(): number {
+        protected Calc_dSYg(): number {
                 // return this.prms.Y.v * this.prms.LargeurBerge.v;
                 return this.prms.Y.v * this.CalcGeo("B");
         }
@@ -659,7 +641,7 @@ export abstract class acSection extends ComputeNode {
          * Calcul de l'impulsion hydraulique.
          * @return Impulsion hydraulique
          */
-        Calc_Imp(): number {
+        private Calc_Imp(): number {
                 return 1000 * (this.prms.Q.v * this.Calc("V") + cParamsCanal.G * this.Calc("SYg"));
         }
 
@@ -667,7 +649,7 @@ export abstract class acSection extends ComputeNode {
          * Calcul de l'angle Alpha entre la surface libre et le fond pour les sections circulaires.
          * @return Angle Alpha pour une section circulaire, 0 sinon.
          */
-        Calc_Alpha(): number {
+        protected Calc_Alpha(): number {
                 return 0;
         }
 
@@ -675,26 +657,7 @@ export abstract class acSection extends ComputeNode {
          * Calcul de la dérivée de l'angle Alpha entre la surface libre et le fond pour les sections circulaires.
          * @return Dérivée de l'angle Alpha pour une section circulaire, 0 sinon.
          */
-        Calc_dAlpha(): number {
+        protected Calc_dAlpha(): number {
                 return 0;
         }
-
-        /**
-         * Fournit les coordonnées des points d'une demi section pour le dessin
-         * @return tableau de couples de coordonnées (x,y)
-         */
-        /*DessinCoordonnees() {
-                var Pas = this.prms.YB / this.nbDessinPoints;
-                var Points = new Array();
-                this.Swap(true); // On mémorise les données hydrauliques en cours
-                for(var Y=0; Y<this.prms.YB+Pas/2; Y=Y+Pas) {
-                        //Y boolean or what ?
-                        Points['x'][] = this.Calc("B',Y)/2;
-                        Points['y'][] = Y;
-                }
-                // On restitue les données initiales
-                this.Swap(false);
-                return Points;
-        }*/
-
 }
-- 
GitLab