import { ParamCalculability } from "../param/param-definition"; import { RectangularStructureParams } from "./rectangular_structure_params"; import { Structure } from "./structure"; export { RectangularStructureParams }; /** * Classe mère pour toutes les structures ayant une base rectangulaire (vannes, seuils) */ export abstract class RectangularStructure extends Structure { constructor(prms: RectangularStructureParams, dbg: boolean = false) { super(prms, dbg); } /** * paramètres castés au bon type */ get prms(): RectangularStructureParams { return this._prms as RectangularStructureParams; } /** * Calcul de l'aire d'écoulement sur le seuil ou dans l'orifice */ public calcA(): number { return Math.min(Math.max(this.prms.h1.v, this.prms.h2.v), this.W) * this.prms.L.v; } /** * paramétrage de la calculabilité des paramètres */ protected setParametersCalculability() { super.setParametersCalculability(); this.prms.L.calculability = ParamCalculability.DICHO; this.prms.Cd.calculability = ParamCalculability.DICHO; } }