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

5
export { RectangularStructureParams };
6

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

12
13
    constructor(prms: RectangularStructureParams, dbg: boolean = false) {
        super(prms, dbg);
14
    }
15
16
17
18
19

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

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

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;
        this.prms.Cd.calculability = ParamCalculability.DICHO;
    }
38

39
}