• Mathias Chouet's avatar
    refactor nubs · 7b6e5403
    Mathias Chouet authored
    merged cParamsCanal and ParamsSection
    Structures are now only defined by their LoiDebit (no more StructureType)
    Session : fixed serialization of lately registered Nubs
    Sections are now defined by a CalculatorType and a NodeType
    fixed bug in findFirstSingleParameter
    added tests for session serialisation
    7b6e5403
structure_orifice_submerged.ts 1.86 KiB
import { ParamCalculability } from "../param/param-definition";
import { Structure, StructureFlowMode, StructureFlowRegime } from "../structure/structure";
import { Result } from "../util/result";
import { StructureOrificeSubmergedParams } from "./structure_orifice_submerged_params";
import { LoiDebit } from "./structure_props";
export { StructureOrificeSubmergedParams };
/**
 * Equation classique orifice noyé
export class StructureOrificeSubmerged extends Structure {
    constructor(prms: StructureOrificeSubmergedParams, dbg: boolean = false) {
        super(prms, dbg);
        this._loiDebit = LoiDebit.OrificeSubmerged;
        this._isZDVcalculable = false;
    /**
     * paramètres castés au bon type
    get prms(): StructureOrificeSubmergedParams {
        return this._prms as StructureOrificeSubmergedParams;
    /**
     * Calcul du débit avec l'équation classique d'un orifice 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 * this.prms.S.v * Structure.R2G * Math.sqrt(this.prms.Z1.v - this.prms.Z2.v);
        return new Result(v, this, data);
    public calcA(): number {
        return this.prms.S.v;
    protected getFlowRegime() {
        return StructureFlowRegime.SUBMERGED;
    protected getFlowMode() {
        return StructureFlowMode.ORIFICE;
    /**
     * paramétrage de la calculabilité des paramètres
    protected setParametersCalculability() {
        super.setParametersCalculability();
        this.prms.S.calculability = ParamCalculability.DICHO;
        this.prms.Cd.calculability = ParamCalculability.DICHO;
        this.prms.ZDV.calculability = ParamCalculability.NONE;