An error occurred while loading the file. Please try again.
-
Grand Francois authored
- classe Result : remplacement du membre _message par un cLog (ensemble de Message)
c3dab5cc
import { Result } from "./util/result";
import { ComputeNodeType, ParamDefinition, ParamDomain, ParamDomainValue, ParamCalculability, ParamsEquation } from "./param";
import { Nub } from "./nub";
/**
* 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(ComputeNodeType.LechaptCalmon, 'Q', ParamDomainValue.POS, rQ);
this._D = new ParamDefinition(ComputeNodeType.LechaptCalmon, 'D', ParamDomainValue.POS, rD);
this._J = new ParamDefinition(ComputeNodeType.LechaptCalmon, 'J', ParamDomainValue.POS, rJ);
this._Lg = new ParamDefinition(ComputeNodeType.LechaptCalmon, 'Lg', ParamDomainValue.POS, rLg);
this._L = new ParamDefinition(ComputeNodeType.LechaptCalmon, 'L', ParamDomainValue.POS, rL);
this._M = new ParamDefinition(ComputeNodeType.LechaptCalmon, 'M', ParamDomainValue.POS, rM);
this._N = new ParamDefinition(ComputeNodeType.LechaptCalmon, '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;
}
get M() {
return this._M;
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
}
get N() {
return this._N;
}
}
/**
* Calcul des pertes de charge dans un tube à partir des tables de Lechapt et Calmon
*/
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);
}
}