diff --git a/src/param.ts b/src/param.ts index 670a6ff4961536edb13d274befa75a17644d9a45..491cccbbcb67450b65ddf92999d87c0ce14eedc8 100644 --- a/src/param.ts +++ b/src/param.ts @@ -364,9 +364,11 @@ export interface IParamsEquation { * type de noeud de calcul */ export enum ComputeNodeType { - CondDistri, RegimeUniforme, LechaptCalmon, + CondDistri, LechaptCalmon, SectionParametree, // paramètres communs à toutes les sections paramétrées SectionTrapeze, SectionRectangle, SectionCercle, SectionPuissance, + RegimeUniforme, // paramètres communs à toutes les sections paramétrées + RegimeUniformeTrapeze, RegimeUniformeRectangle, RegimeUniformeCercle, RegimeUniformePuissance, Test } diff --git a/src/parameters.ts b/src/parameters.ts index 37a196a25696b57d47c125e418d72b55bb25e94a..8eddc2f079f363628166f146ae9bc07aa54ed33a 100644 --- a/src/parameters.ts +++ b/src/parameters.ts @@ -6,6 +6,7 @@ import { ParamsSectionTrapez, cSnTrapez } from "./section/section_trapez"; import { ParamsSectionRectang, cSnRectang } from "./section/section_rectang"; import { ParamsSectionCirc, cSnCirc } from "./section/section_circulaire"; import { ParamsSectionPuiss, cSnPuiss } from "./section/section_puissance"; +import { RegimeUniforme } from "./regime_uniforme"; export class ComputeNodeParameters { private static _instance: ComputeNodeParameters; @@ -62,6 +63,49 @@ export class ComputeNodeParameters { return cn; } + case ComputeNodeType.RegimeUniformeTrapeze: + { + let cn = new ParamsSectionTrapez(undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, undefined, + ComputeNodeType.RegimeUniformeTrapeze, + ComputeNodeType.RegimeUniforme); + let n = new cSnTrapez(undefined, cn); + let ru = new RegimeUniforme(n); // pour initialiser la calculabilité des paramètres + return cn; + } + + case ComputeNodeType.RegimeUniformeRectangle: + { + let cn = new ParamsSectionRectang(undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, + ComputeNodeType.RegimeUniforme); + let n = new cSnRectang(undefined, cn); + let ru = new RegimeUniforme(n); // pour initialiser la calculabilité des paramètres + return cn; + } + + case ComputeNodeType.RegimeUniformeCercle: + { + let cn = new ParamsSectionCirc(undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, + ComputeNodeType.RegimeUniformeCercle, + ComputeNodeType.RegimeUniforme); + let n = new cSnCirc(undefined, cn); + let ru = new RegimeUniforme(n); // pour initialiser la calculabilité des paramètres + return cn; + } + + case ComputeNodeType.RegimeUniformePuissance: + { + let cn = new ParamsSectionPuiss(undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, undefined, + ComputeNodeType.RegimeUniformePuissance, + ComputeNodeType.RegimeUniforme); + let n = new cSnPuiss(undefined, cn); + let ru = new RegimeUniforme(n); // pour initialiser la calculabilité des paramètres + return cn; + } + default: throw "ComputeNodeParameters.getComputeNodeParameters() : noeud de calcul '" + ComputeNodeType[type] + "' non pris en charge"; } diff --git a/src/section/section_circulaire.ts b/src/section/section_circulaire.ts index 7fd29262f1c7efdbf9673e9a84be2f0fd27ec959..f3ca8dba3603d5c4bd163c04d51233ec439ef3c9 100644 --- a/src/section/section_circulaire.ts +++ b/src/section/section_circulaire.ts @@ -6,9 +6,12 @@ import { ErrorMessage, ErrorCode } from '../util/error'; export class ParamsSectionCirc extends ParamsSection { private _D: ParamDefinition; // Diamètre du cercle - constructor(rD: number, rY: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number, rYCL: number = undefined, rDx: number = undefined, rLong: number = undefined) { - super(rY, undefined, rKs, rQ, rIf, rPrec, rYB, rYCL); - this._D = new ParamDefinition(ComputeNodeType.SectionCercle, 'D', ParamDomainValue.POS, rD); + constructor(rD: number, rY: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number, + rYCL: number = undefined, rDx: number = undefined, rLong: number = undefined, + nodeType: ComputeNodeType = ComputeNodeType.SectionCercle, + defaultNodeType: ComputeNodeType = ComputeNodeType.SectionParametree) { + super(rY, undefined, rKs, rQ, rIf, rPrec, rYB, rYCL, rDx, rLong, defaultNodeType); + this._D = new ParamDefinition(nodeType, 'D', ParamDomainValue.POS, rD); } /** diff --git a/src/section/section_puissance.ts b/src/section/section_puissance.ts index c11e7fd06dce193bd72039921af106011ef82e79..5c8cf3dc52cad8f2bea0bcdb3dec591dab56ea1a 100644 --- a/src/section/section_puissance.ts +++ b/src/section/section_puissance.ts @@ -8,9 +8,12 @@ import { cLog } from "./log"; export class ParamsSectionPuiss extends ParamsSection { private _k: ParamDefinition; // Coefficient de forme compris entre 0 et 1 - constructor(rk: number, rY: number, rLargeurBerge: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number, rYCL: number = 0, rDx: number = 0, rLong: number = 0) { - super(rY, rLargeurBerge, rKs, rQ, rIf, rPrec, rYB, rYCL); - this._k = new ParamDefinition(ComputeNodeType.SectionPuissance, 'k', new ParamDomain(ParamDomainValue.INTERVAL, 0, 1), rk); + constructor(rk: number, rY: number, rLargeurBerge: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number, + rYCL: number = undefined, rDx: number = undefined, rLong: number = undefined, + nodeType: ComputeNodeType = ComputeNodeType.SectionPuissance, + defaultNodeType: ComputeNodeType = ComputeNodeType.SectionParametree) { + super(rY, rLargeurBerge, rKs, rQ, rIf, rPrec, rYB, rYCL, rDx, rLong, defaultNodeType); + this._k = new ParamDefinition(nodeType, 'k', new ParamDomain(ParamDomainValue.INTERVAL, 0, 1), rk); } /** diff --git a/src/section/section_rectang.ts b/src/section/section_rectang.ts index 5d93e1ce132fa063eaf9fb04e68f5e82d3bbc103..e77aa31e2aedf7e7f5aaf586396aec51c101ebb1 100644 --- a/src/section/section_rectang.ts +++ b/src/section/section_rectang.ts @@ -1,11 +1,14 @@ import { acSection, ParamsSection } from "./section_type"; +import { ComputeNodeType } from "../param"; import { cLog } from "./log"; export class ParamsSectionRectang extends ParamsSection { - constructor(rY: number, rLargeurFond: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number, rYCL: number = 0, rDx: number = 0, rLong: number = 0) { + constructor(rY: number, rLargeurFond: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number, + rYCL: number = undefined, rDx: number = undefined, rLong: number = undefined, + defaultNodeType: ComputeNodeType = ComputeNodeType.SectionParametree) { super(rY, rLargeurFond, // LargeurBerge=LargeurFond - rKs, rQ, rIf, rPrec, rYB, rYCL); + rKs, rQ, rIf, rPrec, rYB, rYCL, rDx, rLong, defaultNodeType); // this.LargeurBerge.symbolAlias = 'LargeurFond'; } } diff --git a/src/section/section_trapez.ts b/src/section/section_trapez.ts index bc9d8f0c67fe01590904f386c80519079d1df765..04a4b6d176189185fd669a9f16bfb3a7ab29d086 100644 --- a/src/section/section_trapez.ts +++ b/src/section/section_trapez.ts @@ -7,10 +7,13 @@ export class ParamsSectionTrapez extends ParamsSection { private _LargeurFond: ParamDefinition; // Largeur au fond private _Fruit: ParamDefinition; // Fruit des berges - constructor(rLargeurFond: number, rFruit: number, rY: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number, rYCL: number = 0, rDx: number = 0, rLong: number = 0) { - super(rY, undefined, rKs, rQ, rIf, rPrec, rYB, rYCL); - this._LargeurFond = new ParamDefinition(ComputeNodeType.SectionTrapeze, 'LargeurFond', ParamDomainValue.POS_NULL, rLargeurFond); - this._Fruit = new ParamDefinition(ComputeNodeType.SectionTrapeze, 'Fruit', ParamDomainValue.POS_NULL, rFruit); + constructor(rLargeurFond: number, rFruit: number, rY: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number, + rYCL: number = undefined, rDx: number = undefined, rLong: number = undefined, + nodeType: ComputeNodeType = ComputeNodeType.SectionTrapeze, + defaultNodeType: ComputeNodeType = ComputeNodeType.SectionParametree) { + super(rY, undefined, rKs, rQ, rIf, rPrec, rYB, rYCL, rDx, rLong, defaultNodeType); + this._LargeurFond = new ParamDefinition(nodeType, 'LargeurFond', ParamDomainValue.POS_NULL, rLargeurFond); + this._Fruit = new ParamDefinition(nodeType, 'Fruit', ParamDomainValue.POS_NULL, rFruit); } /** diff --git a/src/section/section_type.ts b/src/section/section_type.ts index bb0595d067258d357371e455be35c150b8c3c2fc..e037d6a68051ee1cae446050afe23f0db469e06a 100644 --- a/src/section/section_type.ts +++ b/src/section/section_type.ts @@ -103,10 +103,12 @@ export abstract class ParamsSection extends cParamsCanal { private _Y: ParamDefinition; // Tirant d'eau private _LargeurBerge: ParamDefinition; // largeur au débordement - constructor(rY: number, rLargeurBerge: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number, rYCL: number = undefined, rDx: number = undefined, rLong: number = undefined) { - super(ComputeNodeType.SectionParametree, rKs, rQ, rIf, rPrec, rYB, rYCL, rDx, rLong); - this._Y = new ParamDefinition(ComputeNodeType.SectionParametree, 'Y', ParamDomainValue.POS_NULL, rY); - this._LargeurBerge = new ParamDefinition(ComputeNodeType.SectionParametree, 'LargeurBerge', ParamDomainValue.POS_NULL, rLargeurBerge); + constructor(rY: number, rLargeurBerge: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number, + rYCL: number = undefined, rDx: number = undefined, rLong: number = undefined, + nodeType: ComputeNodeType = ComputeNodeType.SectionParametree) { + super(nodeType, rKs, rQ, rIf, rPrec, rYB, rYCL, rDx, rLong); + this._Y = new ParamDefinition(nodeType, 'Y', ParamDomainValue.POS_NULL, rY); + this._LargeurBerge = new ParamDefinition(nodeType, 'LargeurBerge', ParamDomainValue.POS_NULL, rLargeurBerge); } /**