An error occurred while loading the file. Please try again.
-
Grand Francois authoredfdd6ea4e
import { Result } from "./base";
import { ParamDefinition, ParamDomain, ParamDomainValue, ParamCalculability, IParamsEquation } from "./param";
import { Nub } from "./nub";
/**
* paramètres pour le calcul Lechapt et Calmon
*/
export class LechaptCalmonParams implements IParamsEquation {
/** Débit */
private _Q: ParamDefinition;
/** Diamètre */
private _D: ParamDefinition;
/** Perte de charge */
private _J: ParamDefinition;
/** Longueur de la conduite */
private _Lg: ParamDefinition;
/** Paramètre de rugosité L */
private _L: ParamDefinition;
/** Paramètre de rugosité M */
private _M: ParamDefinition;
/** Paramètre de rugosité N */
private _N: ParamDefinition;
constructor(rQ: number, rD: number, rJ: number, rLg: number, rL: number, rM: number, rN: number) {
this._Q = new ParamDefinition('Q', ParamDomainValue.POS, rQ);
this._D = new ParamDefinition('D', ParamDomainValue.POS, rD);
this._J = new ParamDefinition('J', ParamDomainValue.POS, rJ);
this._Lg = new ParamDefinition('Lg', ParamDomainValue.POS, rLg);
this._L = new ParamDefinition('L', ParamDomainValue.POS, rL);
this._M = new ParamDefinition('M', ParamDomainValue.POS, rM);
this._N = new ParamDefinition('N', ParamDomainValue.POS, rN);
}
get Q() {
return this._Q;
}
get D() {
return this._D;
}
get J() {
return this._J;
}
get Lg() {
return this._Lg;
}
get L() {
return this._L;
}
get M() {
return this._M;
}
get N() {
return this._N;
}
}
/**
* Calcul des pertes de charge dans un tube à partir des tables de Lechapt et Calmon
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
*/
export class LechaptCalmon extends Nub {
constructor(prms: LechaptCalmonParams, dbg: boolean = false) {
super(prms, dbg);
}
/**
* paramétrage de la calculabilité des paramètres
*/
protected setParametersCalculability() {
this.prms.Q.calculability = ParamCalculability.EQUATION;
this.prms.D.calculability = ParamCalculability.EQUATION;
this.prms.J.calculability = ParamCalculability.EQUATION;
this.prms.Lg.calculability = ParamCalculability.EQUATION;
this.prms.L.calculability = ParamCalculability.FREE;
this.prms.M.calculability = ParamCalculability.FREE;
this.prms.N.calculability = ParamCalculability.FREE;
}
/**
* paramètres castés au bon type
*/
get prms(): LechaptCalmonParams {
return <LechaptCalmonParams>this._prms;
}
Equation(sVarCalc: string): Result {
let v: number;
switch (sVarCalc) {
case "Q":
v = Math.pow((((this.prms.J.v * Math.pow(this.prms.D.v, this.prms.N.v)) / this.prms.L.v) * (1000 / this.prms.Lg.v)), 1 / this.prms.M.v);
break;
case "D":
v = Math.pow((((this.prms.L.v * Math.pow(this.prms.Q.v, this.prms.M.v)) / this.prms.J.v) * (this.prms.Lg.v / 1000)), 1 / this.prms.N.v);
break
case "J":
v = ((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);
break;
case "Lg":
v = ((this.prms.J.v * Math.pow(this.prms.D.v, this.prms.N.v)) / (this.prms.L.v * Math.pow(this.prms.Q.v, this.prms.M.v))) * 1000;
break;
default:
throw "LechaptCalmon.Equation() : invalid variable name " + sVarCalc;
}
return new Result(v);
}
}