jalhyd
Version:
JaLHyd, a Javascript Library for Hydraulics
70 lines • 2.87 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.StructureWeirSubmergedLarinier = 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 de la fente noyé
* d'après Larinier, M., Travade, F., Porcher, J.-P., Gosset, C., 1992.
* Passes à poissons : expertise et conception des ouvrages de franchissement
*/
class StructureWeirSubmergedLarinier extends internal_modules_3.RectangularStructure {
constructor(prms, dbg = false) {
super(prms, dbg);
this.setLoiDebit(internal_modules_5.LoiDebit.WeirSubmergedLarinier);
this.prms.CdWSL.visible = true;
}
/**
* paramètres castés au bon type
*/
get prms() {
return this._prms;
}
/**
* vérification que l'ennoiement est supérieur à une valeur donnée
*/
checkSubmergence(res) {
this.checkSubmergenceMin(res, 0.5);
}
Calc(sVarCalc, rInit) {
var _a;
this.currentResultElement = super.Calc(sVarCalc, rInit);
const h2h1ratio = this.prms.h2.v / this.prms.h1.v;
if (!((_a = this.parent) === null || _a === void 0 ? void 0 : _a.inhibitSubmergenceError))
if (h2h1ratio < 0.7 || h2h1ratio > 0.9) {
this._result.resultElement.addMessage(new internal_modules_1.Message(internal_modules_1.MessageCode.WARNING_SLOT_SUBMERGENCE_NOT_BETWEEN_07_AND_09, {
submergencePerc: this.computeSubmergencePercentage().toString()
}));
}
return this._result;
}
/**
* Calcul analytique Q = f(Cd, L, h1, h2, W) seuil dénoyé
* @param sVarCalc Variable à calculer (doit être "Q")
*/
CalcQ() {
const data = this.getResultData();
const v = this.prms.CdWSL.v * this.prms.L.v * internal_modules_4.Structure.R2G
* this.prms.h1.v * Math.sqrt(this.prms.h1.v - this.prms.h2.v);
return new internal_modules_2.Result(v, this, data);
}
getFlowRegime() {
return internal_modules_4.StructureFlowRegime.SUBMERGED;
}
getFlowMode() {
return internal_modules_4.StructureFlowMode.WEIR;
}
/**
* paramétrage de la calculabilité des paramètres
*/
setParametersCalculability() {
super.setParametersCalculability();
this.prms.L.calculability = internal_modules_1.ParamCalculability.DICHO;
this.prms.CdWSL.calculability = internal_modules_1.ParamCalculability.DICHO;
}
}
exports.StructureWeirSubmergedLarinier = StructureWeirSubmergedLarinier;
//# sourceMappingURL=structure_weir_submerged_larinier.js.map