jalhyd
Version:
JaLHyd, a Javascript Library for Hydraulics
86 lines • 3.3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ParTypeSC = void 0;
const internal_modules_1 = require("../internal_modules");
const internal_modules_2 = require("../internal_modules");
const internal_modules_3 = require("../internal_modules");
/**
* Intermediate class for common stuff between SUPERACTIVE and CHEVRON pass types
*/
class ParTypeSC extends internal_modules_1.ParTypeAbstract {
/**
* Math.sqrt(2 * 9.81)
*/
get RG() {
return 4.42945;
}
CalcH() {
const qStar = this.CalcQStar();
return this.prms.a.v * (this.c2h * Math.pow(qStar, 2) + this.c1h * qStar + this.c0h);
}
CalcHa(qStar) {
if (qStar === undefined) {
qStar = this.CalcQStar();
}
return this.prms.a.v * (this.c2ha * Math.pow(qStar, 2) + this.c1ha * qStar + this.c0ha);
}
CalcQStar() {
return (this.prms.Q.V / this.CalcB()) / (this.RG * Math.pow(this.prms.a.v, 1.5));
}
CalcQFromQStar(qStar) {
return qStar * this.RG * Math.pow(this.prms.a.v, 1.5) * this.CalcB();
}
CalcQFromHa() {
const x = this.ha / this.prms.a.v;
const y = this.doCalcQYFromHa(x);
return this.CalcQFromQStar(y);
}
CalcAw() {
return this.CalcH() * this.CalcB();
}
/** calculates the number of baffles Nb based on the baffles spacing P */
CalcNb() {
return this.CalcLs() / this.P;
}
checkInput() {
let fatal = false;
const messages = [];
// S
if ((0, internal_modules_3.isLowerThan)(this.prms.S.v, 0.1) || (0, internal_modules_3.isGreaterThan)(this.prms.S.v, 0.18)) {
fatal = true;
const m = new internal_modules_2.Message(internal_modules_2.MessageCode.ERROR_PAR_S);
m.extraVar.min = 0.1;
m.extraVar.max = 0.18;
messages.push(m);
}
else if ((0, internal_modules_3.isGreaterThan)(this.prms.S.v, 0.16)) {
const m = new internal_modules_2.Message(internal_modules_2.MessageCode.WARNING_PAR_S);
m.extraVar.min = 0.1;
m.extraVar.max = 0.16;
messages.push(m);
}
// N
if (this.prms.N.v % 0.5 > 0.001 && this.prms.N.v % 0.5 < 0.499) {
const m = new internal_modules_2.Message(internal_modules_2.MessageCode.WARNING_PAR_N_ROUNDED_TO_05);
this.prms.N.v = Math.round(this.prms.N.v * 2) / 2;
m.extraVar.val = this.prms.N.v;
messages.push(m);
}
// a
if ((0, internal_modules_3.isLowerThan)(this.prms.a.v, 0.05) || (0, internal_modules_3.isGreaterThan)(this.prms.a.v, 0.25)) {
fatal = true;
const m = new internal_modules_2.Message(internal_modules_2.MessageCode.ERROR_PAR_A);
m.extraVar.min = 0.05;
m.extraVar.max = 0.25;
messages.push(m);
}
else if ((0, internal_modules_3.isGreaterThan)(this.prms.a.v, 0.2)) {
const m = new internal_modules_2.Message(internal_modules_2.MessageCode.WARNING_PAR_A);
m.extraVar.max = 0.2;
messages.push(m);
}
return { fatal, messages };
}
}
exports.ParTypeSC = ParTypeSC;
//# sourceMappingURL=par_type_sc.js.map