jalhyd
Version:
JaLHyd, a Javascript Library for Hydraulics
68 lines • 2.88 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConduiteDistrib = 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");
/**
* classe de calcul sur la conduite distributrice
*/
class ConduiteDistrib extends internal_modules_2.Nub {
constructor(prms, dbg = false) {
super(prms, dbg);
this.setCalculatorType(internal_modules_1.CalculatorType.ConduiteDistributrice);
}
/**
* paramètres castés au bon type
*/
get prms() {
return this._prms;
}
/**
* calcul direct des différents paramètres
* @param sVarCalc nom du paramètre
* @return valeur calculée
*/
Equation(sVarCalc) {
let v;
const K = 0.3164 * Math.pow(4, 1.75) / (5.5 * 9.81 * Math.pow(3.1415, 1.75)); // Constante de la formule
switch (sVarCalc) {
case "J":
v = K * Math.pow(this.prms.Nu.v, 0.25) * Math.pow(this.prms.Q.v, 1.75)
* this.prms.Lg.v / Math.pow(this.prms.D.v, 4.75);
break;
case "D":
v = Math.pow(this.prms.J.v / (K * Math.pow(this.prms.Nu.v, 0.25)
* Math.pow(this.prms.Q.v, 1.75) * this.prms.Lg.v), 1 / 4.75);
break;
case "Q":
v = Math.pow(this.prms.J.v / (K * Math.pow(this.prms.Nu.v, 0.25)
* this.prms.Lg.v / Math.pow(this.prms.D.v, 4.75)), 1 / 1.75);
break;
case "Lg":
v = this.prms.J.v / (K * Math.pow(this.prms.Nu.v, 0.25)
* Math.pow(this.prms.Q.v, 1.75) / Math.pow(this.prms.D.v, 4.75));
break;
case "Nu":
v = Math.pow(this.prms.J.v / (K * Math.pow(this.prms.Q.v, 1.75)
* this.prms.Lg.v / Math.pow(this.prms.D.v, 4.75)), 1 / 0.25);
break;
default:
throw new Error("ConduiteDistrib.Equation() : invalid parameter name " + sVarCalc);
}
return new internal_modules_4.Result(v, this);
}
/**
* paramétrage de la calculabilité des paramètres
*/
setParametersCalculability() {
this.prms.J.calculability = internal_modules_3.ParamCalculability.EQUATION;
this.prms.D.calculability = internal_modules_3.ParamCalculability.EQUATION;
this.prms.Q.calculability = internal_modules_3.ParamCalculability.EQUATION;
this.prms.Lg.calculability = internal_modules_3.ParamCalculability.EQUATION;
this.prms.Nu.calculability = internal_modules_3.ParamCalculability.EQUATION;
}
}
exports.ConduiteDistrib = ConduiteDistrib;
//# sourceMappingURL=cond_distri.js.map