An error occurred while loading the file. Please try again.
-
Dorchies David authored3adf7866
import { Nub } from "./nub";
import { ParamCalculability, ParamDefinition } from "./param/param-definition";
import { ParamDomainValue } from "./param/param-domain";
import { ParamsEquation } from "./param/params-equation";
import { Result } from "./util/result";
/**
* paramètres pour le calcul Lechapt et Calmon
*/
export class LechaptCalmonParams extends ParamsEquation {
/** 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) {
super();
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);
this.addParamDefinition(this._Q);
this.addParamDefinition(this._D);
this.addParamDefinition(this._J);
this.addParamDefinition(this._Lg);
this.addParamDefinition(this._L);
this.addParamDefinition(this._M);
this.addParamDefinition(this._N);
}
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;
}
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
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
*/
// tslint:disable-next-line:max-classes-per-file
export class LechaptCalmon extends Nub {
constructor(prms: LechaptCalmonParams, dbg: boolean = false) {
super(prms, dbg);
}
/**
* paramètres castés au bon type
*/
get prms(): LechaptCalmonParams {
return this._prms as LechaptCalmonParams;
}
public 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 new Error("LechaptCalmon.Equation() : invalid variable name " + sVarCalc);
}
return new Result(v);
}
/**
* 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;
}
}
141