jalhyd
Version:
JaLHyd, a Javascript Library for Hydraulics
99 lines • 4.45 kB
JavaScript
"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