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 @@
*/
// import { describe, expect, it, xdescribe } from "../mock_jasmine";
import { Structure, StructureFlowMode, StructureFlowRegime, StructureParams } from "../../src/structure/structure";
import { Result } from "../../src/util/result";
import { StructureFlowMode, StructureFlowRegime } from "../../src/structure/structure";
import { checkResult } from "../test_func";
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);
import { structTest } from "./structure_test";
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 {
public L: ParamDefinition;
/** Discharge coefficient */
// tslint:disable-next-line:variable-name
public Cd: ParamDefinition;
/**
......
......@@ -38,6 +38,13 @@ export enum StructureFlowRegime {
*/
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 */
protected static readonly R2G: number = Math.sqrt(2 * 9.81);
......@@ -52,11 +59,6 @@ export abstract class Structure extends Nub {
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.
* Gestion du débit nul et de l'inversion de débit
......@@ -164,11 +166,4 @@ export abstract class Structure extends Nub {
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 {
* @param sVarCalc Variable à calculer (doit être "Q")
*/
public Equation(sVarCalc: string): Result {
super.CheckEquation(sVarCalc);
Structure.CheckEquation(sVarCalc);
const data = super.defaultResultData();
let v: number;
......
......@@ -15,7 +15,7 @@ export class StructureCem88v extends RectangularStructure {
* @param sVarCalc Variable à calculer (doit être "Q")
*/
public Equation(sVarCalc: string): Result {
super.CheckEquation(sVarCalc);
Structure.CheckEquation(sVarCalc);
const data = super.defaultResultData();
let v: number;
......
......@@ -14,7 +14,7 @@ export class StructureCunge80 extends RectangularStructure {
* @param sVarCalc Variable à calculer (doit être égale à Q ici)
*/
public Equation(sVarCalc: string): Result {
super.CheckEquation(sVarCalc);
Structure.CheckEquation(sVarCalc);
const data = super.defaultResultData();
let v: number;
......
......@@ -14,7 +14,7 @@ export class StructureOrificeFree extends RectangularStructure {
* @param sVarCalc Variable à calculer (doit être égale à Q ici)
*/
public Equation(sVarCalc: string): Result {
super.CheckEquation(sVarCalc);
Structure.CheckEquation(sVarCalc);
const data = super.defaultResultData();
// TODO : Warning si les conditions hydrauliques ne correspondent pas à un écoulement dénoyé
......
......@@ -14,7 +14,7 @@ export class StructureOrificeSubmerged extends RectangularStructure {
* @param sVarCalc Variable à calculer (doit être égale à Q ici)
*/
public Equation(sVarCalc: string): Result {
super.CheckEquation(sVarCalc);
Structure.CheckEquation(sVarCalc);
const data = super.defaultResultData();
// TODO : Warning si les conditions hydrauliques ne correspondent pas à un écoulement dénoyé
......
......@@ -38,13 +38,13 @@ export class StructureParams extends ParamsEquation {
*/
constructor(rQ: number, rZDV: number, rZ1: number, rZ2: number, rW: number = Infinity ) {
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.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.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.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.h1 = new ParamDefinition(ComputeNodeType.CondDistri, "h1", ParamDomainValue.POS_NULL,
Math.max(0, this.Z1.v - this.ZDV.v));
......
......@@ -14,7 +14,7 @@ export class StructureWeirFree extends RectangularStructure {
* @param sVarCalc Variable à calculer (doit être "Q")
*/
public Equation(sVarCalc: string): Result {
super.CheckEquation(sVarCalc);
Structure.CheckEquation(sVarCalc);
const data = super.defaultResultData();
// 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