UNPKG

jalhyd

Version:

JaLHyd, a Javascript Library for Hydraulics

68 lines 2.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.StructureTriangularTruncWeirFree = void 0; const internal_modules_1 = require("../internal_modules"); const internal_modules_2 = require("../internal_modules"); const internal_modules_3 = require("../internal_modules"); const internal_modules_4 = require("../internal_modules"); const internal_modules_5 = require("../internal_modules"); /** * Equation classique seuil triangulaire (Villemonte) */ class StructureTriangularTruncWeirFree extends internal_modules_3.Structure { constructor(prms, dbg = false) { super(prms, dbg); this.setLoiDebit(internal_modules_4.LoiDebit.TriangularTruncWeirFree); } /** * paramètres castés au bon type */ get prms() { return this._prms; } /** * Calcul analytique Q = f(Cd, L, h1, h2, W) * @param sVarCalc Variable à calculer (doit être "Q") */ CalcQ() { const data = this.getResultData(); let Q = this.prms.CdT.v * this.prms.BT.v / (this.prms.ZT.v - this.prms.ZDV.v); if (this.prms.Z1.v <= this.prms.ZT.v) { Q = Q * Math.pow(this.prms.h1.v, 2.5); } else { Q = Q * (Math.pow(this.prms.h1.v, 2.5) - Math.pow(this.prms.Z1.v - this.prms.ZT.v, 2.5)); } if (data.ENUM_StructureFlowRegime !== internal_modules_3.StructureFlowRegime.FREE) { Q = (0, internal_modules_5.Villemonte)(this.prms.h1.v, this.prms.h2.v, 2.5) * Q; } return new internal_modules_2.Result(Q, this, data); } getFlowRegime() { if (this.prms.Z2.v <= this.prms.ZDV.v) { return internal_modules_3.StructureFlowRegime.FREE; } else { // La réduction de débit s'applique dès que Z2 > ZDV (Villemonte, 1946) if (this.prms.h2.v < 4 / 5 * this.prms.h1.v) { // Yc = 4 / 5 * H1 (Jameson, 1925) return internal_modules_3.StructureFlowRegime.PARTIAL; } return internal_modules_3.StructureFlowRegime.SUBMERGED; } } getFlowMode() { return internal_modules_3.StructureFlowMode.WEIR; } /** * paramétrage de la calculabilité des paramètres */ setParametersCalculability() { super.setParametersCalculability(); this.prms.BT.calculability = internal_modules_1.ParamCalculability.DICHO; this.prms.ZT.calculability = internal_modules_1.ParamCalculability.DICHO; this.prms.CdT.calculability = internal_modules_1.ParamCalculability.DICHO; } } exports.StructureTriangularTruncWeirFree = StructureTriangularTruncWeirFree; //# sourceMappingURL=structure_triangular_trunc_weir.js.map