Commit 05fc70f2 authored by Grand Francois's avatar Grand Francois
Browse files

feat: add error message to weir structure when submergence percentage is low (Larinier, Rajaratnam)

refs #302
Showing with 33 additions and 1 deletion
+33 -1
......@@ -74,7 +74,14 @@ export class ParallelStructure extends Nub {
this._result.globalLog.insert(new Message(MessageCode.ERROR_STRUCTURE_AU_MOINS_UNE));
return this._result;
}
return super.CalcSerie(rInit);
const res = super.CalcSerie(rInit);
// check structures submergence for some discharge laws
for (const st of this.structures) {
  • La vérification doit être lancée dans Calc et pas dans CalcSerie sinon ça ne marchera pas si au moins un paramètre varie.

Please register or sign in to reply
st.checkSubmergence();
}
return res;
}
/**
......
......@@ -77,6 +77,26 @@ export abstract class Structure extends ChildNub {
return 100;
}
private checkSubmergenceMin(loi: LoiDebit, min: number) {
if (this.loiDebit === loi) {
Please register or sign in to reply
const h2h1ratio = this.prms.h2.v / this.prms.h1.v;
  • Attention, sauf erreur de ma part, il faut utiliser this.prms.h2.V / this.prms.h1.V pour prendre en compte le résultat du calcul si c'est Z1 ou Z2 qui est calculé.

Please register or sign in to reply
if (h2h1ratio < min) {
this._result.resultElement.addMessage(new Message(
MessageCode.ERROR_STRUCTURE_SUBMERGENCE_LOWER_THAN,
{
submergencePerc: this.computeSubmergencePercentage().toString(),
min: min
}
));
}
}
}
public checkSubmergence() {
  • Je propose plutôt que checkSubmergence soit vide ici et que la méthode soit surchargée uniquement dans les classes où elle est utilisée (StructureWeirSubmergedLarinier et StructureWeirSubmerged).

    De cette façon, on appelle la fonction de vérification que quand c'est nécessaire.

    Edited by Dorchies David
Please register or sign in to reply
this.checkSubmergenceMin(LoiDebit.WeirSubmergedLarinier, 0.5);
this.checkSubmergenceMin(LoiDebit.WeirSubmerged, 0.6);
}
/** Constante utile : Racine de 2g */
protected static readonly R2G: number = Math.sqrt(2 * 9.81);
......
......@@ -512,6 +512,11 @@ export enum MessageCode {
*/
ERROR_STRUCTURE_Z_EGAUX_Q_NON_NUL,
/**
* Structure : l'ennoiement %submergencePerc% est inférieur à %min%
*/
ERROR_STRUCTURE_SUBMERGENCE_LOWER_THAN,
/**
* Il faut au moins un ouvrage dans une structure
*/
......
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