jalhyd
Version:
JaLHyd, a Javascript Library for Hydraulics
115 lines • 3.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PabNombre = 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 PabNombre extends internal_modules_3.Nub {
constructor(prms, dbg = false) {
super(prms, dbg);
this.setCalculatorType(internal_modules_2.CalculatorType.PabNombre);
this._defaultCalculatedParam = prms.N;
this.resetDefaultCalculatedParam();
}
/**
* paramètres castés au bon type
*/
get prms() {
return this._prms;
}
Equation(sVarCalc) {
let rounded = false;
if (sVarCalc !== "N" && !Number.isInteger(this.prms.N.v)) {
this.prms.N.v = Math.round(this.prms.N.v);
rounded = true;
}
let v;
let DHR;
let NB;
let DHB;
let NH;
let DHH;
switch (sVarCalc) {
case "DHT":
v = this.prms.N.v * this.prms.DH.v;
break;
case "N":
const divAndMod = (0, internal_modules_1.floatDivAndMod)(this.prms.DHT.v, this.prms.DH.v);
v = divAndMod.q;
DHR = divAndMod.r;
// harmonisation ?
if (!(0, internal_modules_1.isEqual)(DHR, 0)) {
// vers le bas
if (v > 0) {
NB = v;
DHB = this.prms.DHT.v / NB;
}
// vers le haut
NH = v + 1;
DHH = this.prms.DHT.v / NH;
}
break;
case "DH":
v = this.prms.DHT.v / this.prms.N.v;
break;
default:
throw new Error("PabNombre.Equation() : invalid variable name " + sVarCalc);
}
const r = new internal_modules_6.Result(v, this);
if (DHR !== undefined) {
r.resultElement.values.DHR = DHR;
}
if (NB !== undefined) {
r.resultElement.values.NB = NB;
}
if (DHB !== undefined) {
r.resultElement.values.DHB = DHB;
}
if (NH !== undefined) {
r.resultElement.values.NH = NH;
}
if (DHH !== undefined) {
r.resultElement.values.DHH = DHH;
}
if (rounded) {
const m = new internal_modules_5.Message(internal_modules_5.MessageCode.WARNING_VALUE_ROUNDED_TO_INTEGER);
m.extraVar.symbol = "N";
m.extraVar.rounded = this.prms.N.v;
r.resultElement.log.add(m);
}
return r;
}
/**
* paramétrage de la calculabilité des paramètres
*/
setParametersCalculability() {
this.prms.DHT.calculability = internal_modules_4.ParamCalculability.EQUATION;
this.prms.N.calculability = internal_modules_4.ParamCalculability.EQUATION;
this.prms.DH.calculability = internal_modules_4.ParamCalculability.EQUATION;
}
static resultsUnits() {
return PabNombre._resultsUnits;
}
exposeResults() {
this._resultsFamilies = {
DHR: undefined,
NB: undefined,
NH: undefined,
DHB: undefined,
DHH: undefined
};
}
}
exports.PabNombre = PabNombre;
/**
* { symbol => string } map that defines units for extra results
*/
PabNombre._resultsUnits = {
DHR: "m",
DHB: "m",
DHH: "m"
};
//# sourceMappingURL=pab_nombre.js.map