UNPKG

jalhyd

Version:

JaLHyd, a Javascript Library for Hydraulics

93 lines 3.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PbBassin = 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"); class PbBassin extends internal_modules_1.Nub { constructor(prms, dbg = false) { super(prms, dbg); this.setCalculatorType(internal_modules_4.CalculatorType.PbBassin); this.cloisonsAmont = []; this.cloisonsAval = []; this._intlType = "Bassin"; } /** * paramètres castés au bon type */ get prms() { return this._prms; } Calc(sVarCalc, rInit) { // if Calc() is called outside of CalcSerie(), _result might not be initialized if (!this.result) { this.initNewResultElement(); } const r = this.result; r.resultElement.values.Z = this.CalcZ().moy; r.resultElement.values.Q = this.CalcQ(); r.resultElement.values.YMOY = r.resultElement.values.Z - this.prms.ZF.v; // Puissance dissipée let energy = 0; // sum of Energy of upstream walls for (const w of this.cloisonsAmont) { energy += w.prms.Q.v * (w.prms.Z1.V - w.prms.Z2.v); } const ro = 1000; // masse volumique de l'eau en kg/m3 const g = 9.81; // accélération de la gravité terrestre en m/s2. r.resultElement.values.PV = ro * g * energy / r.resultElement.values.YMOY / this.prms.S.v; return r; } Equation(sVarCalc) { switch (sVarCalc) { case "Q": case "Z": const r = new internal_modules_2.Result(); r.values.Q = this.CalcQ(); r.values.Z = this.CalcZ().moy; return r; default: throw new Error("PbBassin.Equation() : invalid variable name " + sVarCalc); } } /** * paramétrage de la calculabilité des paramètres */ setParametersCalculability() { this.prms.S.calculability = internal_modules_3.ParamCalculability.FREE; this.prms.ZF.calculability = internal_modules_3.ParamCalculability.FREE; } get parent() { return super.parent; } CalcQ() { this.Q = 0; for (const c of this.cloisonsAmont) { this.Q += Math.max(0, c.prms.Q.v); } return this.Q; } CalcZ() { const zStat = this.parent.CalcZ1Cloisons(this.cloisonsAval); this.Z = zStat.moy; return zStat; } getMinZDV() { return this.parent.getMinZDV(this.cloisonsAval); } /** Returns order of current basin in parent PreBarrage, starting at 1 */ get order() { return this.parent.findBasinPosition(this.uid) + 1; } /** * Returns a translatable message for basin description, containing order number */ get description() { return new internal_modules_5.Message(internal_modules_5.MessageCode.INFO_PB_BASSIN_DESCRIPTION, { order: String(this.order) }); } } exports.PbBassin = PbBassin; //# sourceMappingURL=pb_bassin.js.map