From 7722c370d2d60b4b9f708ea4590a471d5f49527c Mon Sep 17 00:00:00 2001 From: "mathias.chouet" <mathias.chouet@irstea.fr> Date: Thu, 28 Feb 2019 10:01:10 +0100 Subject: [PATCH] =?UTF-8?q?Fix=20#71=20gestion=20de=20la=20pr=C3=A9cision?= =?UTF-8?q?=20de=20calcul?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spec/iterator/param_equation.spec.ts | 17 ++++----- .../regime_uniforme_circ.spec.ts | 20 +++++------ .../regime_uniforme_puissance.spec.ts | 33 ++++++++--------- .../regime_uniforme_rect.spec.ts | 28 +++++++-------- .../regime_uniforme_trapeze.spec.ts | 28 +++++++-------- .../remous_rect_euler_pentefaible.spec.ts | 10 +++--- .../remous_rect_euler_penteforte.spec.ts | 25 ++++++------- .../remous_rect_rk4_pentefaible.spec.ts | 25 ++++++------- .../remous/remous_rect_rk4_penteforte.spec.ts | 30 +++++++--------- .../remous_rect_trapezes_pentefaible.spec.ts | 35 ++++++++----------- .../remous_rect_trapezes_penteforte.spec.ts | 30 +++++++--------- spec/remous/remous_trapez.spec.ts | 20 +++++------ .../section_param_circ_fluvial.spec.ts | 4 +-- .../section_param_circ_torrentiel.spec.ts | 2 +- .../section_param_puiss_fluvial.spec.ts | 4 +-- .../section_param_puiss_torrentiel.spec.ts | 2 +- .../section_param_rect_conv_newton.spec.ts | 2 +- .../section_param_rect_fluvial.spec.ts | 4 +-- .../section_param_rect_torrentiel.spec.ts | 2 +- .../section_param_trapez_fluvial.spec.ts | 4 +-- .../section_param_trapez_torrentiel.spec.ts | 2 +- spec/structure/parallel_structure.spec.ts | 7 ++-- spec/structure/structure_kivi.spec.ts | 18 ++++++---- spec/structure/structure_test.ts | 6 +--- spec/value_ref/value_ref.spec.ts | 9 ++--- spec/value_ref/value_ref_circularity.spec.ts | 6 ++-- spec/value_ref/value_ref_section.spec.ts | 12 ++++--- spec/value_ref/value_ref_structure.spec.ts | 16 +++++---- spec/value_ref/value_ref_variable.spec.ts | 10 +++--- .../value_ref_variable_extraresult.spec.ts | 5 ++- .../value_ref_variable_result.spec.ts | 16 +++++---- src/compute-node.ts | 5 +-- src/dichotomie.ts | 1 + src/macrorugo/macrorugo.ts | 5 ++- src/nub.ts | 20 +++++------ src/param/params-equation.ts | 16 +++++++-- src/remous.ts | 20 ++++++----- src/section/newton.ts | 4 +-- src/section/section_circulaire.ts | 4 +-- src/section/section_parametree.ts | 4 +-- src/section/section_puissance.ts | 4 +-- src/section/section_rectang.ts | 5 ++- src/section/section_trapez.ts | 4 +-- src/section/section_type.ts | 28 ++++----------- src/session.ts | 7 +--- src/structure/cloisons.ts | 5 ++- src/structure/factory_structure.ts | 3 +- src/structure/parallel_structure.ts | 16 ++++----- src/structure/structure.ts | 8 ++--- src/structure/structure_params.ts | 2 ++ 50 files changed, 284 insertions(+), 309 deletions(-) diff --git a/spec/iterator/param_equation.spec.ts b/spec/iterator/param_equation.spec.ts index 119fea71..5c3af3cf 100644 --- a/spec/iterator/param_equation.spec.ts +++ b/spec/iterator/param_equation.spec.ts @@ -6,7 +6,7 @@ */ // import { describe, expect, it, xdescribe, xit } from "../mock_jasmine"; -import { ConduiteDistrib, ConduiteDistribParams } from "../../src/cond_distri"; +import { ConduiteDistribParams } from "../../src/cond_distri"; import { IParamDefinitionIterator } from "../../src/param/params-equation"; import { CreateStructure } from "../../src/structure/factory_structure"; import { ParallelStructure } from "../../src/structure/parallel_structure"; @@ -29,15 +29,15 @@ function checkParams(pdi: IParamDefinitionIterator, symbols: string[], values: n describe("iterator : ", () => { it("ConduiteDistribParams", () => { const peq: ConduiteDistribParams = new ConduiteDistribParams(1, 2, 3, 4, 5); - const symbs = ["Q", "D", "J", "Lg", "Nu"]; - const vals = [1, 2, 3, 4, 5]; + const symbs = ["Pr", "Q", "D", "J", "Lg", "Nu"]; + const vals = [0.0001, 1, 2, 3, 4, 5]; checkParams(peq.iterator, symbs, vals); }); it("ParallelStructureParams 1", () => { const peq: ParallelStructureParams = new ParallelStructureParams(1, 2, 3); - const symbs = ["Q", "Z1", "Z2"]; - const vals = [1, 2, 3]; + const symbs = ["Pr", "Q", "Z1", "Z2"]; + const vals = [0.0001, 1, 2, 3]; checkParams(peq.iterator, symbs, vals); }); @@ -45,11 +45,12 @@ describe("iterator : ", () => { const psp: ParallelStructureParams = new ParallelStructureParams(1, 2, 3); const pst = new ParallelStructure(psp); - const st: Structure = CreateStructure(StructureType.SeuilRectangulaire, LoiDebit.WeirCem88d); + const st: Structure = CreateStructure(StructureType.SeuilRectangulaire, LoiDebit.WeirCem88d, pst); pst.addStructure(st); - const symbs = ["Q", "Z1", "Z2", "Cd", "h1", "h2", "L", "Q", "W", "Z1", "Z2", "ZDV"]; - const vals = [1, 2, 3]; + // le 2e "Pr" est celui de la structure + const symbs = ["Pr", "Q", "Z1", "Z2", "Pr", "Cd", "h1", "h2", "L", "Q", "W", "Z1", "Z2", "ZDV"]; + const vals = [0.0001, 1, 2, 3]; checkParams(pst.parameterIterator, symbs, vals); }); }); diff --git a/spec/regime_uniforme/regime_uniforme_circ.spec.ts b/spec/regime_uniforme/regime_uniforme_circ.spec.ts index 8860c79a..45afc604 100644 --- a/spec/regime_uniforme/regime_uniforme_circ.spec.ts +++ b/spec/regime_uniforme/regime_uniforme_circ.spec.ts @@ -15,9 +15,9 @@ describe("Class RegimeUniforme / section circulaire :", () => { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + paramSect.Pr.v = precDist; const sect = new cSnCirc(paramSect); const ru = new RegimeUniforme(sect); @@ -30,9 +30,9 @@ describe("Class RegimeUniforme / section circulaire :", () => { undefined, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + paramSection.Pr.v = precDist; const sect = new cSnCirc(paramSection); const ru = new RegimeUniforme(sect); @@ -45,9 +45,9 @@ describe("Class RegimeUniforme / section circulaire :", () => { 40, // Ks=Strickler 1.2, // Q=Débit undefined, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + paramSection.Pr.v = precDist; const sect = new cSnCirc(paramSection); const ru = new RegimeUniforme(sect); @@ -60,9 +60,9 @@ describe("Class RegimeUniforme / section circulaire :", () => { 40, // Ks=Strickler undefined, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + paramSection.Pr.v = precDist; const sect = new cSnCirc(paramSection); const ru = new RegimeUniforme(sect); @@ -75,9 +75,9 @@ describe("Class RegimeUniforme / section circulaire :", () => { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + paramSection.Pr.v = precDist; const sect = new cSnCirc(paramSection); const ru = new RegimeUniforme(sect); @@ -92,9 +92,9 @@ describe("Class RegimeUniforme / section circulaire :", () => { 13.551, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + paramSect.Pr.v = precDist; const sect = new cSnCirc(paramSect); const ru = new RegimeUniforme(sect); @@ -107,9 +107,9 @@ describe("Class RegimeUniforme / section circulaire :", () => { undefined, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + paramSection.Pr.v = precDist; const sect = new cSnCirc(paramSection); const ru = new RegimeUniforme(sect); @@ -122,9 +122,9 @@ describe("Class RegimeUniforme / section circulaire :", () => { 13.551, // Ks=Strickler 1.2, // Q=Débit undefined, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + paramSection.Pr.v = precDist; const sect = new cSnCirc(paramSection); const ru = new RegimeUniforme(sect); @@ -137,9 +137,9 @@ describe("Class RegimeUniforme / section circulaire :", () => { 13.551, // Ks=Strickler undefined, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + paramSection.Pr.v = precDist; const sect = new cSnCirc(paramSection); const ru = new RegimeUniforme(sect); @@ -152,9 +152,9 @@ describe("Class RegimeUniforme / section circulaire :", () => { 13.551, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + paramSection.Pr.v = precDist; const sect = new cSnCirc(paramSection); const ru = new RegimeUniforme(sect); diff --git a/spec/regime_uniforme/regime_uniforme_puissance.spec.ts b/spec/regime_uniforme/regime_uniforme_puissance.spec.ts index 11c4fa71..07d90ab0 100644 --- a/spec/regime_uniforme/regime_uniforme_puissance.spec.ts +++ b/spec/regime_uniforme/regime_uniforme_puissance.spec.ts @@ -22,9 +22,9 @@ describe("Class RegimeUniforme / section puissance :", () => { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnPuiss(prms); const ru = new RegimeUniforme(sect, false); @@ -38,9 +38,9 @@ describe("Class RegimeUniforme / section puissance :", () => { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnPuiss(prms); const ru = new RegimeUniforme(sect, false); @@ -54,9 +54,9 @@ describe("Class RegimeUniforme / section puissance :", () => { undefined, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnPuiss(prms); const ru = new RegimeUniforme(sect, false); @@ -70,13 +70,14 @@ describe("Class RegimeUniforme / section puissance :", () => { 40, // Ks=Strickler 1.2, // Q=Débit undefined, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; + prms.Pr.v = 0.00001; const sect = new cSnPuiss(prms); const ru = new RegimeUniforme(sect, false); - checkResult(ru.Calc("If", 0.001, 0.00001), 0.00071, 0.00001); + checkResult(ru.Calc("If", 0.001), 0.00071, 0.00001); }); it("Q should be 1.421", () => { @@ -86,9 +87,9 @@ describe("Class RegimeUniforme / section puissance :", () => { 40, // Ks=Strickler undefined, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnPuiss(prms); const ru = new RegimeUniforme(sect, false); @@ -102,9 +103,9 @@ describe("Class RegimeUniforme / section puissance :", () => { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + paramCnl.Pr.v = precDist; const sect = new cSnPuiss(paramCnl); const ru = new RegimeUniforme(sect, false); @@ -120,9 +121,9 @@ describe("Class RegimeUniforme / section puissance :", () => { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnPuiss(prms); const ru = new RegimeUniforme(sect, false); @@ -138,9 +139,9 @@ describe("Class RegimeUniforme / section puissance :", () => { 40, // Ks=Strickler 10, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnPuiss(prms); const ru = new RegimeUniforme(sect, false); @@ -154,9 +155,9 @@ describe("Class RegimeUniforme / section puissance :", () => { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnPuiss(prms); const ru = new RegimeUniforme(sect, false); @@ -170,9 +171,9 @@ describe("Class RegimeUniforme / section puissance :", () => { undefined, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnPuiss(prms); const ru = new RegimeUniforme(sect, false); @@ -186,9 +187,9 @@ describe("Class RegimeUniforme / section puissance :", () => { undefined, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnPuiss(prms); const ru = new RegimeUniforme(sect); ru.dichoStartIntervalMaxSteps = 3; @@ -205,9 +206,9 @@ describe("Class RegimeUniforme / section puissance :", () => { undefined, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnPuiss(prms); const ru = new RegimeUniforme(sect); ru.dichoStartIntervalMaxSteps = 1; @@ -224,9 +225,9 @@ describe("Class RegimeUniforme / section puissance :", () => { 4.366, // Ks=Strickler 1.2, // Q=Débit undefined, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnPuiss(prms); const ru = new RegimeUniforme(sect, false); @@ -240,9 +241,9 @@ describe("Class RegimeUniforme / section puissance :", () => { 40, // Ks=Strickler undefined, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnPuiss(prms); const ru = new RegimeUniforme(sect, false); @@ -256,9 +257,9 @@ describe("Class RegimeUniforme / section puissance :", () => { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + paramCnl.Pr.v = precDist; const sect = new cSnPuiss(paramCnl); const ru = new RegimeUniforme(sect, false); diff --git a/spec/regime_uniforme/regime_uniforme_rect.spec.ts b/spec/regime_uniforme/regime_uniforme_rect.spec.ts index 991165ad..ed5bbcee 100644 --- a/spec/regime_uniforme/regime_uniforme_rect.spec.ts +++ b/spec/regime_uniforme/regime_uniforme_rect.spec.ts @@ -23,9 +23,9 @@ describe("Class RegimeUniforme / section rectangulaire :", () => { 40, // Ks=Strickler 1.568, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms, false); const ru = new RegimeUniforme(sect, false); @@ -38,9 +38,9 @@ describe("Class RegimeUniforme / section rectangulaire :", () => { undefined, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); const ru = new RegimeUniforme(sect); @@ -54,15 +54,15 @@ describe("Class RegimeUniforme / section rectangulaire :", () => { 40, // Ks=Strickler 1.568, // Q=Débit undefined, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); const ru = new RegimeUniforme(sect, false); // nom variable à calculer, valeur de Ks - checkResult(ru.Calc("If", 0.001, precDist), 0.001); + checkResult(ru.Calc("If", 0.001), 0.001); }); it("Q should be 1.568", () => { @@ -71,9 +71,9 @@ describe("Class RegimeUniforme / section rectangulaire :", () => { 40, // Ks=Strickler undefined, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); const ru = new RegimeUniforme(sect); @@ -87,9 +87,9 @@ describe("Class RegimeUniforme / section rectangulaire :", () => { 30, // Ks=Strickler undefined, // Q=Débit 0.0001, // If=pente du fond - precDist, // précision 1.2, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); const ru = new RegimeUniforme(sect); @@ -103,9 +103,9 @@ describe("Class RegimeUniforme / section rectangulaire :", () => { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); const ru = new RegimeUniforme(sect); @@ -125,9 +125,9 @@ describe("Class RegimeUniforme / section rectangulaire :", () => { 40, // Ks=Strickler 5.31, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms, false); const ru = new RegimeUniforme(sect, false); @@ -141,9 +141,9 @@ describe("Class RegimeUniforme / section rectangulaire :", () => { undefined, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); const ru = new RegimeUniforme(sect); @@ -157,15 +157,15 @@ describe("Class RegimeUniforme / section rectangulaire :", () => { 9.04, // Ks=Strickler 1.2, // Q=Débit undefined, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); const ru = new RegimeUniforme(sect, false); // nom variable à calculer, valeur de Ks - checkResult(ru.Calc("If", 0.001, precDist), 0.001); + checkResult(ru.Calc("If", 0.001), 0.001); }); it("Q should be 5.31", () => { @@ -174,9 +174,9 @@ describe("Class RegimeUniforme / section rectangulaire :", () => { 40, // Ks=Strickler undefined, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); const ru = new RegimeUniforme(sect); @@ -190,9 +190,9 @@ describe("Class RegimeUniforme / section rectangulaire :", () => { 30, // Ks=Strickler undefined, // Q=Débit 0.0001, // If=pente du fond - precDist, // précision 1.2, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); const ru = new RegimeUniforme(sect); @@ -206,9 +206,9 @@ describe("Class RegimeUniforme / section rectangulaire :", () => { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 0.1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); const ru = new RegimeUniforme(sect); diff --git a/spec/regime_uniforme/regime_uniforme_trapeze.spec.ts b/spec/regime_uniforme/regime_uniforme_trapeze.spec.ts index 69fe308e..c55be2b8 100644 --- a/spec/regime_uniforme/regime_uniforme_trapeze.spec.ts +++ b/spec/regime_uniforme/regime_uniforme_trapeze.spec.ts @@ -16,15 +16,15 @@ describe("Class RegimeUniforme / section trapèze :", () => { 40, // Ks=Strickler 1.988428, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnTrapez(prms); const ru = new RegimeUniforme(sect, false); - checkResult(ru.Calc("LargeurFond", 0, precDist), 2.5); + checkResult(ru.Calc("LargeurFond", 0), 2.5); }); it("Fruit should be 0.56", () => { @@ -34,9 +34,9 @@ describe("Class RegimeUniforme / section trapèze :", () => { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnTrapez(prms); const ru = new RegimeUniforme(sect); @@ -51,9 +51,9 @@ describe("Class RegimeUniforme / section trapèze :", () => { undefined, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnTrapez(prms); const ru = new RegimeUniforme(sect); @@ -68,9 +68,9 @@ describe("Class RegimeUniforme / section trapèze :", () => { 40, // Ks=Strickler 1.2, // Q=Débit undefined, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnTrapez(prms); const ru = new RegimeUniforme(sect); @@ -85,9 +85,9 @@ describe("Class RegimeUniforme / section trapèze :", () => { 40, // Ks=Strickler 0, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnTrapez(prms); const ru = new RegimeUniforme(sect); @@ -102,9 +102,9 @@ describe("Class RegimeUniforme / section trapèze :", () => { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnTrapez(prms); const ru = new RegimeUniforme(sect); @@ -121,13 +121,13 @@ describe("Class RegimeUniforme / section trapèze :", () => { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnTrapez(prms); const ru = new RegimeUniforme(sect, false); - checkResult(ru.Calc("LargeurFond", 0, precDist), 0.03); + checkResult(ru.Calc("LargeurFond", 0), 0.03); }); it("Fruit should be 0.56", () => { @@ -137,9 +137,9 @@ describe("Class RegimeUniforme / section trapèze :", () => { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnTrapez(prms); const ru = new RegimeUniforme(sect); @@ -154,9 +154,9 @@ describe("Class RegimeUniforme / section trapèze :", () => { undefined, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnTrapez(prms); const ru = new RegimeUniforme(sect); @@ -170,9 +170,9 @@ describe("Class RegimeUniforme / section trapèze :", () => { 40, // Ks=Strickler 8.356, // Q=Débit undefined, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnTrapez(prms); const ru = new RegimeUniforme(sect); @@ -186,9 +186,9 @@ describe("Class RegimeUniforme / section trapèze :", () => { 40, // Ks=Strickler undefined, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnTrapez(prms); const ru = new RegimeUniforme(sect); @@ -203,9 +203,9 @@ describe("Class RegimeUniforme / section trapèze :", () => { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnTrapez(prms); const ru = new RegimeUniforme(sect); diff --git a/spec/remous/remous_rect_euler_pentefaible.spec.ts b/spec/remous/remous_rect_euler_pentefaible.spec.ts index 17ad34b8..4c753e55 100644 --- a/spec/remous/remous_rect_euler_pentefaible.spec.ts +++ b/spec/remous/remous_rect_euler_pentefaible.spec.ts @@ -22,9 +22,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1 // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -32,10 +32,9 @@ describe("Class Remous / section rectangulaire :", () => { 1, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.EulerExplicite ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.EulerExplicite); const res: Result = rem.calculRemous(undefined); @@ -86,9 +85,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1 // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -96,10 +95,9 @@ describe("Class Remous / section rectangulaire :", () => { 0.7, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.EulerExplicite ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.EulerExplicite); const res = rem.calculRemous(undefined); diff --git a/spec/remous/remous_rect_euler_penteforte.spec.ts b/spec/remous/remous_rect_euler_penteforte.spec.ts index a62f5d99..85e906ca 100644 --- a/spec/remous/remous_rect_euler_penteforte.spec.ts +++ b/spec/remous/remous_rect_euler_penteforte.spec.ts @@ -28,9 +28,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.05, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -38,10 +38,9 @@ describe("Class Remous / section rectangulaire :", () => { 6, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.EulerExplicite, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.EulerExplicite); const res = rem.calculRemous(undefined); @@ -112,9 +111,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.05, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -122,10 +121,9 @@ describe("Class Remous / section rectangulaire :", () => { 0.45, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.EulerExplicite, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.EulerExplicite); const res = rem.calculRemous(undefined); @@ -271,9 +269,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.05, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -281,10 +279,9 @@ describe("Class Remous / section rectangulaire :", () => { 1, // Yaval = tirant aval 5.5, // Long= Longueur du bief 0.25, // Dx=Pas d'espace - MethodeResolution.EulerExplicite, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.EulerExplicite); const res = rem.calculRemous(undefined); @@ -382,9 +379,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.05, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -392,10 +389,9 @@ describe("Class Remous / section rectangulaire :", () => { 0.3, // Yaval = tirant aval 30, // Long= Longueur du bief 1, // Dx=Pas d'espace - MethodeResolution.EulerExplicite, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.EulerExplicite); const res = rem.calculRemous(undefined); @@ -448,9 +444,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.05, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -458,10 +454,9 @@ describe("Class Remous / section rectangulaire :", () => { 0.3, // Yaval = tirant aval 10, // Long= Longueur du bief 0.1, // Dx=Pas d'espace - MethodeResolution.EulerExplicite, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.EulerExplicite); const res = rem.calculRemous(undefined); diff --git a/spec/remous/remous_rect_rk4_pentefaible.spec.ts b/spec/remous/remous_rect_rk4_pentefaible.spec.ts index ad626808..d3fa739f 100644 --- a/spec/remous/remous_rect_rk4_pentefaible.spec.ts +++ b/spec/remous/remous_rect_rk4_pentefaible.spec.ts @@ -20,9 +20,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -30,10 +30,9 @@ describe("Class Remous / section rectangulaire :", () => { 0.41, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.RungeKutta4, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.RungeKutta4); const res = rem.calculRemous(undefined); @@ -92,9 +91,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -102,10 +101,9 @@ describe("Class Remous / section rectangulaire :", () => { 0.42, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.RungeKutta4, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.RungeKutta4); const res = rem.calculRemous(undefined); @@ -183,9 +181,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -193,10 +191,9 @@ describe("Class Remous / section rectangulaire :", () => { 0.42, // Yaval = tirant aval 5, // Long= Longueur du bief 0.25, // Dx=Pas d'espace - MethodeResolution.RungeKutta4, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.RungeKutta4); const res = rem.calculRemous(undefined); @@ -267,9 +264,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -277,10 +274,9 @@ describe("Class Remous / section rectangulaire :", () => { 1, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.RungeKutta4, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.RungeKutta4); const res = rem.calculRemous(undefined); @@ -345,9 +341,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -355,10 +351,9 @@ describe("Class Remous / section rectangulaire :", () => { 0.7, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.RungeKutta4, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.RungeKutta4); const res = rem.calculRemous(undefined); diff --git a/spec/remous/remous_rect_rk4_penteforte.spec.ts b/spec/remous/remous_rect_rk4_penteforte.spec.ts index 48203903..7eaa63a8 100644 --- a/spec/remous/remous_rect_rk4_penteforte.spec.ts +++ b/spec/remous/remous_rect_rk4_penteforte.spec.ts @@ -30,9 +30,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.05, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -40,10 +40,9 @@ describe("Class Remous / section rectangulaire :", () => { 6, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.RungeKutta4, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.RungeKutta4); const res = rem.calculRemous(undefined); @@ -115,9 +114,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.05, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -125,10 +124,9 @@ describe("Class Remous / section rectangulaire :", () => { 0.45, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.RungeKutta4, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.RungeKutta4); const res = rem.calculRemous(undefined); @@ -206,9 +204,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.05, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -216,10 +214,9 @@ describe("Class Remous / section rectangulaire :", () => { 1, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.RungeKutta4, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.RungeKutta4); const res = rem.calculRemous(undefined); @@ -296,9 +293,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.05, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -306,10 +303,9 @@ describe("Class Remous / section rectangulaire :", () => { 1, // Yaval = tirant aval 5.5, // Long= Longueur du bief 0.25, // Dx=Pas d'espace - MethodeResolution.RungeKutta4, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.RungeKutta4); const res = rem.calculRemous(undefined); @@ -402,9 +398,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.05, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -412,10 +408,9 @@ describe("Class Remous / section rectangulaire :", () => { 0.3, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.RungeKutta4, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.RungeKutta4); const res = rem.calculRemous(undefined); @@ -481,9 +476,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.05, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -491,10 +486,9 @@ describe("Class Remous / section rectangulaire :", () => { 0.3, // Yaval = tirant aval 10, // Long= Longueur du bief 0.1, // Dx=Pas d'espace - MethodeResolution.RungeKutta4, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.RungeKutta4); const res = rem.calculRemous(undefined); diff --git a/spec/remous/remous_rect_trapezes_pentefaible.spec.ts b/spec/remous/remous_rect_trapezes_pentefaible.spec.ts index fa316934..0c8332d2 100644 --- a/spec/remous/remous_rect_trapezes_pentefaible.spec.ts +++ b/spec/remous/remous_rect_trapezes_pentefaible.spec.ts @@ -28,9 +28,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -38,10 +38,9 @@ describe("Class Remous / section rectangulaire :", () => { 0.403, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.Trapezes, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.Trapezes); const res = rem.calculRemous(undefined); @@ -117,9 +116,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -127,10 +126,9 @@ describe("Class Remous / section rectangulaire :", () => { 0.403, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.Trapezes, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.Trapezes); const res = rem.calculRemous(undefined); @@ -208,9 +206,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -218,10 +216,9 @@ describe("Class Remous / section rectangulaire :", () => { 0.403, // Yaval = tirant aval 5, // Long= Longueur du bief 0.25, // Dx=Pas d'espace - MethodeResolution.Trapezes, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.Trapezes); const res = rem.calculRemous(undefined); @@ -309,9 +306,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.001, // If=pente du fond - 0.0001, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -319,10 +316,9 @@ describe("Class Remous / section rectangulaire :", () => { 0.403, // Yaval = tirant aval 5, // Long= Longueur du bief 0.05, // Dx=Pas d'espace - MethodeResolution.Trapezes, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.Trapezes); const res = rem.calculRemous(undefined); @@ -494,9 +490,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -504,10 +500,9 @@ describe("Class Remous / section rectangulaire :", () => { 1, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.Trapezes, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.Trapezes); const res = rem.calculRemous(undefined); @@ -572,9 +567,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -582,10 +577,9 @@ describe("Class Remous / section rectangulaire :", () => { 0.7, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.Trapezes, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.Trapezes); const res = rem.calculRemous(undefined); @@ -651,9 +645,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -661,10 +655,9 @@ describe("Class Remous / section rectangulaire :", () => { 0.4, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.Trapezes, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.Trapezes); const res = rem.calculRemous("Hs"); diff --git a/spec/remous/remous_rect_trapezes_penteforte.spec.ts b/spec/remous/remous_rect_trapezes_penteforte.spec.ts index c94a7f2a..86f60091 100644 --- a/spec/remous/remous_rect_trapezes_penteforte.spec.ts +++ b/spec/remous/remous_rect_trapezes_penteforte.spec.ts @@ -30,9 +30,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.05, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -40,10 +40,9 @@ describe("Class Remous / section rectangulaire :", () => { 6, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.Trapezes, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.Trapezes); const res = rem.calculRemous(undefined); @@ -115,9 +114,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.05, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -125,10 +124,9 @@ describe("Class Remous / section rectangulaire :", () => { 0.45, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.Trapezes, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.Trapezes); const res = rem.calculRemous(undefined); @@ -208,9 +206,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.05, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -218,10 +216,9 @@ describe("Class Remous / section rectangulaire :", () => { 1, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.Trapezes, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.Trapezes); const res = rem.calculRemous(undefined); @@ -297,9 +294,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.05, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -307,10 +304,9 @@ describe("Class Remous / section rectangulaire :", () => { 1, // Yaval = tirant aval 5.5, // Long= Longueur du bief 0.25, // Dx=Pas d'espace - MethodeResolution.Trapezes, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.Trapezes); const res = rem.calculRemous(undefined); @@ -403,9 +399,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.05, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -413,10 +409,9 @@ describe("Class Remous / section rectangulaire :", () => { 0.3, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.Trapezes, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.Trapezes); const res = rem.calculRemous(undefined); @@ -465,9 +460,9 @@ describe("Class Remous / section rectangulaire :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.05, // If=pente du fond - precDist, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnRectang(prms); @@ -475,10 +470,9 @@ describe("Class Remous / section rectangulaire :", () => { 0.3, // Yaval = tirant aval 10, // Long= Longueur du bief 0.1, // Dx=Pas d'espace - MethodeResolution.Trapezes, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.Trapezes); const res = rem.calculRemous(undefined); diff --git a/spec/remous/remous_trapez.spec.ts b/spec/remous/remous_trapez.spec.ts index 4c8b8cfd..e1901c0d 100644 --- a/spec/remous/remous_trapez.spec.ts +++ b/spec/remous/remous_trapez.spec.ts @@ -27,9 +27,9 @@ describe("Class Remous / section trapèze :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnTrapez(prms); @@ -37,10 +37,9 @@ describe("Class Remous / section trapèze :", () => { 0.803, // Yaval = tirant aval 5, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.Trapezes, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.Trapezes); const res = rem.calculRemous(undefined); @@ -57,9 +56,9 @@ describe("Class Remous / section trapèze :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + prms.Pr.v = precDist; const sect = new cSnTrapez(prms); @@ -67,10 +66,9 @@ describe("Class Remous / section trapèze :", () => { 0.4, // Yaval = tirant aval 10, // Long= Longueur du bief 1, // Dx=Pas d'espace - MethodeResolution.Trapezes, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.Trapezes); const res = rem.calculRemous(undefined); @@ -149,9 +147,9 @@ describe("Class Remous / section trapèze :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.001, // If=pente du fond - 0.001, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = 0.001; const sect = new cSnTrapez(prms); @@ -159,10 +157,9 @@ describe("Class Remous / section trapèze :", () => { 0.4, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.Trapezes, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.Trapezes); const res = rem.calculRemous("Hs"); @@ -203,9 +200,9 @@ describe("Class Remous / section trapèze :", () => { 40, // Ks=Strickler 2, // Q=Débit 0.05, // If=pente du fond - 0.001, // précision 1, // YB=hauteur de berge ); + prms.Pr.v = 0.001; const sect = new cSnTrapez(prms); @@ -213,10 +210,9 @@ describe("Class Remous / section trapèze :", () => { 1, // Yaval = tirant aval 8, // Long= Longueur du bief 0.1, // Dx=Pas d'espace - MethodeResolution.Trapezes, ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.Trapezes); const res = rem.calculRemous("Hs"); diff --git a/spec/section_param/section_param_circ_fluvial.spec.ts b/spec/section_param/section_param_circ_fluvial.spec.ts index b3011786..49d9e110 100644 --- a/spec/section_param/section_param_circ_fluvial.spec.ts +++ b/spec/section_param/section_param_circ_fluvial.spec.ts @@ -11,9 +11,9 @@ function createSection(prec: number): cSnCirc { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - prec, // précision 1, // YB= hauteur de berge ); + paramSection.Pr.v = prec; return new cSnCirc(paramSection); } @@ -24,9 +24,9 @@ function createSectionDebordement(prec: number): cSnCirc { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - prec, // précision 1, // YB= hauteur de berge ); + paramSection.Pr.v = prec; return new cSnCirc(paramSection); } diff --git a/spec/section_param/section_param_circ_torrentiel.spec.ts b/spec/section_param/section_param_circ_torrentiel.spec.ts index 35a11220..e867379a 100644 --- a/spec/section_param/section_param_circ_torrentiel.spec.ts +++ b/spec/section_param/section_param_circ_torrentiel.spec.ts @@ -11,9 +11,9 @@ function createSection(prec: number): cSnCirc { 40, // Ks=Strickler 10, // Q=Débit 0.001, // If=pente du fond - prec, // précision 1, // YB= hauteur de berge ); + paramSection.Pr.v = prec; return new cSnCirc(paramSection); } diff --git a/spec/section_param/section_param_puiss_fluvial.spec.ts b/spec/section_param/section_param_puiss_fluvial.spec.ts index 221092f4..8d2b9313 100644 --- a/spec/section_param/section_param_puiss_fluvial.spec.ts +++ b/spec/section_param/section_param_puiss_fluvial.spec.ts @@ -12,9 +12,9 @@ function createSection(prec: number): cSnPuiss { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - prec, // précision 1, // YB= hauteur de berge ); + paramSection.Pr.v = prec; return new cSnPuiss(paramSection); } @@ -26,9 +26,9 @@ function createSectionDebordement(prec: number): cSnPuiss { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - prec, // précision 1, // YB= hauteur de berge ); + paramSection.Pr.v = prec; return new cSnPuiss(paramSection); } diff --git a/spec/section_param/section_param_puiss_torrentiel.spec.ts b/spec/section_param/section_param_puiss_torrentiel.spec.ts index f49ce1bb..58b763be 100644 --- a/spec/section_param/section_param_puiss_torrentiel.spec.ts +++ b/spec/section_param/section_param_puiss_torrentiel.spec.ts @@ -12,9 +12,9 @@ function createSection(prec: number): cSnPuiss { 40, // Ks=Strickler 10, // Q=Débit 0.001, // If=pente du fond - prec, // précision 1, // YB= hauteur de berge ); + paramSection.Pr.v = prec; return new cSnPuiss(paramSection); } diff --git a/spec/section_param/section_param_rect_conv_newton.spec.ts b/spec/section_param/section_param_rect_conv_newton.spec.ts index 0b60edf0..05902269 100644 --- a/spec/section_param/section_param_rect_conv_newton.spec.ts +++ b/spec/section_param/section_param_rect_conv_newton.spec.ts @@ -13,9 +13,9 @@ describe("Section paramétrée rectangulaire : ", () => { 40, // Ks=Strickler 10, // Q=Débit 0.001, // If=pente du fond - 1e-10, // précision 1, // YB= hauteur de berge ); + paramSection.Pr.v = 1e-10; // précision sect = new cSnRectang(paramSection); sect.newtonMaxIter = 5; diff --git a/spec/section_param/section_param_rect_fluvial.spec.ts b/spec/section_param/section_param_rect_fluvial.spec.ts index d3f318e0..0a49c235 100644 --- a/spec/section_param/section_param_rect_fluvial.spec.ts +++ b/spec/section_param/section_param_rect_fluvial.spec.ts @@ -11,9 +11,9 @@ function createSection(prec: number): cSnRectang { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - prec, // précision 1, // YB= hauteur de berge ); + paramSection.Pr.v = prec; return new cSnRectang(paramSection); } @@ -24,9 +24,9 @@ function createSectionDebordement(prec: number): cSnRectang { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - prec, // précision 1, // YB= hauteur de berge ); + paramSection.Pr.v = prec; return new cSnRectang(paramSection); } diff --git a/spec/section_param/section_param_rect_torrentiel.spec.ts b/spec/section_param/section_param_rect_torrentiel.spec.ts index caed1035..ee056c98 100644 --- a/spec/section_param/section_param_rect_torrentiel.spec.ts +++ b/spec/section_param/section_param_rect_torrentiel.spec.ts @@ -12,9 +12,9 @@ describe("Section paramétrée rectangulaire : ", () => { 40, // Ks=Strickler 10, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + paramSection.Pr.v = precDist; sect = new cSnRectang(paramSection); }); diff --git a/spec/section_param/section_param_trapez_fluvial.spec.ts b/spec/section_param/section_param_trapez_fluvial.spec.ts index 8f18c2b0..b5366847 100644 --- a/spec/section_param/section_param_trapez_fluvial.spec.ts +++ b/spec/section_param/section_param_trapez_fluvial.spec.ts @@ -12,9 +12,9 @@ function createSection(prec: number): cSnTrapez { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + paramSection.Pr.v = precDist; return new cSnTrapez(paramSection); } @@ -26,9 +26,9 @@ function createSectionDebordement(prec: number): cSnTrapez { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + paramSection.Pr.v = precDist; return new cSnTrapez(paramSection); } diff --git a/spec/section_param/section_param_trapez_torrentiel.spec.ts b/spec/section_param/section_param_trapez_torrentiel.spec.ts index a0e8c4ce..63cd7a18 100644 --- a/spec/section_param/section_param_trapez_torrentiel.spec.ts +++ b/spec/section_param/section_param_trapez_torrentiel.spec.ts @@ -13,9 +13,9 @@ describe("Section paramétrée trapèze :", () => { 40, // Ks=Strickler 10, // Q=Débit 0.001, // If=pente du fond - precDist, // précision 1, // YB= hauteur de berge ); + paramCnl.Pr.v = precDist; sect = new cSnTrapez(paramCnl); }); diff --git a/spec/structure/parallel_structure.spec.ts b/spec/structure/parallel_structure.spec.ts index 6ba2352a..e13a7b16 100644 --- a/spec/structure/parallel_structure.spec.ts +++ b/spec/structure/parallel_structure.spec.ts @@ -42,8 +42,9 @@ describe("Class ParallelStructure: ", () => { itParallelStructure("0.ZDV", 0, 15); itParallelStructure("1.ZDV", 0, 15); it("shoud return an error Q too high", () => { - pstruct.prms.Q.v = 15; - expect(pstruct.Calc("1.ZDV").code).toBe(MessageCode.ERROR_STRUCTURE_Q_TROP_ELEVE); + pstruct.prms.Q.v = 14; + const res: Result = pstruct.Calc("1.ZDV"); + expect(res.code).toBe(MessageCode.ERROR_STRUCTURE_Q_TROP_ELEVE); }); }); }); @@ -94,7 +95,7 @@ describe("Class ParallelStructure: ", () => { const iStTypes: number[] = []; for (const s of EnumEx.getValues(StructureType)) { for (const la of loiAdmissiblesOuvrages[StructureType[s]]) { - ps2.addStructure(CreateStructure(s, la, undefined, false)); + ps2.addStructure(CreateStructure(s, la, ps2, false)); iLoiDebits.push(la); iStTypes.push(s); } diff --git a/spec/structure/structure_kivi.spec.ts b/spec/structure/structure_kivi.spec.ts index a4fb7129..141245bb 100644 --- a/spec/structure/structure_kivi.spec.ts +++ b/spec/structure/structure_kivi.spec.ts @@ -7,14 +7,20 @@ // import { describe, expect, it, xdescribe, xit } from "../mock_jasmine"; import { MessageCode, StructureFlowMode, StructureFlowRegime } from "../../src"; -import { CreateStructure } from "../../src/structure/factory_structure"; -import { StructureKivi } from "../../src/structure/structure_kivi"; -import { LoiDebit, StructureType } from "../../src/structure/structure_props"; +import { StructureKivi, StructureKiviParams } from "../../src/structure/structure_kivi"; import { testStructure } from "./functions"; -const structTest: StructureKivi = CreateStructure( - StructureType.SeuilRectangulaire, LoiDebit.KIVI -) as StructureKivi; +const kiviParams: StructureKiviParams = new StructureKiviParams( + 8.516, // Q + 101.5, // ZDV + 103, // Z1 + 102, // Z2 + 2, // L + 0.4, // alpha + 0.001, // béta + 100 // ZRAM : cote Radier Amont +); +const structTest: StructureKivi = new StructureKivi(kiviParams, false); structTest.prms.ZDV.v = 101; describe("Class StructureKivi: ", () => { diff --git a/spec/structure/structure_test.ts b/spec/structure/structure_test.ts index 319e20d7..33f2462c 100644 --- a/spec/structure/structure_test.ts +++ b/spec/structure/structure_test.ts @@ -6,12 +6,8 @@ */ // import { describe, expect, it, xdescribe, xit } from "../mock_jasmine"; -import { MessageCode } from "../../src"; -import { ParamCalculability } from "../../src/param/param-definition"; -import { Structure, StructureFlowMode, StructureFlowRegime, StructureParams } from "../../src/structure/structure"; -import { LoiDebit, StructureType } from "../../src/structure/structure_props"; +import { Structure, StructureParams } from "../../src/structure/structure"; import { Result } from "../../src/util/result"; -import { checkResult } from "../test_func"; class StructureTest extends Structure { diff --git a/spec/value_ref/value_ref.spec.ts b/spec/value_ref/value_ref.spec.ts index 83ba9304..342ed80b 100644 --- a/spec/value_ref/value_ref.spec.ts +++ b/spec/value_ref/value_ref.spec.ts @@ -23,11 +23,11 @@ let prm2: NubTestParams; function createEnv() { // Nub maître (dont on référence la valeur du paramètre A) nub1 = new NubTest(new NubTestParams()); - prm1 = nub1.parameters as NubTestParams; + prm1 = nub1.prms as NubTestParams; // Nub esclave (qui utilise la valeur de A du Nub maître) nub2 = new NubTest(new NubTestParams()); - prm2 = nub2.parameters as NubTestParams; + prm2 = nub2.prms as NubTestParams; } describe("référence d'un paramètre à un autre : ", () => { @@ -86,7 +86,7 @@ describe("référence d'un paramètre à un autre : ", () => { expect(prm2.C.v).toEqual(3); }); - it("test 4", () => { + xit("test 4", () => { // cas de figure : // nub2.A est lié à nub1.A (valeur fixe) // calcul de tous les paramètres @@ -220,8 +220,9 @@ describe("référence d'un paramètre à un autre : ", () => { // valeur esclave bidon, doit être masquée par la valeur maître (cad prm1.A, normalement [2,3,4,5,6]) prm2.A.v = 0; prm2.A.defineReference(nub1, "A"); + prm2.Pr.v = 0.001; - const r: Result = nub2.CalcSerie(0.001, 0.1, "C"); + const r: Result = nub2.CalcSerie(0.1, "C"); let n = 0; for (const re of r.resultElements) { diff --git a/spec/value_ref/value_ref_circularity.spec.ts b/spec/value_ref/value_ref_circularity.spec.ts index da2f3da9..14b2bfc4 100644 --- a/spec/value_ref/value_ref_circularity.spec.ts +++ b/spec/value_ref/value_ref_circularity.spec.ts @@ -21,13 +21,13 @@ let prm3: NubTestParams; */ function createEnv() { nub1 = new NubTest(new NubTestParams()); - prm1 = nub1.parameters as NubTestParams; + prm1 = nub1.prms as NubTestParams; nub2 = new NubTest(new NubTestParams()); - prm2 = nub2.parameters as NubTestParams; + prm2 = nub2.prms as NubTestParams; nub3 = new NubTest(new NubTestParams()); - prm3 = nub3.parameters as NubTestParams; + prm3 = nub3.prms as NubTestParams; } describe("référence d'un paramètre à un autre : ", () => { diff --git a/spec/value_ref/value_ref_section.spec.ts b/spec/value_ref/value_ref_section.spec.ts index 2cbe9f44..f133415f 100644 --- a/spec/value_ref/value_ref_section.spec.ts +++ b/spec/value_ref/value_ref_section.spec.ts @@ -21,12 +21,16 @@ let prm2: ParamsSectionTrapez; */ function createEnv() { // Nub maître - nub1 = new SectionParametree(new cSnTrapez(new ParamsSectionTrapez(1, 0.5, 1, 0.01, 1, 0.01, 0.01, 2))); - prm1 = nub1.parameters as ParamsSectionTrapez; + const prmsM = new ParamsSectionTrapez(1, 0.5, 1, 0.01, 1, 0.01, 2); + prmsM.Pr.v = 0.01; + nub1 = new SectionParametree(new cSnTrapez(prmsM)); + prm1 = nub1.prms as ParamsSectionTrapez; // Nub esclave - nub2 = new SectionParametree(new cSnTrapez(new ParamsSectionTrapez(1, 0.5, 1, 0.01, 1, 0.01, 0.01, 2))); - prm2 = nub2.parameters as ParamsSectionTrapez; + const prmsS = new ParamsSectionTrapez(1, 0.5, 1, 0.01, 1, 0.01, 2); + prmsS.Pr.v = 0.01; + nub2 = new SectionParametree(new cSnTrapez(prmsS)); + prm2 = nub2.prms as ParamsSectionTrapez; } describe("référence d'un paramètre à un autre : ", () => { diff --git a/spec/value_ref/value_ref_structure.spec.ts b/spec/value_ref/value_ref_structure.spec.ts index b658785e..1e54a32b 100644 --- a/spec/value_ref/value_ref_structure.spec.ts +++ b/spec/value_ref/value_ref_structure.spec.ts @@ -30,12 +30,12 @@ function createEnv() { // Nub esclave 1 nub3 = new StructureWeirCem88d(new RectangularStructureParams(0.5, 0, 1, 0.5, 1, 0.5)); - prm3 = nub3.parameters as RectangularStructureParams; + prm3 = nub3.prms as RectangularStructureParams; nub1.addStructure(nub3); // Nub esclave 2 nub4 = new StructureCunge80(new RectangularStructureParams(0.5, 0, 1, 0.5, 1, 0.5)); - prm4 = nub4.parameters as RectangularStructureParams; + prm4 = nub4.prms as RectangularStructureParams; nub2.addStructure(nub4); } @@ -50,8 +50,10 @@ describe("référence d'un paramètre à un autre : ", () => { prm4.Q.defineReference(nub1, "ouvrage[0].Q_ENUM_StructureFlowMode"); - nub1.CalcSerie(0.001, 0.1, "Q"); - nub2.CalcSerie(0.001, 0.1, "Q"); + nub1.prms.Pr.v = 0.001; + nub1.CalcSerie(0.1, "Q"); + nub2.prms.Pr.v = 0.001; + nub2.CalcSerie(0.1, "Q"); /* nub1.result.resultElements[0].extraResults = { "ouvrage[0].Q" : 6.264183905346331 @@ -77,8 +79,10 @@ describe("référence d'un paramètre à un autre : ", () => { prm4.Q.defineReference(nub1, "ouvrage[0].Q"); - nub1.CalcSerie(0.001, 0.1, "Q"); - nub2.CalcSerie(0.001, 0.1, "Q"); + nub1.prms.Pr.v = 0.001; + nub1.CalcSerie(0.1, "Q"); + nub2.prms.Pr.v = 0.001; + nub2.CalcSerie(0.1, "Q"); /* nub1.result.resultElements[0].extraResults = { "ouvrage[0].Q" : 6.264183905346331 diff --git a/spec/value_ref/value_ref_variable.spec.ts b/spec/value_ref/value_ref_variable.spec.ts index 21fc66aa..1f4984ad 100644 --- a/spec/value_ref/value_ref_variable.spec.ts +++ b/spec/value_ref/value_ref_variable.spec.ts @@ -22,11 +22,11 @@ let prm2: ConduiteDistribParams; function createEnv() { // Nub maître nub1 = new ConduiteDistrib(new ConduiteDistribParams(3, 1.2, 0.6, 100, 0.000001)); - prm1 = nub1.parameters as ConduiteDistribParams; + prm1 = nub1.prms as ConduiteDistribParams; // Nub esclave nub2 = new ConduiteDistrib(new ConduiteDistribParams(3, 1.2, 0.6, 100, 0.000001)); - prm2 = nub2.parameters as ConduiteDistribParams; + prm2 = nub2.prms as ConduiteDistribParams; } describe("Référence d'un paramètre à un paramètre varié : ", () => { @@ -41,10 +41,12 @@ describe("Référence d'un paramètre à un paramètre varié : ", () => { prm1.Q.paramValues.min = 1.5; prm1.Q.paramValues.max = 6; prm1.Q.paramValues.step = 0.5; - const res1: Result = nub1.CalcSerie(0.001, 0.6, "J"); + prm1.Pr.v = 0.001; + const res1: Result = nub1.CalcSerie(0.6, "J"); prm2.Q.defineReference(nub1, "Q"); - const res2 = nub2.CalcSerie(0.001, 0.6, "J"); + prm2.Pr.v = 0.001; + const res2 = nub2.CalcSerie(0.6, "J"); for (let i = 0; i < res1.resultElements.length; i++) { expect(res1.resultElements[i].vCalc).toEqual(res2.resultElements[i].vCalc); diff --git a/spec/value_ref/value_ref_variable_extraresult.spec.ts b/spec/value_ref/value_ref_variable_extraresult.spec.ts index ad05df78..41813718 100644 --- a/spec/value_ref/value_ref_variable_extraresult.spec.ts +++ b/spec/value_ref/value_ref_variable_extraresult.spec.ts @@ -21,9 +21,9 @@ describe("référence d'un paramètre à un résultat complémentaire multivalu 40, // Ks=Strickler 2, // Q=Débit 0.001, // If=pente du fond - 0.001, // précision 1 // YB=hauteur de berge ); + prms.Pr.v = 0.001; const sect = new cSnRectang(prms); @@ -31,10 +31,9 @@ describe("référence d'un paramètre à un résultat complémentaire multivalu 1, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.EulerExplicite ); - const rem = new CourbeRemous(prem); + const rem = new CourbeRemous(prem, MethodeResolution.EulerExplicite); const res: Result = rem.calculRemous(undefined); diff --git a/spec/value_ref/value_ref_variable_result.spec.ts b/spec/value_ref/value_ref_variable_result.spec.ts index 7b74fa2a..c47adbfb 100644 --- a/spec/value_ref/value_ref_variable_result.spec.ts +++ b/spec/value_ref/value_ref_variable_result.spec.ts @@ -22,11 +22,11 @@ let prm2: ConduiteDistribParams; function createEnv() { // Nub maître nub1 = new ConduiteDistrib(new ConduiteDistribParams(3, 1.2, 0.6, 100, 0.000001)); - prm1 = nub1.parameters as ConduiteDistribParams; + prm1 = nub1.prms as ConduiteDistribParams; // Nub esclave nub2 = new ConduiteDistrib(new ConduiteDistribParams(3, 1.2, 0.6, 100, 0.000001)); - prm2 = nub2.parameters as ConduiteDistribParams; + prm2 = nub2.prms as ConduiteDistribParams; } describe("référence d'un paramètre à un résultat : ", () => { @@ -39,12 +39,14 @@ describe("référence d'un paramètre à un résultat : ", () => { prm1.Q.v = 2; prm1.J.paramValues.valueMode = ParamValueMode.CALCUL; - const res1: Result = nub1.CalcSerie(0.001, 0.6, "J"); + nub1.prms.Pr.v = 0.001; + const res1: Result = nub1.CalcSerie(0.6, "J"); expect(res1.resultElements.length).toEqual(1); // nombre de valeurs du Result prm2.J.defineReference(nub1, "J."); - const res2 = nub2.CalcSerie(0.001, 0.6, "Q"); + nub2.prms.Pr.v = 0.001; + const res2 = nub2.CalcSerie(0.6, "Q"); expect(res2.resultElements.length).toEqual(1); // nombre de valeurs du Result expect(res2.vCalc).toBeCloseTo(prm1.Q.v, 3); @@ -62,10 +64,12 @@ describe("référence d'un paramètre à un résultat : ", () => { prm1.Q.paramValues.max = 6; prm1.Q.paramValues.step = 0.5; prm1.J.paramValues.valueMode = ParamValueMode.CALCUL; - const res1: Result = nub1.CalcSerie(0.001, 0.6, "J"); + prm1.Pr.v = 0.001; + const res1: Result = nub1.CalcSerie(0.6, "J"); prm2.J.defineReference(nub1, "J."); - const res2 = nub2.CalcSerie(0.001, 0.6, "Q"); + prm2.Pr.v = 0.001; + const res2 = nub2.CalcSerie(0.6, "Q"); expect(res1.resultElements.length).toEqual(10); // nombre de valeurs du Result expect(res2.resultElements.length).toEqual(10); diff --git a/src/compute-node.ts b/src/compute-node.ts index 7a1d7e7c..ee8892db 100644 --- a/src/compute-node.ts +++ b/src/compute-node.ts @@ -1,6 +1,6 @@ import { Debug, IDebug } from "./base"; import { JalhydObject } from "./jalhyd_object"; -import { ParamDefinition } from "./param/param-definition"; +import { ParamCalculability, ParamDefinition } from "./param/param-definition"; import { IParamDefinitionIterator, ParamsEquation } from "./param/params-equation"; /** @@ -52,11 +52,12 @@ export abstract class ComputeNode extends JalhydObject implements IDebug { if (!this._prms.calculabilityDefined) { this._prms.resetParametersCalculability(); } + this._prms.Pr.calculability = ParamCalculability.FREE; this.setParametersCalculability(); this._prms.DefineCalculability(); } - public get parameters(): ParamsEquation { + public get prms(): ParamsEquation { return this._prms; } diff --git a/src/dichotomie.ts b/src/dichotomie.ts index f4d7b056..00ba788d 100644 --- a/src/dichotomie.ts +++ b/src/dichotomie.ts @@ -275,6 +275,7 @@ export class Dichotomie extends Debug { const prmDom: ParamDomain = this._paramX.getDomain(); const step = 0.001; + // const step = this.nub.prms.Pr.v; const min: number = prmDom.minValue; const max: number = prmDom.maxValue; diff --git a/src/macrorugo/macrorugo.ts b/src/macrorugo/macrorugo.ts index dcb60e99..60625102 100644 --- a/src/macrorugo/macrorugo.ts +++ b/src/macrorugo/macrorugo.ts @@ -56,12 +56,11 @@ export class MacroRugo extends Nub { * Calcul du débit total, de la cote amont ou aval ou d'un paramètre d'une structure * @param sVarCalc Nom du paramètre à calculer * @param rInit Valeur initiale - * @param rPrec Précision attendue */ - public Calc(sVarCalc: string, rInit?: number, rPrec: number = 0.001): Result { + public Calc(sVarCalc: string, rInit?: number): Result { /** @todo Voir pour déclarer le paramètre en calcul dans nub */ this.getParameter(sVarCalc).valueMode = ParamValueMode.CALCUL; - const r: Result = super.Calc(sVarCalc, rInit, rPrec); + const r: Result = super.Calc(sVarCalc, rInit); // Ajout des résultats complémentaires // Cote de fond aval r.extraResults.ZF2 = this.prms.ZF1.v - this.prms.If.v * this.prms.L.v; diff --git a/src/nub.ts b/src/nub.ts index e212f1d1..c4fcf93b 100644 --- a/src/nub.ts +++ b/src/nub.ts @@ -20,7 +20,7 @@ export abstract class Nub extends ComputeNode implements IReferencedNub { /** résultat de Calc()/CalcSerie() */ protected _result: Result; - private _props: Props; + private _props: Props = new Props(); public get result(): Result { return this._result; @@ -49,9 +49,8 @@ export abstract class Nub extends ComputeNode implements IReferencedNub { * Calcul d'une équation quelle que soit l'inconnue à calculer * @param sVarCalc nom de la variable à calculer * @param rInit valeur initiale de la variable à calculer dans le cas de la dichotomie - * @param rPrec précision de calcul */ - public Calc(sVarCalc: string, rInit?: number, rPrec: number = 0.001): Result { + public Calc(sVarCalc: string, rInit?: number): Result { const computedVar = this.getParameter(sVarCalc); if (rInit === undefined) { @@ -63,7 +62,7 @@ export abstract class Nub extends ComputeNode implements IReferencedNub { return this._result; } - const resSolve: Result = this.Solve(sVarCalc, rInit, rPrec); + const resSolve: Result = this.Solve(sVarCalc, rInit); if (!resSolve.ok) { this._result = resSolve; this._result.name = sVarCalc; @@ -80,11 +79,10 @@ export abstract class Nub extends ComputeNode implements IReferencedNub { /** * effectue une série de calculs sur un paramètre - * @param rPrec précision de calcul * @param rInit solution approximative du paramètre * @param sDonnee éventuel symbole du paramètre à calculer */ - public CalcSerie(rPrec: number = 0.001, rInit?: number, sDonnee?: string): Result { + public CalcSerie(rInit?: number, sDonnee?: string): Result { let computedParam: ParamDefinition; // instance de ParamValues utilisée pour le paramètre varié (qui peut être un paramètre référencé (importé)) let variatedValues: IterableValues; @@ -145,14 +143,14 @@ export abstract class Nub extends ComputeNode implements IReferencedNub { } if (variatedValues === undefined) { - this._result = this.Calc(computedSymbol, rInit, rPrec); // résultat dans this._result + this._result = this.Calc(computedSymbol, rInit); // résultat dans this._result } else { const res = new Result(); variatedValues.initValuesIterator(false); while (variatedValues.hasNext) { // tslint:disable-next-line:no-unused-expression variatedValues.next(); - this.Calc(computedSymbol, rInit, rPrec); // résultat dans this._result + this.Calc(computedSymbol, rInit); // résultat dans this._result if (this._result.ok) { res.addResultElement(this._result.resultElement); res.addLog(this._result.log); @@ -200,7 +198,7 @@ export abstract class Nub extends ComputeNode implements IReferencedNub { // il y a des valeurs par défaut pour la précision et la valeur initiale, // mais il faudra prévoir un mécanisme pour les transmettre - return this.CalcSerie(0.001, 0.1, desc); + return this.CalcSerie(0.1, desc); } public getReferencedExtraResult(desc: string): any { @@ -399,12 +397,12 @@ export abstract class Nub extends ComputeNode implements IReferencedNub { * Résoud l'équation par une méthode numérique * @param sVarCalc nom de la variable à calculer * @param rInit valeur initiale de la variable à calculer dans le cas de la dichotomie - * @param rPrec précision de calcul */ - private Solve(sVarCalc: string, rInit: number, rPrec: number): Result { + private Solve(sVarCalc: string, rInit: number): Result { const dicho: Dichotomie = new Dichotomie(this, sVarCalc, this.DBG); dicho.startIntervalMaxSteps = this.dichoStartIntervalMaxSteps; const target = this.getFirstAnalyticalParameter(); + const rPrec = this._prms.Pr.v; return dicho.Dichotomie(target.v, rPrec, rInit); } diff --git a/src/param/params-equation.ts b/src/param/params-equation.ts index 9d348acf..d25392d6 100644 --- a/src/param/params-equation.ts +++ b/src/param/params-equation.ts @@ -1,7 +1,8 @@ import { MapIterator } from "../util/iterator"; import { ComputeNode } from "../compute-node"; -import { ParamDefinition } from "./param-definition"; +import { ParamCalculability, ParamDefinition } from "./param-definition"; +import { ParamDomainValue } from "./param-domain"; export interface IParamDefinitionIterator extends IterableIterator<ParamDefinition> { } @@ -85,16 +86,27 @@ export class ParamsEquationArrayIterator implements IParamDefinitionIterator { // tslint:disable-next-line:max-classes-per-file export abstract class ParamsEquation implements Iterable<ParamDefinition> { + /** précision de calcul par défaut */ + private static DEFAULT_COMPUTE_PREC = 0.0001; + /** pointeur vers la calculette qui utilise ces paramètres */ public parent: ComputeNode; protected _paramMap: { [key: string]: ParamDefinition } = {}; - private _calculabilityDefined: boolean; + /** Précision de calcul */ + private _Pr: ParamDefinition; + private _calculabilityDefined: boolean; public constructor(parent?: ComputeNode) { this.parent = parent; this._calculabilityDefined = false; + this._Pr = new ParamDefinition(this, "Pr", ParamDomainValue.POS, ParamsEquation.DEFAULT_COMPUTE_PREC); + this.addParamDefinition(this._Pr); + } + + get Pr() { + return this._Pr; } get nubUid() { diff --git a/src/remous.ts b/src/remous.ts index 0c167a63..2432df05 100644 --- a/src/remous.ts +++ b/src/remous.ts @@ -48,7 +48,7 @@ export class CourbeRemousParams extends ParamsEquation { */ private _Dx: ParamDefinition; - constructor(s: acSection, rYamont: number, rYAval: number, rLong: number, rDx: number, meth: MethodeResolution) { + constructor(s: acSection, rYamont: number, rYAval: number, rLong: number, rDx: number) { super(); this._section = s; this._Yamont = new ParamDefinition(this, "Yamont", ParamDomainValue.POS, rYamont); @@ -104,11 +104,13 @@ export class CourbeRemous extends Nub { private prmSect: ParamsSection; - constructor(crp: CourbeRemousParams, dbg: boolean = false) { + constructor(crp: CourbeRemousParams, method: MethodeResolution = MethodeResolution.Trapezes, dbg: boolean = false) { super(crp, dbg); // this._log = crp.Sn.log; this.prmSect = crp.Sn.prms; this.Sn.Calc("Yc"); + // should this be a ParamDefinition driven by an Enum, instead of a Prop ? + this.properties.setPropValue("methodeResolution", method); } /** @@ -312,7 +314,7 @@ export class CourbeRemous extends Nub { // let rxRst = rX + iSens * rLongRst; // Abscisse réelle du ressaut // this.debug("xRst reel=" + (rX + iSens * rLongRst)); - xRst = round(xRst, this.prmSect.iPrec.v); + xRst = round(xRst, this.prmSect.iPrec); // this.debug("xRst (arr)=" + xRst); const impYpartielle = this.Sn.Calc("Imp", crbPartielle[rX]); @@ -474,7 +476,7 @@ export class CourbeRemous extends Nub { return res; } - public Calc(sVarCalc: string, rInit?: number, rPrec: number = 0.001): Result { + public Calc(sVarCalc: string, rInit?: number): Result { if (sVarCalc === "Hs") { return this.Equation(sVarCalc); } @@ -509,7 +511,7 @@ export class CourbeRemous extends Nub { return this.prms.Sn; } - private get prms(): CourbeRemousParams { + get prms(): CourbeRemousParams { return this._prms as CourbeRemousParams; } @@ -730,7 +732,7 @@ export class CourbeRemous extends Nub { // H est la charge totale. On se place dans le référentiel ou Zf de la section à calculer = 0 trapezFn -= this.Dx * this.prmSect.If.v; - const r: Result = dicho.Dichotomie(trapezFn, this.prmSect.Prec.v, Y); + const r: Result = dicho.Dichotomie(trapezFn, this.prmSect.Pr.v, Y); if (!r.ok) { return r; } @@ -802,7 +804,7 @@ export class CourbeRemous extends Nub { const res = new ResultElement(); let lastY = YCL; - trY[round(varParam.next().value, this.prmSect.iPrec.v)] = lastY; + trY[round(varParam.next().value, this.prmSect.iPrec)] = lastY; // Boucle de calcul de la courbe de remous while (varParam.hasNext) { @@ -817,7 +819,7 @@ export class CourbeRemous extends Nub { if (rY.ok) { // on vérifie qu'on ne traverse pas la hauteur normale (à la précision de calcul près) - const prec: number = this.prms.map.Prec.v; + const prec: number = this.prms.Pr.v; const b1: boolean = lastY - this.Sn.HautNormale > prec; const b2: boolean = rY.vCalc - this.Sn.HautNormale > prec; if (XOR(b1, b2)) { @@ -832,7 +834,7 @@ export class CourbeRemous extends Nub { res.addMessage(m); } - trY[round(x, this.prmSect.iPrec.v)] = rY.vCalc; + trY[round(x, this.prmSect.iPrec)] = rY.vCalc; } else { const m = new Message(MessageCode.WARNING_REMOUS_ARRET_CRITIQUE); m.extraVar.x = x; diff --git a/src/section/newton.ts b/src/section/newton.ts index 498bef41..29ac3d3e 100644 --- a/src/section/newton.ts +++ b/src/section/newton.ts @@ -21,8 +21,8 @@ export abstract class acNewton extends Debug { */ constructor(prms: cParamsCanal, maxIter: number, dbg: boolean = false) { super(dbg); - this.rTol = prms.Prec.v; - this.Dx = prms.Prec.v / 10; + this.rTol = prms.Pr.v; + this.Dx = prms.Pr.v / 10; this.iCptMax = maxIter; } diff --git a/src/section/section_circulaire.ts b/src/section/section_circulaire.ts index 0ca9428b..0a0d9c90 100644 --- a/src/section/section_circulaire.ts +++ b/src/section/section_circulaire.ts @@ -7,8 +7,8 @@ import { acSection, ParamsSection } from "./section_type"; export class ParamsSectionCirc extends ParamsSection { private _D: ParamDefinition; // Diamètre du cercle - constructor(rD: number, rY: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number) { - super(rY, undefined, rKs, rQ, rIf, rPrec, rYB); + constructor(rD: number, rY: number, rKs: number, rQ: number, rIf: number, rYB: number) { + super(rY, undefined, rKs, rQ, rIf, rYB); this._D = new ParamDefinition(this, "D", ParamDomainValue.POS, rD); this.addParamDefinition(this._D); diff --git a/src/section/section_parametree.ts b/src/section/section_parametree.ts index 660b5a1b..e19f1347 100644 --- a/src/section/section_parametree.ts +++ b/src/section/section_parametree.ts @@ -79,11 +79,11 @@ export class SectionParametree extends Nub { } } - public CalcSerie(rPrec: number = 0.001, rInit?: number, sDonnee?: string): Result { + public CalcSerie(rInit?: number, sDonnee?: string): Result { // paramètre à varier ? if (this.hasVariatedParameter()) { - return super.CalcSerie(rPrec, rInit, sDonnee); + return super.CalcSerie(rInit, sDonnee); } // sinon, on stocke toutes les valeurs des variables à calcul dans les résultats supplémentaires diff --git a/src/section/section_puissance.ts b/src/section/section_puissance.ts index 1ee1d152..3b216037 100644 --- a/src/section/section_puissance.ts +++ b/src/section/section_puissance.ts @@ -10,9 +10,9 @@ export class ParamsSectionPuiss extends ParamsSection { private _k: ParamDefinition; // Coefficient de forme compris entre 0 et 1 constructor(rk: number, rY: number, rLargeurBerge: number, rKs: number, rQ: number, - rIf: number, rPrec: number, rYB: number) { + rIf: number, rYB: number) { - super(rY, rLargeurBerge, rKs, rQ, rIf, rPrec, rYB); + super(rY, rLargeurBerge, rKs, rQ, rIf, rYB); this._k = new ParamDefinition(this, "k", new ParamDomain(ParamDomainValue.INTERVAL, 0, 1), rk); this.addParamDefinition(this._k); diff --git a/src/section/section_rectang.ts b/src/section/section_rectang.ts index 5207edff..ef8da7a6 100644 --- a/src/section/section_rectang.ts +++ b/src/section/section_rectang.ts @@ -2,12 +2,11 @@ import { Result } from "../util/result"; import { acSection, ParamsSection } from "./section_type"; export class ParamsSectionRectang extends ParamsSection { - constructor(rY: number, rLargeurFond: number, rKs: number, rQ: number, rIf: number, - rPrec: number, rYB: number) { + constructor(rY: number, rLargeurFond: number, rKs: number, rQ: number, rIf: number, rYB: number) { super(rY, rLargeurFond, // LargeurBerge=LargeurFond - rKs, rQ, rIf, rPrec, rYB); + rKs, rQ, rIf, rYB); } } diff --git a/src/section/section_trapez.ts b/src/section/section_trapez.ts index 484848b4..7e5e085a 100644 --- a/src/section/section_trapez.ts +++ b/src/section/section_trapez.ts @@ -8,9 +8,9 @@ export class ParamsSectionTrapez extends ParamsSection { private _Fruit: ParamDefinition; // Fruit des berges constructor(rLargeurFond: number, rFruit: number, rY: number, rKs: number, - rQ: number, rIf: number, rPrec: number, rYB: number) { + rQ: number, rIf: number, rYB: number) { - super(rY, undefined, rKs, rQ, rIf, rPrec, rYB); + super(rY, undefined, rKs, rQ, rIf, rYB); this._LargeurFond = new ParamDefinition(this, "LargeurFond", ParamDomainValue.POS_NULL, rLargeurFond); this._Fruit = new ParamDefinition(this, "Fruit", ParamDomainValue.POS_NULL, rFruit); diff --git a/src/section/section_type.ts b/src/section/section_type.ts index 78160db4..ca74eaee 100644 --- a/src/section/section_type.ts +++ b/src/section/section_type.ts @@ -16,28 +16,22 @@ export abstract class cParamsCanal extends ParamsEquation { private _Ks: ParamDefinition; // Strickler private _Q: ParamDefinition; // Débit private _If: ParamDefinition; // Pente du fond - private _Prec: ParamDefinition; // Précision de calcul et d'affichage - private _iPrec: ParamDefinition; // Précision en nombre de décimales private _YB: ParamDefinition; // Hauteur de berge + private _iPrec: number; // Précision en nombre de décimales - constructor(rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number) { + constructor(rKs: number, rQ: number, rIf: number, rYB: number) { super(); this._Ks = new ParamDefinition(this, "Ks", ParamDomainValue.POS, rKs); this._Q = new ParamDefinition(this, "Q", ParamDomainValue.POS_NULL, rQ); this._If = new ParamDefinition(this, "If", ParamDomainValue.ANY, rIf); - this._Prec = new ParamDefinition(this, "Prec", ParamDomainValue.POS, rPrec, false); // hidden by default - this._iPrec = new ParamDefinition( - this, "iPrec", ParamDomainValue.ANY, - Math.round(-Math.log(rPrec) / Math.log(10)) - , false); // hidden by default this._YB = new ParamDefinition(this, "YB", ParamDomainValue.POS, rYB); this.addParamDefinition(this._Ks); this.addParamDefinition(this._Q); this.addParamDefinition(this._If); - this.addParamDefinition(this._Prec); - this.addParamDefinition(this._iPrec); this.addParamDefinition(this._YB); + + this._iPrec = Math.round(-Math.log(this.Pr.v) / Math.log(10)); } /** @@ -61,17 +55,10 @@ export abstract class cParamsCanal extends ParamsEquation { return this._If; } - /** - * Précision de calcul et d'affichage - */ - get Prec(): ParamDefinition { - return this._Prec; - } - /** * Précision en nombre de décimales */ - get iPrec(): ParamDefinition { + get iPrec(): number { return this._iPrec; } @@ -93,9 +80,8 @@ export abstract class ParamsSection extends cParamsCanal { rKs: number, rQ: number, rIf: number, - rPrec: number, rYB: number) { - super(rKs, rQ, rIf, rPrec, rYB); + super(rKs, rQ, rIf, rYB); this._Y = new ParamDefinition(this, "Y", ParamDomainValue.POS_NULL, rY); this._LargeurBerge = new ParamDefinition( this, "LargeurBerge", ParamDomainValue.POS_NULL, rLargeurBerge); @@ -235,8 +221,6 @@ export abstract class acSection extends ComputeNode { this.prms.Ks.calculability = ParamCalculability.DICHO; this.prms.Q.calculability = ParamCalculability.DICHO; this.prms.If.calculability = ParamCalculability.DICHO; - this.prms.Prec.calculability = ParamCalculability.NONE; - this.prms.iPrec.calculability = ParamCalculability.NONE; this.prms.YB.calculability = ParamCalculability.DICHO; this.prms.Y.calculability = ParamCalculability.DICHO; this.prms.LargeurBerge.calculability = ParamCalculability.DICHO; diff --git a/src/session.ts b/src/session.ts index 6764e841..86256441 100644 --- a/src/session.ts +++ b/src/session.ts @@ -236,9 +236,8 @@ export class Session { 0.4, // Yaval = tirant aval 100, // Long= Longueur du bief 5, // Dx=Pas d'espace - MethodeResolution.EulerExplicite ); - nub = new CourbeRemous(prms, dbg); + nub = new CourbeRemous(prms, MethodeResolution.EulerExplicite, dbg); break; } @@ -406,7 +405,6 @@ export class Session { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - this.defaultPrecision, // précision 1, // YB= hauteur de berge ); @@ -420,7 +418,6 @@ export class Session { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - this.defaultPrecision, // précision 1 // YB=hauteur de berge ); return new cSnRectang(prms, dbg); @@ -433,7 +430,6 @@ export class Session { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - this.defaultPrecision, // précision 1, // YB= hauteur de berge ); return new cSnCirc(prms, dbg); @@ -447,7 +443,6 @@ export class Session { 40, // Ks=Strickler 1.2, // Q=Débit 0.001, // If=pente du fond - this.defaultPrecision, // précision 1, // YB= hauteur de berge ); return new cSnPuiss(prms, dbg); diff --git a/src/structure/cloisons.ts b/src/structure/cloisons.ts index 5ba50488..7f512132 100644 --- a/src/structure/cloisons.ts +++ b/src/structure/cloisons.ts @@ -29,9 +29,8 @@ export class Cloisons extends ParallelStructure { * @param sVarCalc Nom du paramètre à calculer : * "Q", "Z1", "DH" ou "n.X" avec "n" l'index de l'ouvrage et "X" son paramètre * @param rInit Valeur initiale - * @param rPrec Précision attendue */ - public Calc(sVarCalc: string, rInit?: number, rPrec: number = 0.001): Result { + public Calc(sVarCalc: string, rInit?: number): Result { // Mise à jour de ZRAM pour Kivi à partir de Z1 - PB this.updateKiviZRAM(); @@ -42,7 +41,7 @@ export class Cloisons extends ParallelStructure { sVC = "Z2"; } - const r: Result = super.Calc(sVC, rInit, rPrec); + const r: Result = super.Calc(sVC, rInit); // Transformation Z2 => DH if (sVarCalc === "DH") { diff --git a/src/structure/factory_structure.ts b/src/structure/factory_structure.ts index ee81f5a7..d486982f 100644 --- a/src/structure/factory_structure.ts +++ b/src/structure/factory_structure.ts @@ -21,8 +21,7 @@ import { StructureWeirFree } from "./structure_weir_free"; import { StructureWeirSubmergedLarinier } from "./structure_weir_submerged_larinier"; export function CreateStructure(structureType: StructureType, loiDebit: LoiDebit, parentNub?: ParallelStructure, - dbg: boolean = false): Structure -{ + dbg: boolean = false): Structure { const oCd: {[s: string]: number} = {SeuilR: 0.4, VanneR: 0.6, SeuilT: 1.36}; const rectStructPrms: RectangularStructureParams = new RectangularStructureParams( 0, // Q diff --git a/src/structure/parallel_structure.ts b/src/structure/parallel_structure.ts index 4e2cebfd..98330f11 100644 --- a/src/structure/parallel_structure.ts +++ b/src/structure/parallel_structure.ts @@ -73,7 +73,7 @@ export class ParallelStructure extends Nub { const prms: ParamsEquation[] = []; prms.push(this._prms); for (const st of this._structures) { - prms.push(st.parameters); + prms.push(st.prms); } return new ParamsEquationArrayIterator(prms); } @@ -91,6 +91,8 @@ export class ParallelStructure extends Nub { } // add reference to parent collection (this) structure.parent = this; + // propagate precision + structure.prms.Pr.v = this.prms.Pr.v; } /** @@ -233,15 +235,14 @@ export class ParallelStructure extends Nub { * @param sVarCalc Nom du paramètre à calculer : * "Q", "Z1", "Z2" ou "n.X" avec "n" l'index de l'ouvrage et "X" son paramètre * @param rInit Valeur initiale - * @param rPrec Précision attendue */ - public Calc(sVarCalc: string, rInit?: number, rPrec: number = 0.001): Result { + public Calc(sVarCalc: string, rInit?: number): Result { let res: Result; switch (sVarCalc) { case "Z1": case "Z2": case "Q": - res = super.Calc(sVarCalc, rInit, rPrec); + res = super.Calc(sVarCalc, rInit); if (res.ok) { this.getParameter(sVarCalc).setValue(res.vCalc); } @@ -249,7 +250,7 @@ export class ParallelStructure extends Nub { default: // Pour les caractéristiques des ouvrages const sVC = this.getStructureVarCalc(sVarCalc); - res = this.CalcStructPrm(sVC, rInit, rPrec); + res = this.CalcStructPrm(sVC, rInit); // Suppression des extraResults : ils sont complétés plus bas pour chaque ouvrage res.resultElement.extraResults = {}; if (res.ok) { @@ -446,14 +447,13 @@ export class ParallelStructure extends Nub { * Calcul du paramètre d'un des ouvrages en parallèle * @param sVC Index de l'ouvrage et paramètre à calculer * @param rInit Valeur initiale - * @param rPrec Précision attendue */ - private CalcStructPrm(sVC: IStructureVarCalc, rInit?: number, rPrec: number = 0.001): Result { + private CalcStructPrm(sVC: IStructureVarCalc, rInit?: number): Result { // Le débit restant sur la structure en calcul est : this._structures[sVC.index].prms.Q.setValue(this.prms.Q.v - this.CalcQ(sVC.index).vCalc); // Calcul du paramètre de la structure en calcul - return this._structures[sVC.index].Calc(sVC.prm, rInit, rPrec); + return this._structures[sVC.index].Calc(sVC.prm, rInit); } } diff --git a/src/structure/structure.ts b/src/structure/structure.ts index 9059ccf6..7a59fdbe 100644 --- a/src/structure/structure.ts +++ b/src/structure/structure.ts @@ -100,9 +100,8 @@ export abstract class Structure extends Nub { * Gestion du débit nul et de l'inversion de débit * @param sVarCalc nom de la variable à calculer * @param rInit valeur initiale de la variable à calculer dans le cas de la dichotomie - * @param rPrec précision de calcul */ - public Calc(sVarCalc: string, rInit?: number, rPrec: number = 0.001): Result { + public Calc(sVarCalc: string, rInit?: number): Result { // Gestion de l'exception de calcul de W sur les seuils if (rInit === undefined) { rInit = this.getParameter(sVarCalc).v; @@ -153,6 +152,7 @@ export abstract class Structure extends Nub { switch (sVarCalc) { case "ZDV": rPrm = Infinity; + break; default: rPrm = 0; } @@ -167,13 +167,13 @@ export abstract class Structure extends Nub { // Gestion de l'inversion de débit : on inverse l'amont et l'aval pour le calcul if ((sVarCalc === "Q" && (this.prms.h1.v < this.prms.h2.v)) || (sVarCalc !== "Q" && this.prms.Q.v < 0)) { [this.prms.h1.v, this.prms.h2.v] = [this.prms.h2.v, this.prms.h1.v]; // Swap ES6 fashion - const res: Result = super.Calc(sVarCalc, rInit, rPrec); + const res: Result = super.Calc(sVarCalc, rInit); [this.prms.h1.v, this.prms.h2.v] = [this.prms.h2.v, this.prms.h1.v]; // Swap ES6 fashion return res; } // Calcul normal hors débit nul et inversion de débit - return super.Calc(sVarCalc, rInit, rPrec); + return super.Calc(sVarCalc, rInit); } protected getResultData() { diff --git a/src/structure/structure_params.ts b/src/structure/structure_params.ts index 58226bc8..3f3018c4 100644 --- a/src/structure/structure_params.ts +++ b/src/structure/structure_params.ts @@ -56,6 +56,8 @@ export class StructureParams extends ParamsEquation { this.addParamDefinition(this.h2); this.W = new ParamDefinition(this, "W", ParamDomainValue.POS_NULL, rW, false); // hidden by default this.addParamDefinition(this.W); + // hide params + this.Pr.visible = false; } /** Mise à jour des paramètres h1 et h2 à partir de Z1, Z2 et ZDV */ -- GitLab