jalhyd
Version:
JaLHyd, a Javascript Library for Hydraulics
68 lines • 2.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.StructureKivi = 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");
const internal_modules_6 = require("../internal_modules");
class StructureKivi extends internal_modules_4.Structure {
constructor(prms, dbg = false) {
super(prms, dbg);
this.setLoiDebit(internal_modules_5.LoiDebit.KIVI);
}
/**
* paramètres castés au bon type
*/
get prms() {
return this._prms;
}
CalcQ() {
const res = new internal_modules_3.Result(0, this, this.getResultData());
// p : pelle
let p = this.prms.ZDV.v - this.prms.ZRAM.v;
let h1p;
if (p < 0.1) {
// - p ne doit pas être inférieur à 0,10 m (Norme NF X10-311-1983)
res.resultElement.addMessage(new internal_modules_2.Message(internal_modules_2.MessageCode.WARNING_STRUCTUREKIVI_PELLE_TROP_FAIBLE));
p = 0.1;
}
h1p = this.prms.h1.v / p;
if (h1p > 2.5) {
// - h/p ne doit pas être supérieur à 2,5 (Norme NF X10-311-1983)
res.resultElement.addMessage(new internal_modules_2.Message(internal_modules_2.MessageCode.WARNING_STRUCTUREKIVI_HP_TROP_ELEVE));
h1p = 2.5;
}
const cd = this.prms.alpha.v + this.prms.beta.v * h1p;
let Q = cd * this.prms.L.v * internal_modules_4.Structure.R2G * Math.pow(this.prms.h1.v, 1.5);
if (res.resultElement.values.ENUM_StructureFlowRegime === internal_modules_4.StructureFlowRegime.SUBMERGED) {
Q = (0, internal_modules_6.Villemonte)(this.prms.h1.v, this.prms.h2.v, 1.5) * Q;
}
res.resultElement.vCalc = Q;
return res;
}
getFlowRegime() {
if (this.prms.h2.v > 0) {
return internal_modules_4.StructureFlowRegime.SUBMERGED;
}
else {
return internal_modules_4.StructureFlowRegime.FREE;
}
}
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.alpha.calculability = internal_modules_1.ParamCalculability.DICHO;
this.prms.beta.calculability = internal_modules_1.ParamCalculability.FREE;
this.prms.ZRAM.calculability = internal_modules_1.ParamCalculability.FREE;
}
}
exports.StructureKivi = StructureKivi;
//# sourceMappingURL=structure_kivi.js.map