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