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 { Result } from "../util/result";
import { Structure, StructureFlowMode, StructureFlowRegime } from "./structure";
import { LoiDebit } from "./structure_props";
import { TriangularStructureParams } from "./structure_triangular_weir_free_params";
export { TriangularStructureParams };
/**
* Equation classique seuil triangulaire dénoyé
*/
export class StructureTriangularWeirFree extends Structure {
constructor(prms: TriangularStructureParams, dbg: boolean = false) {
super(prms, dbg);
this._loiDebit = LoiDebit.TriangularWeirFree;
}
/**
* paramètres castés au bon type
*/
get prms(): TriangularStructureParams {
return this._prms as TriangularStructureParams;
}
/**
* Calcul analytique Q = f(Cd, L, h1, h2, W) seuil dénoyé
* @param sVarCalc Variable à calculer (doit être "Q")
*/
public Equation(sVarCalc: string): Result {
Structure.CheckEquation(sVarCalc);
const data = this.getResultData();
const v = this.prms.Cd.v * this.getTanFromDegrees(this.prms.alpha2.v)
* Math.pow(this.prms.h1.v, 2.5);
return new Result(v, this, data);
}
/**
* Calcul de l'aire d'écoulement sur le seuil
*/
public calcA(): number {
return Math.pow(Math.max(this.prms.h1.v, this.prms.h2.v), 2) * this.getTanFromDegrees(this.prms.alpha2.v);
}
protected getFlowRegime() {
return StructureFlowRegime.FREE;
}
protected getFlowMode() {
return StructureFlowMode.WEIR;
}
/**
* Compute Tangent with angle in degrees
* @param degrees Angle (degrees)
*/
protected getTanFromDegrees(degrees: number) {
return Math.tan(degrees * Math.PI / 180);
}
/**
* paramétrage de la calculabilité des paramètres
*/
protected setParametersCalculability() {
super.setParametersCalculability();
this.prms.alpha2.calculability = ParamCalculability.DICHO;
this.prms.Cd.calculability = ParamCalculability.DICHO;
}
7172
}