UNPKG

jalhyd

Version:

JaLHyd, a Javascript Library for Hydraulics

178 lines 8.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CreateStructure = void 0; // Classes générales sur les structures const internal_modules_1 = require("../internal_modules"); const internal_modules_2 = require("../internal_modules"); // Equations de débit const internal_modules_3 = require("../internal_modules"); const internal_modules_4 = require("../internal_modules"); const internal_modules_5 = require("../internal_modules"); const internal_modules_6 = require("../internal_modules"); const internal_modules_7 = require("../internal_modules"); const internal_modules_8 = require("../internal_modules"); const internal_modules_9 = require("../internal_modules"); const internal_modules_10 = require("../internal_modules"); const internal_modules_11 = require("../internal_modules"); const internal_modules_12 = require("../internal_modules"); const internal_modules_13 = require("../internal_modules"); const internal_modules_14 = require("../internal_modules"); const internal_modules_15 = require("../internal_modules"); const internal_modules_16 = require("../internal_modules"); const internal_modules_17 = require("../internal_modules"); const internal_modules_18 = require("../internal_modules"); const internal_modules_19 = require("../internal_modules"); const internal_modules_20 = require("../internal_modules"); const internal_modules_21 = require("../internal_modules"); const internal_modules_22 = require("../internal_modules"); const internal_modules_23 = require("../internal_modules"); const internal_modules_24 = require("../internal_modules"); const internal_modules_25 = require("../internal_modules"); const internal_modules_26 = require("../internal_modules"); const internal_modules_27 = require("../internal_modules"); const internal_modules_28 = require("../internal_modules"); function CreateStructure(loiDebit, parentNub, dbg = false, nullParams = false) { let ret; const oCd = { SeuilR: 0.4, VanneR: 0.6, VanneRS: 0.8, SeuilT: 1.36 }; const rectStructPrms = new internal_modules_1.RectangularStructureParams(0, // Q 100, // ZDV 102, // Z1 101.5, // Z2 2, // L oCd.SeuilR, // Cd de seuil par défaut 0.5, // W (pour les seuils réglé automatiquement à infinity par w.visible = false) nullParams); const vanLevPrms = new internal_modules_20.StructureVanLevParams(0, 100, 102, 101.5, 0.4, 0.4, 0.5, 99.5, 100.5, undefined, nullParams); // Cd pour une vanne rectangulaire rectStructPrms.CdGR.singleValue = oCd.VanneR; rectStructPrms.CdGRS.singleValue = oCd.VanneRS; // Instanciation of the equation switch (loiDebit) { case internal_modules_2.LoiDebit.WeirCem88d: ret = new internal_modules_22.StructureWeirCem88d(rectStructPrms, dbg); break; case internal_modules_2.LoiDebit.WeirCem88v: ret = new internal_modules_23.StructureWeirCem88v(rectStructPrms, dbg); break; case internal_modules_2.LoiDebit.GateCem88d: ret = new internal_modules_3.StructureGateCem88d(rectStructPrms, dbg); break; case internal_modules_2.LoiDebit.GateCem88v: ret = new internal_modules_4.StructureGateCem88v(rectStructPrms, dbg); break; case internal_modules_2.LoiDebit.GateCunge80: ret = new internal_modules_5.StructureGateCunge80(rectStructPrms, dbg); rectStructPrms.CdCunge.singleValue = 1; break; case internal_modules_2.LoiDebit.WeirCunge80: ret = new internal_modules_24.StructureWeirCunge80(rectStructPrms, dbg); rectStructPrms.CdCunge.singleValue = 1; break; case internal_modules_2.LoiDebit.RectangularOrificeFree: ret = new internal_modules_12.StructureRectangularOrificeFree(rectStructPrms, dbg); break; case internal_modules_2.LoiDebit.RectangularOrificeSubmerged: ret = new internal_modules_13.StructureRectangularOrificeSubmerged(rectStructPrms, dbg); break; case internal_modules_2.LoiDebit.WeirFree: ret = new internal_modules_25.StructureWeirFree(rectStructPrms, dbg); break; case internal_modules_2.LoiDebit.WeirSubmergedLarinier: if (!nullParams) { rectStructPrms.L.singleValue = 0.2; rectStructPrms.CdWSL.singleValue = 0.75; rectStructPrms.ZDV.singleValue = 100; rectStructPrms.h1.singleValue = 2; } ret = new internal_modules_27.StructureWeirSubmergedLarinier(rectStructPrms, dbg); break; case internal_modules_2.LoiDebit.WeirSubmerged: rectStructPrms.CdWS.singleValue = 0.9; ret = new internal_modules_26.StructureWeirSubmerged(rectStructPrms, dbg); break; case internal_modules_2.LoiDebit.KIVI: const structKiviPrm = new internal_modules_7.StructureKiviParams(8.516, // Q 101.5, // ZDV 103, // Z1 102, // Z2 2, // L oCd.SeuilR, // alpha 0.001, // béta 100, // ZRAM : cote Radier Amont nullParams); if (!nullParams) { structKiviPrm.h1.singleValue = 1.5; } ret = new internal_modules_6.StructureKivi(structKiviPrm, dbg); break; case internal_modules_2.LoiDebit.TriangularWeirFree: case internal_modules_2.LoiDebit.TriangularWeirBroad: const structTriangPrms = new internal_modules_18.TriangularStructureParams(0, // Q 100, // ZDV 102, // Z1 100, // Z2 45, // Alpha2 oCd.SeuilT, // Cd pour un seuil triangulaire Infinity, // W = Infinity par défaut pour un seuil nullParams); if (loiDebit === internal_modules_2.LoiDebit.TriangularWeirFree) { ret = new internal_modules_16.StructureTriangularWeir(structTriangPrms, dbg); } else { ret = new internal_modules_17.StructureTriangularWeirBroad(structTriangPrms, dbg); } break; case internal_modules_2.LoiDebit.TriangularTruncWeirFree: const structTriTruncPrms = new internal_modules_15.TriangularTruncStructureParams(0, // Q 100.1, // ZDV 102, // Z1 100.1, // Z2 0.9, // BT 101, // ZT oCd.SeuilT, // Cd pour un seuil triangulaire Infinity, // W = Infinity par défaut pour un seuil nullParams); ret = new internal_modules_14.StructureTriangularTruncWeirFree(structTriTruncPrms, dbg); break; case internal_modules_2.LoiDebit.OrificeSubmerged: ret = new internal_modules_10.StructureOrificeSubmerged(new internal_modules_11.StructureOrificeSubmergedParams(0, // Q 102, // Z1 101.5, // Z2 0.7, // Cd 0.1, // S nullParams), dbg); break; case internal_modules_2.LoiDebit.OrificeFree: ret = new internal_modules_8.StructureOrificeFree(new internal_modules_9.StructureOrificeFreeParams(0, // Q 102, // Z1 101.5, // Z2 0.7, // Cd 0.1, // S 101, // Zco nullParams), dbg); break; case internal_modules_2.LoiDebit.WeirVillemonte: ret = new internal_modules_28.StructureWeirVillemonte(rectStructPrms, dbg); break; case internal_modules_2.LoiDebit.VanLevVillemonte: ret = new internal_modules_21.StructureVanLevVillemonte(vanLevPrms, dbg); break; case internal_modules_2.LoiDebit.VanLevLarinier: if (!nullParams) { vanLevPrms.CdWSL.singleValue = 0.75; } ret = new internal_modules_19.StructureVanLevLarinier(vanLevPrms, dbg); break; default: throw new Error(`type de LoiDebit ${internal_modules_2.LoiDebit[loiDebit]} non pris en charge`); } // set reference to parent if (parentNub) { ret.setParent(parentNub); // Set Structure Type ret.setPropValue("structureType", internal_modules_2.StructureProperties.findCompatibleStructure(loiDebit, parentNub)); } return ret; } exports.CreateStructure = CreateStructure; //# sourceMappingURL=factory_structure.js.map