pab_cloisons.ts 2.52 KiB
import { ParamCalculability, ParamDefinition, ParamFamily} from "../param/param-definition";
import { ParamDomainValue } from "../param/param-domain";
import { ParamsEquation } from "../param/params-equation";
import { Cloisons, CloisonsParams } from "../structure/cloisons";
import { Pab } from "./pab";
class PabCloisonsParams extends CloisonsParams {
   /** Débit d'attrait d'un bassin (m3/s) */
   public QA: ParamDefinition;
    /**
     * Paramètres communs à toutes les équations de structure
     * @param rQ Débit total (m3/s)
     * @param rZ1 Cote de l'eau amont (m)
     * @param rLB Longueur des bassins (m)
     * @param rBB Largeur des bassins (m)
     * @param rPB Profondeur moyenne (m)
     * @param rDH Hauteur de chute (m)
    constructor(modelCloisonsParams: CloisonsParams, rQA: number = 0) {
        super(
            modelCloisonsParams.Q.v,
            modelCloisonsParams.Z1.v,
            modelCloisonsParams.LB.v,
            modelCloisonsParams.BB.v,
            modelCloisonsParams.PB.v,
            modelCloisonsParams.DH.v
        this.init(modelCloisonsParams);
        // On garde Pr en propre sur cet objet (Pointage impossible car en lecture seule)
        this.addParamDefinition(this.Pr, true);
        this.QA = new ParamDefinition(this, "QA", ParamDomainValue.ANY, rQA, ParamFamily.FLOWS);
        this.addParamDefinition(this.QA);
    public init(modelCloisonsParams: CloisonsParams) {
        this.Q = modelCloisonsParams.Q;
        this.Z1 = modelCloisonsParams.Z1;
        this.LB = modelCloisonsParams.LB;
        this.BB = modelCloisonsParams.BB;
        this.PB = modelCloisonsParams.PB;
        this.DH = modelCloisonsParams.DH;
        // Force la MAJ de la map avec les propriétés pointant vers celles de CloisonsParam
        this.addParamDefinitions(modelCloisonsParams);
// tslint:disable-next-line:max-classes-per-file
export class PabCloisons extends Cloisons {
    public parent: Pab;
    constructor(modelCloisons: Cloisons, rQA: number = 0, dbg: boolean = false) {
        super(new PabCloisonsParams(modelCloisons.prms, rQA), dbg);
        this._children = modelCloisons.structures;
    /**
     * paramètres castés au bon type
    get prms(): PabCloisonsParams {
        return this._prms as PabCloisonsParams;
    /**
     * paramétrage de la calculabilité des paramètres
7172737475767778
*/ protected setParametersCalculability() { super.setParametersCalculability(); this.prms.QA.calculability = ParamCalculability.FREE; } }