Commit a2ae95f7 authored by Mathias Chouet's avatar Mathias Chouet :spaghetti:
Browse files

Update PAB after rebase

Showing with 22 additions and 29 deletions
+22 -29
...@@ -12,7 +12,7 @@ import { Cloisons, CloisonsParams } from "../../src/structure/cloisons"; ...@@ -12,7 +12,7 @@ import { Cloisons, CloisonsParams } from "../../src/structure/cloisons";
import { RectangularStructureParams } from "../../src/structure/rectangular_structure_params"; import { RectangularStructureParams } from "../../src/structure/rectangular_structure_params";
import { StructureWeirSubmergedLarinier } from "../../src/structure/structure_weir_submerged_larinier"; import { StructureWeirSubmergedLarinier } from "../../src/structure/structure_weir_submerged_larinier";
const dbg: boolean = true; const dbg: boolean = false;
/** /**
* Exemple formation Cassiopée 2018-09 * Exemple formation Cassiopée 2018-09
...@@ -41,7 +41,7 @@ const rectStructPrms = new RectangularStructureParams( ...@@ -41,7 +41,7 @@ const rectStructPrms = new RectangularStructureParams(
); );
// Ajout d'ouvrage dans la cloison // Ajout d'ouvrage dans la cloison
modelCloisons.addStructure(new StructureWeirSubmergedLarinier(rectStructPrms, dbg)); modelCloisons.addChild(new StructureWeirSubmergedLarinier(rectStructPrms, dbg));
// Création de la passe // Création de la passe
......
...@@ -15,8 +15,12 @@ export class Pab extends Nub { ...@@ -15,8 +15,12 @@ export class Pab extends Nub {
return this._prms as PabParams; return this._prms as PabParams;
} }
/** Tableau des cloisons en série */ /**
protected _pabCloisons: PabCloisons[] = []; * enfants castés au bon type
*/
get children(): PabCloisons[] {
return this._children as PabCloisons[];
}
/** /**
* Calcul analytique * Calcul analytique
...@@ -25,7 +29,7 @@ export class Pab extends Nub { ...@@ -25,7 +29,7 @@ export class Pab extends Nub {
public Equation(sVarCalc: string): Result { public Equation(sVarCalc: string): Result {
const r: Result = new Result(0, this); const r: Result = new Result(0, this);
let Z: number = this.prms.Z2.v; let Z: number = this.prms.Z2.v;
for (const cloison of this._pabCloisons) { for (const cloison of this.children) {
cloison.prms.Z2.v = Z; cloison.prms.Z2.v = Z;
cloison.Calc("Z1"); cloison.Calc("Z1");
Z = cloison.prms.Z1.v; Z = cloison.prms.Z1.v;
...@@ -34,23 +38,6 @@ export class Pab extends Nub { ...@@ -34,23 +38,6 @@ export class Pab extends Nub {
return r; return r;
} }
/**
* Ajout d'une cloison en série
* @param structure La structure à rajouter
* @param after position après laquelle insérer la cloison, à la fin sinon
*/
public addChild(pabCloisons: PabCloisons, after?: number) {
if (after !== undefined) {
this._pabCloisons.splice(after + 1, 0, pabCloisons);
} else {
this._pabCloisons.push(pabCloisons);
}
// add reference to parent collection (this)
pabCloisons.parent = this;
// propagate precision
pabCloisons.prms.Pr.setValue(this.prms.Pr.v); // does not write to .v to bypass calculability control
}
/** /**
* paramétrage de la calculabilité des paramètres * paramétrage de la calculabilité des paramètres
*/ */
......
...@@ -6,7 +6,7 @@ import { Pab } from "./pab"; ...@@ -6,7 +6,7 @@ import { Pab } from "./pab";
class PabCloisonsParams extends CloisonsParams { class PabCloisonsParams extends CloisonsParams {
/** Débit entrant à l'amont de la passe (m3/s) */ /** Débit d'attrait d'un bassin (m3/s) */
public QA: ParamDefinition; public QA: ParamDefinition;
/** /**
...@@ -27,6 +27,16 @@ class PabCloisonsParams extends CloisonsParams { ...@@ -27,6 +27,16 @@ class PabCloisonsParams extends CloisonsParams {
modelCloisonsParams.PB.v, modelCloisonsParams.PB.v,
modelCloisonsParams.DH.v modelCloisonsParams.DH.v
); );
this.init(modelCloisonsParams);
// On garde Pr en propre sur cet objet (Pointage impossible car en lecture seule)
this.addParamDefinition(this.Pr, true);
this.QA = new ParamDefinition(this, "QA", ParamDomainValue.ANY, rQA, ParamFamily.FLOWS);
this.addParamDefinition(this.QA);
}
public init(modelCloisonsParams: CloisonsParams) {
this.Q = modelCloisonsParams.Q; this.Q = modelCloisonsParams.Q;
this.Z1 = modelCloisonsParams.Z1; this.Z1 = modelCloisonsParams.Z1;
this.LB = modelCloisonsParams.LB; this.LB = modelCloisonsParams.LB;
...@@ -35,11 +45,6 @@ class PabCloisonsParams extends CloisonsParams { ...@@ -35,11 +45,6 @@ class PabCloisonsParams extends CloisonsParams {
this.DH = modelCloisonsParams.DH; this.DH = modelCloisonsParams.DH;
// Force la MAJ de la map avec les propriétés pointant vers celles de CloisonsParam // Force la MAJ de la map avec les propriétés pointant vers celles de CloisonsParam
this.addParamDefinitions(modelCloisonsParams); this.addParamDefinitions(modelCloisonsParams);
// On garde Pr en propre sur cet objet (Pointage impossible car en lecture seule)
this.addParamDefinition(this.Pr, true);
this.QA = new ParamDefinition(this, "QA", ParamDomainValue.ANY, rQA, ParamFamily.FLOWS);
this.addParamDefinition(this.QA);
} }
} }
...@@ -51,7 +56,7 @@ export class PabCloisons extends Cloisons { ...@@ -51,7 +56,7 @@ export class PabCloisons extends Cloisons {
constructor(modelCloisons: Cloisons, rQA: number = 0, dbg: boolean = false) { constructor(modelCloisons: Cloisons, rQA: number = 0, dbg: boolean = false) {
super(new PabCloisonsParams(modelCloisons.prms, rQA), dbg); super(new PabCloisonsParams(modelCloisons.prms, rQA), dbg);
this._structures = modelCloisons.structures; this._children = modelCloisons.structures;
} }
/** /**
......
...@@ -7,6 +7,7 @@ import { ParallelStructure } from "./parallel_structure"; ...@@ -7,6 +7,7 @@ import { ParallelStructure } from "./parallel_structure";
import { StructureKiviParams } from "./structure_kivi"; import { StructureKiviParams } from "./structure_kivi";
import { loiAdmissiblesCloisons, LoiDebit } from "./structure_props"; import { loiAdmissiblesCloisons, LoiDebit } from "./structure_props";
export { CloisonsParams };
export class Cloisons extends ParallelStructure { export class Cloisons extends ParallelStructure {
constructor(prms: CloisonsParams, dbg: boolean = false) { constructor(prms: CloisonsParams, dbg: boolean = false) {
super(prms, dbg); super(prms, dbg);
......
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