diff --git a/src/pipe_flow/pl_lechaptcalmon.ts b/src/pipe_flow/pl_lechaptcalmon.ts index 3c531d4657bec917b601e98436a740f59eff0265..698bb7c8120947e500c8c7b720077fa0e73569c8 100644 --- a/src/pipe_flow/pl_lechaptcalmon.ts +++ b/src/pipe_flow/pl_lechaptcalmon.ts @@ -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); } /** diff --git a/src/pipe_flow/pressureloss_law.ts b/src/pipe_flow/pressureloss_law.ts index 889a2c5dcafac643fadf6c6b9f4185be425c0ae1..7b1f3f4cce86a9f2753e4ae7441c24679968c9d7 100644 --- a/src/pipe_flow/pressureloss_law.ts +++ b/src/pipe_flow/pressureloss_law.ts @@ -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; }