jalhyd
Version:
JaLHyd, a Javascript Library for Hydraulics
50 lines • 2.9 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.StructureParams = void 0;
const internal_modules_1 = require("../internal_modules");
const internal_modules_2 = require("../internal_modules");
const internal_modules_3 = require("../internal_modules");
/**
* Common parameters of hydraulic structure equations
*/
class StructureParams extends internal_modules_3.ParamsEquation {
/**
* Paramètres communs à toutes les équations de structure
* @param rQ Débit (m3/s)
* @param rZDV Cote de la crête du déversoir ou du radier de la vanne (m)
* @param rZ1 Cote de l'eau amont (m)
* @param rZ2 Cote de l'eau aval (m)
* @param rW Ouverture de vanne (m) (infinity pour un seuil)
*/
constructor(rQ, rZDV, rZ1, rZ2, rW = Infinity, nullParams = false) {
super();
this.Q = new internal_modules_1.ParamDefinition(this, "Q", internal_modules_2.ParamDomainValue.ANY, "m³/s", rQ, internal_modules_1.ParamFamily.FLOWS, false, nullParams);
this.addParamDefinition(this.Q);
this.ZDV = new internal_modules_1.ParamDefinition(this, "ZDV", internal_modules_2.ParamDomainValue.ANY, "m", rZDV, internal_modules_1.ParamFamily.ELEVATIONS, undefined, nullParams);
this.addParamDefinition(this.ZDV);
this.Z1 = new internal_modules_1.ParamDefinition(this, "Z1", internal_modules_2.ParamDomainValue.ANY, "m", rZ1, undefined, false, nullParams);
this.addParamDefinition(this.Z1);
this.Z2 = new internal_modules_1.ParamDefinition(this, "Z2", internal_modules_2.ParamDomainValue.ANY, "m", rZ2, undefined, false, nullParams);
this.addParamDefinition(this.Z2);
this.h1 = new internal_modules_1.ParamDefinition(this, "h1", internal_modules_2.ParamDomainValue.POS_NULL, "m", Math.max(0, this.Z1.v - this.ZDV.v), undefined, false, nullParams);
this.addParamDefinition(this.h1);
this.h2 = new internal_modules_1.ParamDefinition(this, "h2", internal_modules_2.ParamDomainValue.POS_NULL, "m", Math.max(0, this.Z2.v - this.ZDV.v), undefined, false, nullParams);
this.addParamDefinition(this.h2);
this.W = new internal_modules_1.ParamDefinition(this, "W", internal_modules_2.ParamDomainValue.POS_NULL, undefined, rW, undefined, false, nullParams);
this.addParamDefinition(this.W);
}
/** Mise à jour des paramètres h1 et h2 à partir de Z1, Z2 et ZDV */
update_h1h2() {
if (!this.h1.visible) {
// h1 paramètre caché utilisé dans les lois de débit
this.h1.v = Math.max(0, this.Z1.v - this.ZDV.v);
}
else {
// Else ZDV should by updated using h1 #127
this.ZDV.v = this.Z1.v - this.h1.v;
}
this.h2.v = Math.max(0, this.Z2.v - this.ZDV.v);
}
}
exports.StructureParams = StructureParams;
//# sourceMappingURL=structure_params.js.map