UNPKG

jalhyd

Version:

JaLHyd, a Javascript Library for Hydraulics

50 lines 2.9 kB
"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