UNPKG

jalhyd

Version:

JaLHyd, a Javascript Library for Hydraulics

169 lines 7.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.StructureProperties = exports.loiAdmissiblesCloisonAval = exports.loiAdmissiblesDever = exports.loiAdmissiblesCloisons = exports.loiAdmissiblesOuvrages = exports.LoiDebit = exports.StructureType = void 0; var StructureType; (function (StructureType) { StructureType[StructureType["SeuilRectangulaire"] = 0] = "SeuilRectangulaire"; StructureType[StructureType["VanneFondRectangulaire"] = 1] = "VanneFondRectangulaire"; StructureType[StructureType["Orifice"] = 2] = "Orifice"; StructureType[StructureType["SeuilTriangulaire"] = 3] = "SeuilTriangulaire"; StructureType[StructureType["SeuilTriangulaireTrunc"] = 4] = "SeuilTriangulaireTrunc"; StructureType[StructureType["SeuilOrificeRectangulaire"] = 5] = "SeuilOrificeRectangulaire"; // VanneCirculaire, // VanneTrapezoidale, SeuilTrapezoidal })(StructureType = exports.StructureType || (exports.StructureType = {})); var LoiDebit; (function (LoiDebit) { // loi de débit Déversoir / Orifice Cemagref 1988 (pour Vanne Rectangulaire) LoiDebit[LoiDebit["GateCem88d"] = 0] = "GateCem88d"; // loi de débit Déversoir / Vanne de fond Cemagref 1988 (pour Vanne Rectangulaire) LoiDebit[LoiDebit["GateCem88v"] = 1] = "GateCem88v"; // loi de débit Déversoir / Orifice Cemagref 1988 (pour Seuil Rectangulaire) LoiDebit[LoiDebit["WeirCem88d"] = 2] = "WeirCem88d"; // loi de débit Déversoir / Vanne de fond Cemagref 1988 (pour Seuil Rectangulaire) LoiDebit[LoiDebit["WeirCem88v"] = 3] = "WeirCem88v"; // loi de débit Vanne Cunge 1980 LoiDebit[LoiDebit["GateCunge80"] = 4] = "GateCunge80"; // loi de débit pour vanne dénoyée LoiDebit[LoiDebit["RectangularOrificeFree"] = 5] = "RectangularOrificeFree"; // loi de débit pour vanne noyée LoiDebit[LoiDebit["RectangularOrificeSubmerged"] = 6] = "RectangularOrificeSubmerged"; // loi de débit pour seuil dénoyé LoiDebit[LoiDebit["WeirFree"] = 7] = "WeirFree"; // Loi Kindsvater-Carter et Villemonte LoiDebit[LoiDebit["KIVI"] = 8] = "KIVI"; // Loi de débit seuil triangulaire (Villemonte) LoiDebit[LoiDebit["TriangularWeirFree"] = 9] = "TriangularWeirFree"; // Loi de débit seuil triangulaire tronqué (Villemonte) LoiDebit[LoiDebit["TriangularTruncWeirFree"] = 10] = "TriangularTruncWeirFree"; // Loi de débit fente noyée (Larinier 1992) LoiDebit[LoiDebit["WeirSubmergedLarinier"] = 11] = "WeirSubmergedLarinier"; // Loi de débit fente noyée (Rajaratnam & Muralidhar 1969) LoiDebit[LoiDebit["WeirSubmerged"] = 12] = "WeirSubmerged"; // Loi de débit orifice noyé LoiDebit[LoiDebit["OrificeSubmerged"] = 13] = "OrificeSubmerged"; // Loi de débit orifice dénoyé LoiDebit[LoiDebit["OrificeFree"] = 14] = "OrificeFree"; // Loi de seuil noyée Villemonte LoiDebit[LoiDebit["WeirVillemonte"] = 15] = "WeirVillemonte"; // Vanne levante Larinier LoiDebit[LoiDebit["VanLevLarinier"] = 16] = "VanLevLarinier"; // Vanne levante Villemonte LoiDebit[LoiDebit["VanLevVillemonte"] = 17] = "VanLevVillemonte"; // loi de débit Seuil Cunge 1980 LoiDebit[LoiDebit["WeirCunge80"] = 18] = "WeirCunge80"; // Loi de débit seuil triangulaire épais (Bos, Discharge measurement structures, 1989, p.137-143) LoiDebit[LoiDebit["TriangularWeirBroad"] = 19] = "TriangularWeirBroad"; })(LoiDebit = exports.LoiDebit || (exports.LoiDebit = {})); exports.loiAdmissiblesOuvrages = { Orifice: [ LoiDebit.OrificeSubmerged, LoiDebit.OrificeFree ], SeuilRectangulaire: [ LoiDebit.WeirCem88d, LoiDebit.WeirCem88v, LoiDebit.WeirSubmerged, LoiDebit.WeirSubmergedLarinier, LoiDebit.WeirVillemonte, LoiDebit.WeirFree, LoiDebit.KIVI, LoiDebit.WeirCunge80 ], SeuilOrificeRectangulaire: [ LoiDebit.GateCem88d, LoiDebit.GateCem88v, LoiDebit.GateCunge80 ], SeuilTriangulaire: [ LoiDebit.TriangularWeirFree, LoiDebit.TriangularWeirBroad ], SeuilTriangulaireTrunc: [ LoiDebit.TriangularTruncWeirFree ], VanneFondRectangulaire: [ LoiDebit.RectangularOrificeFree, LoiDebit.RectangularOrificeSubmerged ] }; exports.loiAdmissiblesCloisons = { Orifice: [ LoiDebit.OrificeSubmerged ], SeuilRectangulaire: [ LoiDebit.WeirSubmergedLarinier, LoiDebit.WeirVillemonte, LoiDebit.WeirCem88d ], SeuilTriangulaire: [ LoiDebit.TriangularWeirFree, LoiDebit.TriangularWeirBroad ], SeuilTriangulaireTrunc: [ LoiDebit.TriangularTruncWeirFree ], VanneFondRectangulaire: [ LoiDebit.GateCem88d ] }; exports.loiAdmissiblesDever = { SeuilRectangulaire: [ LoiDebit.WeirFree ], SeuilTriangulaire: [ LoiDebit.TriangularWeirFree ], SeuilTriangulaireTrunc: [ LoiDebit.TriangularTruncWeirFree ] }; exports.loiAdmissiblesCloisonAval = { Orifice: [ LoiDebit.OrificeSubmerged ], SeuilRectangulaire: [ LoiDebit.WeirSubmergedLarinier, LoiDebit.WeirVillemonte, LoiDebit.WeirCem88d ], VanneLevante: [ LoiDebit.VanLevVillemonte, LoiDebit.VanLevLarinier ], SeuilTriangulaire: [ LoiDebit.TriangularWeirFree, LoiDebit.TriangularWeirBroad ], SeuilTriangulaireTrunc: [ LoiDebit.TriangularTruncWeirFree ], VanneFondRectangulaire: [ LoiDebit.GateCem88d ] }; class StructureProperties { /** * @return true si les valeurs de StructureType et LoiDebit sont compatibles */ static isCompatibleValues(struct, loi, parentNub) { return parentNub.getLoisAdmissibles()[StructureType[struct]].includes(loi); } /** * @return la 1ère valeur de StructureType compatible avec la loi de débit, dans le contexte * du module de calcul parentNub @TODO la 1ère ? normalement il n'y en a qu'une ! */ static findCompatibleStructure(loi, parentNub) { const loisAdmissibles = parentNub === null || parentNub === void 0 ? void 0 : parentNub.getLoisAdmissibles(); for (const st in loisAdmissibles) { if (loisAdmissibles.hasOwnProperty(st)) { const lds = loisAdmissibles[st]; for (const ld of lds) { if (ld === loi) { return StructureType[st]; } } } } return undefined; } /** * trouve la 1ère valeur de LoiDebit compatible avec le type de structure * @param struct type de structure avec laquelle la loi de débit doit être compatible * @param subset si non vide, recherche la loi de débit compatible dans ce tableau; sinon prend la 1ere */ static findCompatibleLoiDebit(struct, subset, parentNub) { const sst = StructureType[struct]; const lois = parentNub.getLoisAdmissibles(); for (const ld of lois[sst]) { if (subset.length === 0 || subset.includes(ld)) { return ld; } } return undefined; } } exports.StructureProperties = StructureProperties; //# sourceMappingURL=structure_props.js.map