jalhyd
Version:
JaLHyd, a Javascript Library for Hydraulics
169 lines • 7.22 kB
JavaScript
;
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