Commit 8e200ea6 authored by Dorchies David's avatar Dorchies David
Browse files

Closes nghyd#198. Debug Z1 calculation on Fente Larinier.

Showing with 17 additions and 4 deletions
+17 -4
......@@ -10,12 +10,13 @@ import { StructureFlowMode, StructureFlowRegime } from "../../src/structure/stru
// tslint:disable-next-line:max-line-length
import { RectangularStructureParams, StructureWeirSubmergedLarinier } from "../../src/structure/structure_weir_submerged_larinier";
import { itCalcQ } from "../structure/functions";
import { precDigits } from "../test_config";
const prms: RectangularStructureParams = new RectangularStructureParams(0, 101, 102, 101.5, 0.2, 0.65);
const test: StructureWeirSubmergedLarinier = new StructureWeirSubmergedLarinier(prms, false);
describe("Class CloisonsOrifice: ", () => {
describe("Calc(Q): ", () => {
describe("Class StructureWeirSubmergedLarinier: ", () => {
xdescribe("Calc(Q): ", () => {
const Z1: number[] = [102];
const Q: number[] = [0.407];
const mode: StructureFlowMode = StructureFlowMode.WEIR;
......@@ -24,4 +25,13 @@ describe("Class CloisonsOrifice: ", () => {
itCalcQ(test, Z1[i], Infinity, Q[i], mode, regime);
}
});
describe("Calc(Z1): ", () => {
it("Z1(Q=0.780) should be 75.301", () => {
const testZ1 = new StructureWeirSubmergedLarinier(
new RectangularStructureParams(0.780, 73.665, 75.301, 75.077, 0.35, 0.65),
false);
testZ1.prms.Z1.v = 100; // Test with initial condition far from solution
expect(testZ1.Calc("Z1").vCalc).toBeCloseTo(75.301, precDigits);
});
});
});
......@@ -232,6 +232,9 @@ export abstract class Structure extends Nub {
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);
if (sVarCalc === "Q") {
res.vCalc = -res.vCalc;
}
[this.prms.h1.v, this.prms.h2.v] = [this.prms.h2.v, this.prms.h1.v]; // Swap ES6 fashion
return res;
}
......
......@@ -33,7 +33,7 @@ export enum LoiDebit {
TriangularWeirFree,
// Loi de débit seuil triangulaire tronqué
TriangularTruncWeirFree,
// Loi de débit seuil noyé (Larinier 1992)
// Loi de débit fente noyée (Larinier 1992)
WeirSubmergedLarinier,
// Loi de débit orifice noyé
OrificeSubmerged
......@@ -45,7 +45,7 @@ export const loiAdmissiblesOuvrages: { [key: string]: LoiDebit[] } = {
],
SeuilRectangulaire: [
LoiDebit.WeirCem88d, LoiDebit.WeirCem88v, LoiDebit.Cunge80, LoiDebit.WeirFree,
LoiDebit.KIVI
LoiDebit.KIVI, LoiDebit.WeirSubmergedLarinier
],
SeuilTriangulaire: [
LoiDebit.TriangularWeirFree
......
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