An error occurred while loading the file. Please try again.
-
Mathias Chouet authored
merged cParamsCanal and ParamsSection Structures are now only defined by their LoiDebit (no more StructureType) Session : fixed serialization of lately registered Nubs Sections are now defined by a CalculatorType and a NodeType fixed bug in findFirstSingleParameter added tests for session serialisation
7b6e5403
import { ParamCalculability } from "../param/param-definition";
import { Structure, StructureFlowMode, StructureFlowRegime } from "../structure/structure";
import { Result } from "../util/result";
import { StructureOrificeSubmergedParams } from "./structure_orifice_submerged_params";
import { LoiDebit } from "./structure_props";
export { StructureOrificeSubmergedParams };
/**
* Equation classique orifice noyé
*/
export class StructureOrificeSubmerged extends Structure {
constructor(prms: StructureOrificeSubmergedParams, dbg: boolean = false) {
super(prms, dbg);
this._loiDebit = LoiDebit.OrificeSubmerged;
this._isZDVcalculable = false;
}
/**
* paramètres castés au bon type
*/
get prms(): StructureOrificeSubmergedParams {
return this._prms as StructureOrificeSubmergedParams;
}
/**
* Calcul du débit avec l'équation classique d'un orifice noyé
* @param sVarCalc Variable à calculer (doit être égale à Q ici)
*/
public Equation(sVarCalc: string): Result {
Structure.CheckEquation(sVarCalc);
const data = this.getResultData();
const v = this.prms.Cd.v * this.prms.S.v * Structure.R2G * Math.sqrt(this.prms.Z1.v - this.prms.Z2.v);
return new Result(v, this, data);
}
public calcA(): number {
return this.prms.S.v;
}
protected getFlowRegime() {
return StructureFlowRegime.SUBMERGED;
}
protected getFlowMode() {
return StructureFlowMode.ORIFICE;
}
/**
* paramétrage de la calculabilité des paramètres
*/
protected setParametersCalculability() {
super.setParametersCalculability();
this.prms.S.calculability = ParamCalculability.DICHO;
this.prms.Cd.calculability = ParamCalculability.DICHO;
this.prms.ZDV.calculability = ParamCalculability.NONE;
}
}