UNPKG

jalhyd

Version:

JaLHyd, a Javascript Library for Hydraulics

99 lines 4.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.StructureGateCunge80 = 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 Cunge80 */ class StructureGateCunge80 extends internal_modules_3.RectangularStructure { constructor(prms, dbg = false) { super(prms, dbg); this.setLoiDebit(internal_modules_5.LoiDebit.GateCunge80); if (prms.W.v !== Infinity) { this._isZDVcalculable = false; } this.prms.W.visible = true; this.prms.CdCunge.visible = true; } /** * Calcul du débit avec l'équation Cunge80 * @param sVarCalc Variable à calculer (doit être égale à Q ici) */ CalcQ() { const data = this.getResultData(); let v; switch (data.ENUM_StructureFlowRegime) { case internal_modules_4.StructureFlowRegime.FREE: if (data.ENUM_StructureFlowMode === internal_modules_4.StructureFlowMode.WEIR) { const R32 = 3 * Math.sqrt(3) / 2; v = this.prms.CdCunge.v * this.prms.L.v * internal_modules_4.Structure.R2G / R32 * Math.pow(this.prms.h1.v, 1.5); this.debug("StructureCunge80.Equation WEIR FREE Q=" + v); } else { // Cd from Henderson, F.M., 1966. Open channel flow. MacMillan, New York. // tslint:disable-next-line:variable-name const Cd = StructureGateCunge80.Cc / Math.sqrt(1 + StructureGateCunge80.Cc * this.W / this.prms.h1.v); v = this.prms.CdCunge.v * Cd * this.prms.L.v * internal_modules_4.Structure.R2G * this.W * Math.pow(this.prms.h1.v, 0.5); this.debug("StructureCunge80.Equation ORIFICE FREE Q=" + v); } break; case internal_modules_4.StructureFlowRegime.SUBMERGED: if (data.ENUM_StructureFlowMode === internal_modules_4.StructureFlowMode.WEIR) { v = this.prms.CdCunge.v * this.prms.L.v * internal_modules_4.Structure.R2G * this.prms.h2.v * Math.sqrt(this.prms.h1.v - this.prms.h2.v); this.debug("StructureCunge80.Equation WEIR SUBMERGED Q=" + v); } else { v = this.prms.CdCunge.v * this.prms.L.v * internal_modules_4.Structure.R2G * this.W * Math.sqrt(this.prms.h1.v - this.prms.h2.v); this.debug("StructureCunge80.Equation ORIFICE SUBMERGED Q=" + v); } } return new internal_modules_2.Result(v, this, data); } getFlowRegime() { if (this.prms.h1.v >= 1.5 * this.prms.h2.v) { return internal_modules_4.StructureFlowRegime.FREE; } else { return internal_modules_4.StructureFlowRegime.SUBMERGED; } } getFlowMode() { const regime = this.getFlowRegime(); if (regime === internal_modules_4.StructureFlowRegime.FREE) { if (this.W <= 2 / 3 * this.prms.h1.v) { return internal_modules_4.StructureFlowMode.ORIFICE; } else { return internal_modules_4.StructureFlowMode.WEIR; } } else { if (this.W <= this.prms.h2.v) { return internal_modules_4.StructureFlowMode.ORIFICE; } else { return internal_modules_4.StructureFlowMode.WEIR; } } } /** * paramétrage de la calculabilité des paramètres */ setParametersCalculability() { super.setParametersCalculability(); this.prms.W.calculability = internal_modules_1.ParamCalculability.DICHO; this.prms.CdCunge.calculability = internal_modules_1.ParamCalculability.DICHO; } } exports.StructureGateCunge80 = StructureGateCunge80; /** Contraction coefficient on underflow gates From Henderson, F.M., 1966. Open channel flow. MacMillan, New York. */ // tslint:disable-next-line:variable-name StructureGateCunge80.Cc = 0.611; //# sourceMappingURL=structure_gate_cunge80.js.map