Commit 19d08980 authored by Grand Francois's avatar Grand Francois
Browse files

fix: set Z1 to ZDV when Q=0 for non submerged structure

refs #219
Showing with 45 additions and 2 deletions
+45 -2
import { RectangularStructureParams, StructureWeirFree } from "../../src/internal_modules";
describe("jalhyd#219 cote amont d'un ouvrage dénoyé à débit nul :", () => {
function createStruct(z1: number, zr: number): StructureWeirFree {
const s: StructureWeirFree = new StructureWeirFree(
new RectangularStructureParams(0, // Q
zr, // ZDV
z1, // Z1
92, // Z2
1, // L
0.6, // Cd
0.8 // W
),
false
);
s.calculatedParam = s.prms.Z1;
return s;
}
it("cote amont initiale < Zr", () => {
const z1: number = 90;
const zr: number = 100;
const s: StructureWeirFree = createStruct(z1, zr);
expect(s.CalcSerie().vCalc).toBeCloseTo(zr, 3);
});
it("cote amont initiale = Zr", () => {
const z1: number = 100;
const zr: number = 100;
const s: StructureWeirFree = createStruct(z1, zr);
expect(s.CalcSerie().vCalc).toBeCloseTo(zr, 3);
});
it("cote amont initiale > Zr", () => {
const z1: number = 110;
const zr: number = 100;
const s: StructureWeirFree = createStruct(z1, zr);
expect(s.CalcSerie().vCalc).toBeCloseTo(zr, 3);
});
});
......@@ -194,10 +194,13 @@ export abstract class Structure extends ChildNub {
// Débit nul <=> tirant d'eau amont = tirant d'eau aval ou tout autre paramètre nul
switch (sVarCalc) {
case "Z1":
this.currentResultElement = new Result(this.prms.Z2.v, this, flagsNull);
// max(Z2,ZDV) dans le cas dénoyé et noyé
// on met Z1 à ZDV pour faciliter les calculs sur les prébarrages
this.currentResultElement = new Result(Math.max(this.prms.Z2.v, this.prms.ZDV.v), this, flagsNull);
return this._result;
case "Z2":
this.currentResultElement = new Result(this.prms.Z1.v, this, flagsNull);
// max(Z1,ZDV) dans le cas dénoyé et noyé
this.currentResultElement = new Result(Math.max(this.prms.Z1.v, this.prms.ZDV.v), this, flagsNull);
return this._result;
default:
// Est-ce toujours vrai ? Nécessitera peut-être d'étendre la méthode
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment