Commit e165086c authored by Dorchies David's avatar Dorchies David
Browse files

#30 passage de CheckEquation en méthode statique et modification du domaine de Z1, Z2 et ZDV

Showing with 55 additions and 57 deletions
+55 -57
...@@ -6,42 +6,9 @@ ...@@ -6,42 +6,9 @@
*/ */
// import { describe, expect, it, xdescribe } from "../mock_jasmine"; // import { describe, expect, it, xdescribe } from "../mock_jasmine";
import { Structure, StructureFlowMode, StructureFlowRegime, StructureParams } from "../../src/structure/structure"; import { StructureFlowMode, StructureFlowRegime } from "../../src/structure/structure";
import { Result } from "../../src/util/result";
import { checkResult } from "../test_func"; import { checkResult } from "../test_func";
import { structTest } from "./structure_test";
class StructureTest extends Structure {
constructor(prms: StructureParams, dbg: boolean = false) {
super(prms, dbg);
}
/**
* Test of getFlowMode
*/
public testGetFlowMode() {
this.prms.update_h1h2();
return this.getFlowMode();
}
/**
* Test of getFlowRegime
*/
public testGetFlowRegime() {
this.prms.update_h1h2();
return this.getFlowRegime();
}
public Equation(sVarCalc: string): Result {
this.prms.update_h1h2();
this.CheckEquation(sVarCalc);
return new Result(this.prms.Z1.v - this.prms.Z2.v);
}
}
const structTestPrm: StructureParams = new StructureParams(1, 0, 30, 15);
const structTest: StructureTest = new StructureTest(structTestPrm, false);
describe("Class Structure: ", () => { describe("Class Structure: ", () => {
......
import { Structure, StructureParams } from "../../src/structure/structure";
import { Result } from "../../src/util/result";
class StructureTest extends Structure {
constructor(prms: StructureParams, dbg: boolean = false) {
super(prms, dbg);
}
/**
* Test of getFlowMode
*/
public testGetFlowMode() {
this.prms.update_h1h2();
return this.getFlowMode();
}
/**
* Test of getFlowRegime
*/
public testGetFlowRegime() {
this.prms.update_h1h2();
return this.getFlowRegime();
}
public Equation(sVarCalc: string): Result {
this.prms.update_h1h2();
Structure.CheckEquation(sVarCalc);
return new Result(this.prms.Z1.v - this.prms.Z2.v);
}
}
export const structTestPrm: StructureParams = new StructureParams(1, 0, 30, 15);
export const structTest: StructureTest = new StructureTest(structTestPrm, false);
...@@ -10,6 +10,7 @@ export class RectangularStructureParams extends StructureParams { ...@@ -10,6 +10,7 @@ export class RectangularStructureParams extends StructureParams {
public L: ParamDefinition; public L: ParamDefinition;
/** Discharge coefficient */ /** Discharge coefficient */
// tslint:disable-next-line:variable-name
public Cd: ParamDefinition; public Cd: ParamDefinition;
/** /**
......
...@@ -38,6 +38,13 @@ export enum StructureFlowRegime { ...@@ -38,6 +38,13 @@ export enum StructureFlowRegime {
*/ */
export abstract class Structure extends Nub { export abstract class Structure extends Nub {
/**
* Test générique si VarCalc="Q" pour l'utilisation de Equation
*/
public static CheckEquation(sVarCalc: string) {
if (sVarCalc !== "Q") { throw new Error("Structure.Equation() : invalid parameter name " + sVarCalc); }
}
/** Constante utile : Racine de 2g */ /** Constante utile : Racine de 2g */
protected static readonly R2G: number = Math.sqrt(2 * 9.81); protected static readonly R2G: number = Math.sqrt(2 * 9.81);
...@@ -52,11 +59,6 @@ export abstract class Structure extends Nub { ...@@ -52,11 +59,6 @@ export abstract class Structure extends Nub {
return this._prms as StructureParams; return this._prms as StructureParams;
} }
/**
* Calcul du mode et du régime d'écoulement
*/
public abstract Equation(sVarCalc: string): Result;
/** /**
* Calcul d'une équation quelque soit l'inconnue à calculer. * Calcul d'une équation quelque soit l'inconnue à calculer.
* Gestion du débit nul et de l'inversion de débit * Gestion du débit nul et de l'inversion de débit
...@@ -164,11 +166,4 @@ export abstract class Structure extends Nub { ...@@ -164,11 +166,4 @@ export abstract class Structure extends Nub {
return StructureFlowRegime.SUBMERGED; return StructureFlowRegime.SUBMERGED;
} }
} }
/**
* Test générique si VarCalc="Q" pour l'utilisation de Equation
*/
protected CheckEquation(sVarCalc: string) {
if (sVarCalc !== "Q") { throw new Error("Structure.Equation() : invalid parameter name " + sVarCalc); }
}
} }
...@@ -15,7 +15,7 @@ export class StructureCem88d extends RectangularStructure { ...@@ -15,7 +15,7 @@ export class StructureCem88d extends RectangularStructure {
* @param sVarCalc Variable à calculer (doit être "Q") * @param sVarCalc Variable à calculer (doit être "Q")
*/ */
public Equation(sVarCalc: string): Result { public Equation(sVarCalc: string): Result {
super.CheckEquation(sVarCalc); Structure.CheckEquation(sVarCalc);
const data = super.defaultResultData(); const data = super.defaultResultData();
let v: number; let v: number;
......
...@@ -15,7 +15,7 @@ export class StructureCem88v extends RectangularStructure { ...@@ -15,7 +15,7 @@ export class StructureCem88v extends RectangularStructure {
* @param sVarCalc Variable à calculer (doit être "Q") * @param sVarCalc Variable à calculer (doit être "Q")
*/ */
public Equation(sVarCalc: string): Result { public Equation(sVarCalc: string): Result {
super.CheckEquation(sVarCalc); Structure.CheckEquation(sVarCalc);
const data = super.defaultResultData(); const data = super.defaultResultData();
let v: number; let v: number;
......
...@@ -14,7 +14,7 @@ export class StructureCunge80 extends RectangularStructure { ...@@ -14,7 +14,7 @@ export class StructureCunge80 extends RectangularStructure {
* @param sVarCalc Variable à calculer (doit être égale à Q ici) * @param sVarCalc Variable à calculer (doit être égale à Q ici)
*/ */
public Equation(sVarCalc: string): Result { public Equation(sVarCalc: string): Result {
super.CheckEquation(sVarCalc); Structure.CheckEquation(sVarCalc);
const data = super.defaultResultData(); const data = super.defaultResultData();
let v: number; let v: number;
......
...@@ -14,7 +14,7 @@ export class StructureOrificeFree extends RectangularStructure { ...@@ -14,7 +14,7 @@ export class StructureOrificeFree extends RectangularStructure {
* @param sVarCalc Variable à calculer (doit être égale à Q ici) * @param sVarCalc Variable à calculer (doit être égale à Q ici)
*/ */
public Equation(sVarCalc: string): Result { public Equation(sVarCalc: string): Result {
super.CheckEquation(sVarCalc); Structure.CheckEquation(sVarCalc);
const data = super.defaultResultData(); const data = super.defaultResultData();
// TODO : Warning si les conditions hydrauliques ne correspondent pas à un écoulement dénoyé // TODO : Warning si les conditions hydrauliques ne correspondent pas à un écoulement dénoyé
......
...@@ -14,7 +14,7 @@ export class StructureOrificeSubmerged extends RectangularStructure { ...@@ -14,7 +14,7 @@ export class StructureOrificeSubmerged extends RectangularStructure {
* @param sVarCalc Variable à calculer (doit être égale à Q ici) * @param sVarCalc Variable à calculer (doit être égale à Q ici)
*/ */
public Equation(sVarCalc: string): Result { public Equation(sVarCalc: string): Result {
super.CheckEquation(sVarCalc); Structure.CheckEquation(sVarCalc);
const data = super.defaultResultData(); const data = super.defaultResultData();
// TODO : Warning si les conditions hydrauliques ne correspondent pas à un écoulement dénoyé // TODO : Warning si les conditions hydrauliques ne correspondent pas à un écoulement dénoyé
......
...@@ -38,13 +38,13 @@ export class StructureParams extends ParamsEquation { ...@@ -38,13 +38,13 @@ export class StructureParams extends ParamsEquation {
*/ */
constructor(rQ: number, rZDV: number, rZ1: number, rZ2: number, rW: number = Infinity ) { constructor(rQ: number, rZDV: number, rZ1: number, rZ2: number, rW: number = Infinity ) {
super(); super();
this.Q = new ParamDefinition(ComputeNodeType.CondDistri, "Q", ParamDomainValue.POS_NULL, rQ); this.Q = new ParamDefinition(ComputeNodeType.CondDistri, "Q", ParamDomainValue.ANY, rQ);
this.addParamDefinition(this.Q); this.addParamDefinition(this.Q);
this.ZDV = new ParamDefinition(ComputeNodeType.CondDistri, "ZDV", ParamDomainValue.POS_NULL, rZDV); this.ZDV = new ParamDefinition(ComputeNodeType.CondDistri, "ZDV", ParamDomainValue.ANY, rZDV);
this.addParamDefinition(this.ZDV); this.addParamDefinition(this.ZDV);
this.Z1 = new ParamDefinition(ComputeNodeType.CondDistri, "Z1", ParamDomainValue.POS_NULL, rZ1); this.Z1 = new ParamDefinition(ComputeNodeType.CondDistri, "Z1", ParamDomainValue.ANY, rZ1);
this.addParamDefinition(this.Z1); this.addParamDefinition(this.Z1);
this.Z2 = new ParamDefinition(ComputeNodeType.CondDistri, "Z2", ParamDomainValue.POS_NULL, rZ2); this.Z2 = new ParamDefinition(ComputeNodeType.CondDistri, "Z2", ParamDomainValue.ANY, rZ2);
this.addParamDefinition(this.Z2); this.addParamDefinition(this.Z2);
this.h1 = new ParamDefinition(ComputeNodeType.CondDistri, "h1", ParamDomainValue.POS_NULL, this.h1 = new ParamDefinition(ComputeNodeType.CondDistri, "h1", ParamDomainValue.POS_NULL,
Math.max(0, this.Z1.v - this.ZDV.v)); Math.max(0, this.Z1.v - this.ZDV.v));
......
...@@ -14,7 +14,7 @@ export class StructureWeirFree extends RectangularStructure { ...@@ -14,7 +14,7 @@ export class StructureWeirFree extends RectangularStructure {
* @param sVarCalc Variable à calculer (doit être "Q") * @param sVarCalc Variable à calculer (doit être "Q")
*/ */
public Equation(sVarCalc: string): Result { public Equation(sVarCalc: string): Result {
super.CheckEquation(sVarCalc); Structure.CheckEquation(sVarCalc);
const data = super.defaultResultData(); const data = super.defaultResultData();
// TODO : Warning si les conditions hydrauliques ne correspondent pas à un seuil dénoyé // TODO : Warning si les conditions hydrauliques ne correspondent pas à un seuil dénoyé
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment