import { Result } from "../util/result"; import { RectangularStructure } from "./rectangular_structure"; import { RectangularStructureParams } from "./rectangular_structure_params"; import { Structure, StructureFlowRegime } from "./structure"; import { LoiDebit } from "./structure_props"; export { RectangularStructureParams }; /** * Equation classique orifice dénoyé ("Vanne dénoyé") */ export class StructureRectangularOrificeFree extends RectangularStructure { constructor(prms: RectangularStructureParams, dbg: boolean = false) { super(prms, dbg); this._loiDebit = LoiDebit.RectangularOrificeFree; this.prms.W.visible = true; } /** * Calcul du débit avec l'équation classique d'un orifice dénoyé * @param sVarCalc Variable à calculer (doit être égale à Q ici) */ public Equation(sVarCalc: string): Result { Structure.CheckEquation(sVarCalc); const data = this.getResultData(); const v = this.prms.Cd.v * Math.min(this.prms.W.v, this.prms.h1.v) * this.prms.L.v * Structure.R2G * Math.sqrt(this.prms.h1.v); return new Result(v, this, data); } protected getFlowRegime() { return StructureFlowRegime.FREE; } }