Skip to content
Snippets Groups Projects
Commit d08145c7 authored by François Grand's avatar François Grand
Browse files

refactor: pressure loss: move speed check to PL_LechaptCalmon

refs #334
parent 299a0d84
No related branches found
No related tags found
No related merge requests found
......@@ -91,8 +91,11 @@ export class PL_LechaptCalmon extends PressureLossLaw implements Observer {
this.properties.setPropValue("material", m);
}
protected calc_Jlin(): number {
return this.prms.L.v * Math.pow(this.prms.Q.v, this.prms.M.v) / Math.pow(this.prms.D.v, this.prms.N.v) * (this.prms.Lg.v / 1000);
protected calc_Jlin(r: Result) {
if (r.values.V < 0.4 || r.values.V > 2) {
r.resultElement.log.add(new Message(MessageCode.WARNING_LECHAPT_CALMON_SPEED_OUTSIDE_04_2));
}
r.values.Jl = this.prms.L.v * Math.pow(this.prms.Q.v, this.prms.M.v) / Math.pow(this.prms.D.v, this.prms.N.v) * (this.prms.Lg.v / 1000);
}
/**
......
......@@ -3,7 +3,7 @@ import { Result } from "../internal_modules";
import { Message, MessageCode } from "../internal_modules";
/**
* Loi de perte de charge
* Lois de perte de charge
*/
export enum PressureLossType {
LechaptCalmon
......@@ -28,24 +28,25 @@ export abstract class PressureLossLaw extends Nub {
}
/**
* calcul de la perte de charge linéaire spécifique à chaque mdule de perte de charge
* Calcul de la perte de charge linéaire spécifique à chaque module de perte de charge.
* Le paramètre Result est in-out cad qu'il est modifié avec la charge linéaire.
*/
protected abstract calc_Jlin(): number;
protected abstract calc_Jlin(r: Result): any;
public Equation(sVarCalc: string): Result {
if (sVarCalc !== "J") {
throw new Error("LechaptCalmon.Equation() : invalid variable name " + sVarCalc);
throw new Error("PressureLossLaw.Equation() : invalid variable name " + sVarCalc);
}
const r: Result = new Result(0, this);
// la vitesse est générique
r.values.V = this.prms.Q.v / (Math.PI * Math.pow(this.prms.D.v / 2, 2));
if (r.values.V < 0.4 || r.values.V > 2) {
r.resultElement.log.add(new Message(MessageCode.WARNING_LECHAPT_CALMON_SPEED_OUTSIDE_04_2));
}
r.values.Jl = this.calc_Jlin();
r.vCalc = r.values.Jl + this.prms.Kloc.v / 19.62 * Math.pow(r.values.V, 2);
// perte de charge linéaire propré à chaque module
this.calc_Jlin(r);
r.vCalc = r.values.Jl + this.prms.Kloc.v / 19.62 * Math.pow(r.values.V, 2); // perte de charge totale
return r;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment