Commit 35c57c6f authored by Dorchies David's avatar Dorchies David
Browse files

#28 Ajout de la loi de la fente noyée (Larinier 1992)

Showing with 43 additions and 3 deletions
+43 -3
...@@ -12,7 +12,7 @@ import { LoiDebit, StructureProperties, StructureType } from "./structure_props" ...@@ -12,7 +12,7 @@ import { LoiDebit, StructureProperties, StructureType } from "./structure_props"
import { StructureTriangularTruncWeirFree, TriangularTruncStructureParams } from "./structure_triangular_trunc_weir_free"; import { StructureTriangularTruncWeirFree, TriangularTruncStructureParams } from "./structure_triangular_trunc_weir_free";
import { StructureTriangularWeirFree, TriangularStructureParams } from "./structure_triangular_weir_free"; import { StructureTriangularWeirFree, TriangularStructureParams } from "./structure_triangular_weir_free";
import { StructureWeirFree } from "./structure_weir_free"; import { StructureWeirFree } from "./structure_weir_free";
import { StructureWeirSubmergedLarinier } from "./structure_weir_submerged_larinier";
export function CreateStructure(structureType: StructureType, loiDebit: LoiDebit, dbg: boolean = false): Structure { export function CreateStructure(structureType: StructureType, loiDebit: LoiDebit, dbg: boolean = false): Structure {
const oCd: {[s: string]: number} = {SeuilR: 0.4, VanneR: 0.6, SeuilT: 1.36}; const oCd: {[s: string]: number} = {SeuilR: 0.4, VanneR: 0.6, SeuilT: 1.36};
...@@ -71,6 +71,9 @@ export function CreateStructure(structureType: StructureType, loiDebit: LoiDebit ...@@ -71,6 +71,9 @@ export function CreateStructure(structureType: StructureType, loiDebit: LoiDebit
case LoiDebit.WeirFree: case LoiDebit.WeirFree:
return new StructureWeirFree(rectStructPrms, dbg); return new StructureWeirFree(rectStructPrms, dbg);
case LoiDebit.WeirSubmergedLarinier:
return new StructureWeirSubmergedLarinier(rectStructPrms, dbg);
case LoiDebit.KIVI: case LoiDebit.KIVI:
const structKiviPrm: StructureKiviParams = new StructureKiviParams( const structKiviPrm: StructureKiviParams = new StructureKiviParams(
8.516, // Q 8.516, // Q
......
...@@ -22,13 +22,15 @@ export enum LoiDebit { ...@@ -22,13 +22,15 @@ export enum LoiDebit {
// Loi de débit seuil triangulaire dénoyé // Loi de débit seuil triangulaire dénoyé
TriangularWeirFree, TriangularWeirFree,
// Loi de débit seuil triangulaire tronqué // Loi de débit seuil triangulaire tronqué
TriangularTruncWeirFree TriangularTruncWeirFree,
// Loi de débit seuil noyé (Larinier 1992)
WeirSubmergedLarinier
} }
export const loiAdmissibles: { [key: string]: LoiDebit[] } = { export const loiAdmissibles: { [key: string]: LoiDebit[] } = {
SeuilRectangulaire: [ SeuilRectangulaire: [
LoiDebit.Cem88d, LoiDebit.Cem88v, LoiDebit.Cunge80, LoiDebit.WeirFree, LoiDebit.Cem88d, LoiDebit.Cem88v, LoiDebit.Cunge80, LoiDebit.WeirFree,
LoiDebit.KIVI LoiDebit.KIVI, LoiDebit.WeirSubmergedLarinier
], ],
SeuilTriangulaire: [ SeuilTriangulaire: [
LoiDebit.TriangularWeirFree LoiDebit.TriangularWeirFree
......
import { Result } from "../util/result";
import { RectangularStructure } from "./rectangular_structure";
import { RectangularStructureParams } from "./rectangular_structure_params";
import { Structure, StructureFlowMode, StructureFlowRegime } from "./structure";
export { RectangularStructureParams };
/**
* Equation de la fente noyé
* d'après Larinier, M., Travade, F., Porcher, J.-P., Gosset, C., 1992.
* Passes à poissons : expertise et conception des ouvrages de franchissement
*/
export class StructureWeirSubmergedLarinier extends RectangularStructure {
/**
* 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.prms.L.v * Structure.R2G
* this.prms.h1.v * Math.sqrt(this.prms.h1.v - this.prms.h2.v);
return new Result(v, data);
}
protected getFlowRegime() {
return StructureFlowRegime.SUBMERGED;
}
protected getFlowMode() {
return StructureFlowMode.WEIR;
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment