structure_triangular_trunc_weir_free_params.ts 1.62 KiB
import { ParamDefinition, ParamFamily } from "../param/param-definition";
import { ParamDomainValue } from "../param/param-domain";
import { StructureParams } from "./structure_params";
/**
 * Parameters for rectangular structures (common for all rectangular structure equations)
 */
export class TriangularTruncStructureParams extends StructureParams {
    /** Demi-ouverture du triangle (m) */
    public BT: ParamDefinition;
    /** Cote haute du triangle (m) */
    public ZT: ParamDefinition;
    /** Discharge coefficient */
    // tslint:disable-next-line:variable-name
    public Cd: ParamDefinition;
    /**
     * Constructeur d'une structure rectangulaire
     * @param rQ    Débit (m3/s)
     * @param rZDV  Cote de la crête du déversoir ou du radier de la vanne (m)
     * @param rZ1   Cote de l'eau amont (m)
     * @param rBT   Demi-ouverture du triangle (m)
     * @param rZT   Cote haute du triangle (m)
     * @param rCd   Coefficient de débit (-)
     * @param rW    Ouverture de la vanne (m) (Valeur par défaut +infinity pour les déversoirs)
    constructor(
        rQ: number, rZDV: number, rZ1: number,
        rBT: number, rZT: number, rCd: number, rW: number = Infinity
    ) {
        super(rQ, rZDV, rZ1, - Infinity, rW);
        this.BT = new ParamDefinition(this, "BT", ParamDomainValue.POS, rBT);
        this.addParamDefinition(this.BT);
        this.ZT = new ParamDefinition(this, "ZT", ParamDomainValue.POS, rZT, ParamFamily.ELEVATIONS);
        this.addParamDefinition(this.ZT);
        this.Cd = new ParamDefinition(this, "Cd", ParamDomainValue.POS, rCd);
        this.addParamDefinition(this.Cd);