An error occurred while loading the file. Please try again.
-
Mathias Chouet authoreda9dfdc1e
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;
}
}