jalhyd
Version:
JaLHyd, a Javascript Library for Hydraulics
72 lines • 3.32 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.StructureGateCem88d = 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 CEM88D : déversoir / orifice (pelle importante) Cemagref 1988
*/
class StructureGateCem88d extends internal_modules_3.RectangularStructure {
constructor(prms, dbg = false) {
super(prms, dbg);
this.setLoiDebit(internal_modules_5.LoiDebit.GateCem88d);
this._isZDVcalculable = false;
this.prms.W.visible = true;
this.prms.CdWR.visible = true;
}
/**
* Calcul analytique Q = f(Cd, L, h1, h2, W) CEM88D
* @param sVarCalc Variable à calculer (doit être "Q")
*/
CalcQ() {
const data = this.getResultData();
let v;
const cd = this.prms.CdWR.v * this.prms.L.v * internal_modules_4.Structure.R2G;
const b1 = Math.sqrt(this.prms.h1.v);
const b2 = Math.sqrt(this.prms.h1.v - this.prms.h2.v);
const cd1 = cd * 2.5981; // cd * 3*sqrt(3)/2
this.debug("StructureWeirCem88d.Equation b1=" + b1 + " b2=" + b2 + " cd1=" + cd1);
switch (data.ENUM_StructureFlowMode) {
case internal_modules_4.StructureFlowMode.WEIR:
switch (data.ENUM_StructureFlowRegime) {
case internal_modules_4.StructureFlowRegime.FREE:
v = cd * this.prms.h1.v * b1;
break;
case internal_modules_4.StructureFlowRegime.SUBMERGED:
v = cd1 * this.prms.h2.v * b2;
this.debug("StructureWeirCem88d.Equation WEIR SUBMERGED Q=" + v);
break;
}
break;
case internal_modules_4.StructureFlowMode.ORIFICE:
const b3 = Math.pow(this.prms.h1.v - this.W, 1.5);
switch (data.ENUM_StructureFlowRegime) {
case internal_modules_4.StructureFlowRegime.FREE:
v = cd * (this.prms.h1.v * b1 - b3);
break;
case internal_modules_4.StructureFlowRegime.PARTIAL:
v = cd1 * b2 * this.prms.h2.v - cd * b3;
break;
case internal_modules_4.StructureFlowRegime.SUBMERGED:
v = cd1 * b2 * this.W;
this.debug("StructureWeirCem88d.Equation ORIFICE SUBMERGED Q=" + v);
break;
}
}
this.debug("StructureWeirCem88d.Equation(h1=" + this.prms.h1.v + ",h2="
+ this.prms.h2.v + ",W=" + this.W + ") => Q=" + v);
return new internal_modules_2.Result(v, this, data);
}
/**
* paramétrage de la calculabilité des paramètres
*/
setParametersCalculability() {
super.setParametersCalculability();
this.prms.W.calculability = internal_modules_1.ParamCalculability.DICHO;
}
}
exports.StructureGateCem88d = StructureGateCem88d;
//# sourceMappingURL=structure_gate_cem88d.js.map