jalhyd
Version:
JaLHyd, a Javascript Library for Hydraulics
62 lines • 2.55 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.YAXB = 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");
/**
* Y = A.X + B
*/
class YAXB extends internal_modules_2.Nub {
constructor(prms, dbg = false) {
super(prms, dbg);
this.setCalculatorType(internal_modules_1.CalculatorType.YAXB);
this._defaultCalculatedParam = prms.Y;
this.resetDefaultCalculatedParam();
}
/** paramètres castés au bon type */
get prms() {
return this._prms;
}
Equation(sVarCalc) {
let v;
switch (sVarCalc) {
case "Y":
v = this.prms.A.v * this.prms.X.v + this.prms.B.v;
break;
case "A":
if (this.prms.X.v === 0) {
const m = new internal_modules_4.Message(internal_modules_4.MessageCode.ERROR_DIVISION_BY_ZERO);
m.extraVar.symbol = "X";
return new internal_modules_5.Result(m);
}
v = (this.prms.Y.v - this.prms.B.v) / this.prms.X.v;
break;
case "X":
if (this.prms.A.v === 0) {
const m = new internal_modules_4.Message(internal_modules_4.MessageCode.ERROR_DIVISION_BY_ZERO);
m.extraVar.symbol = "A";
return new internal_modules_5.Result(m);
}
v = (this.prms.Y.v - this.prms.B.v) / this.prms.A.v;
break;
case "B":
v = this.prms.Y.v - (this.prms.A.v * this.prms.X.v);
break;
default:
throw new Error("YAXB.Equation() : invalid variable name " + sVarCalc);
}
return new internal_modules_5.Result(v, this);
}
/** paramétrage de la calculabilité des paramètres */
setParametersCalculability() {
this.prms.Y.calculability = internal_modules_3.ParamCalculability.EQUATION;
this.prms.A.calculability = internal_modules_3.ParamCalculability.EQUATION;
this.prms.X.calculability = internal_modules_3.ParamCalculability.EQUATION;
this.prms.B.calculability = internal_modules_3.ParamCalculability.EQUATION;
}
}
exports.YAXB = YAXB;
//# sourceMappingURL=yaxb.js.map