rectangular_structure.ts 1.32 KB
Newer Older
1
import { ParamCalculability } from "../param/param-definition";
2
3
import { RectangularStructureParams } from "./rectangular_structure_params";
import { Structure } from "./structure";
4

Dorchies David's avatar
Dorchies David committed
5
6
7
/**
 * Classe mère pour toutes les structures ayant une base rectangulaire (vannes, seuils)
 */
8
export abstract class RectangularStructure extends Structure {
9

10
11
    constructor(prms: RectangularStructureParams, dbg: boolean = false) {
        super(prms, dbg);
12
13
        this.prms.CdGR.visible = false;
        this.prms.CdWR.visible = false;
14
        this.prms.CdWS.visible = false;
15
        this.prms.CdWSL.visible = false;
16
    }
17
18
19
20
21

    /**
     * paramètres castés au bon type
     */
    get prms(): RectangularStructureParams {
22
        return this._prms as RectangularStructureParams;
23
24
    }

25
26
27
28
    /**
     * Calcul de l'aire d'écoulement sur le seuil ou dans l'orifice
     */
    public calcA(): number {
Dorchies David's avatar
Dorchies David committed
29
            return Math.min(Math.max(this.prms.h1.v, this.prms.h2.v), this.W) * this.prms.L.v;
30
31
    }

32
33
34
35
36
37
    /**
     * paramétrage de la calculabilité des paramètres
     */
    protected setParametersCalculability() {
        super.setParametersCalculability();
        this.prms.L.calculability = ParamCalculability.DICHO;
38
39
        this.prms.CdGR.calculability = ParamCalculability.DICHO;
        this.prms.CdWR.calculability = ParamCalculability.DICHO;
40
    }
41

42
}