Skip to content
Snippets Groups Projects
Commit 3a258cdb authored by Dorchies David's avatar Dorchies David
Browse files

Merge branch '338-optimiser-l-affichage-des-unites' into 'devel'

Resolve "Optimiser l'affichage des unités"

Closes #338

See merge request cassiopee/jalhyd!137
parents c6223ab9 d7187d8a
No related branches found
No related tags found
No related merge requests found
......@@ -66,11 +66,6 @@ export abstract class ComputeNode extends JalhydObject implements IDebug {
*/
protected _resultsFamilies: any;
/**
* { symbol => string } map that defines units for extra results
*/
protected _resultsUnits: any;
private _debug: Debug;
constructor(prms: ParamsEquation, dbg: boolean = false) {
......@@ -83,7 +78,6 @@ export abstract class ComputeNode extends JalhydObject implements IDebug {
this._prms.parent = this;
this.setParametersCalculability();
this.setResultsUnits();
this.exposeResults();
}
......@@ -146,12 +140,8 @@ export abstract class ComputeNode extends JalhydObject implements IDebug {
return this._resultsFamilies;
}
protected setResultsUnits() {
this._resultsUnits = {};
}
public get resultsUnits() {
return this._resultsUnits;
public static resultsUnits(): any {
return {};
}
protected abstract setParametersCalculability(): void;
......
......@@ -21,6 +21,36 @@ export enum GrilleType {
export class Grille extends Nub implements Observer {
/**
* { symbol => string } map that defines units for extra results
*/
private static _resultsUnits = {
H: "m",
HG: "m",
S: "",
SPDG: "",
VA: "m/s",
VAPDG: "m/s",
LG: "m",
D: "m",
DG: "m",
SG: "",
VN: "m/s",
DH00: "cm",
DH05: "cm",
DH10: "cm",
DH15: "cm",
DH20: "cm",
DH25: "cm",
DH30: "cm",
DH35: "cm",
DH40: "cm",
DH45: "cm",
DH50: "cm",
DH55: "cm",
DH60: "cm"
}
constructor(prms: GrilleParams, dbg: boolean = false) {
super(prms, dbg);
this.setCalculatorType(CalculatorType.Grille);
......@@ -291,33 +321,8 @@ export class Grille extends Nub implements Observer {
this.prms.cIncl.calculability = ParamCalculability.FIXED;
}
protected setResultsUnits() {
this._resultsUnits = {
H: "m",
HG: "m",
S: "",
SPDG: "",
VA: "m/s",
VAPDG: "m/s",
LG: "m",
D: "m",
DG: "m",
SG: "",
VN: "m/s",
DH00: "cm",
DH05: "cm",
DH10: "cm",
DH15: "cm",
DH20: "cm",
DH25: "cm",
DH30: "cm",
DH35: "cm",
DH40: "cm",
DH45: "cm",
DH50: "cm",
DH55: "cm",
DH60: "cm"
}
public static override resultsUnits() {
return Grille._resultsUnits;
}
protected exposeResults() {
......
......@@ -8,6 +8,18 @@ import { JetParams } from "../internal_modules";
export class Jet extends Nub {
/**
* { symbol => string } map that defines units for extra results
*/
private static _resultsUnits = {
H: "m",
Y: "m",
t: "s",
Vx: "m/s",
Vz: "m/s",
Vt: "m/s"
};
/** steps for generating the trajectory */
protected precision = 50;
......@@ -259,15 +271,8 @@ export class Jet extends Nub {
this.prms.D.calculability = ParamCalculability.EQUATION;
}
protected setResultsUnits() {
this._resultsUnits = {
H: "m",
Y: "m",
t: "s",
Vx: "m/s",
Vz: "m/s",
Vt: "m/s"
}
public static override resultsUnits() {
return Jet._resultsUnits;
}
protected exposeResults() {
......
......@@ -102,3 +102,4 @@ export * from "./prebarrage/pre_barrage_params";
export * from "./prebarrage/pb_cloison";
export * from "./prebarrage/pb_bassin";
export * from "./prebarrage/pb_bassin_params";
export * from "./units";
......@@ -8,6 +8,16 @@ import { ConcentrationBlocsParams } from "../internal_modules";
export class ConcentrationBlocs extends Nub {
/**
* { symbol => string } map that defines units for extra results
*/
private static _resultsUnits = {
ax: "m",
R: "m",
AXB: "m",
AXH: "m"
};
constructor(prms: ConcentrationBlocsParams, dbg: boolean = false) {
super(prms, dbg);
this.setCalculatorType(CalculatorType.ConcentrationBlocs);
......@@ -129,13 +139,8 @@ export class ConcentrationBlocs extends Nub {
this.prms.D.calculability = ParamCalculability.EQUATION;
}
protected setResultsUnits() {
this._resultsUnits = {
ax: "m",
R: "m",
AXB: "m",
AXH: "m"
}
public static override resultsUnits() {
return ConcentrationBlocs._resultsUnits;
}
protected exposeResults() {
......
......@@ -54,6 +54,18 @@ export class MacroRugo extends FishPass {
/** true: Cd0 * min(3, fh), false : min(6, Cd0 * fh) */
private paramCdNewVersion: boolean = true;
/**
* { symbol => string } map that defines units for extra results
*/
private static _resultsUnits = {
PV: "W/m³",
Vdeb: "m/s",
Vmax: "m/s",
Vg: "m/s",
ZF2: "m",
Strickler: "SI"
};
constructor(prms: MacrorugoParams, dbg: boolean = false) {
super(prms, dbg);
this._cache = {};
......@@ -187,15 +199,8 @@ export class MacroRugo extends FishPass {
this.prms.Cd0.calculability = ParamCalculability.FREE;
}
protected setResultsUnits() {
this._resultsUnits = {
PV: "W/m³",
Vdeb: "m/s",
Vmax: "m/s",
Vg: "m/s",
ZF2: "m",
Strickler: "SI"
}
public static override resultsUnits() {
return MacroRugo._resultsUnits;
}
protected exposeResults() {
......
......@@ -1681,8 +1681,8 @@ export abstract class Nub extends ComputeNode implements IObservable {
return p.unit;
}
// is it a result ?
if (symbol in this.resultsUnits) {
return this.resultsUnits[symbol]; // might be undefined
if (symbol in Nub.resultsUnits()) {
return Nub.resultsUnits()[symbol]; // might be undefined
}
// give up
return undefined;
......
......@@ -10,6 +10,13 @@ import { isGreaterThan } from "../internal_modules";
export class RegimeUniforme extends SectionNub {
/**
* { symbol => string } map that defines units for extra results
*/
private static _resultsUnits = {
V: "m/s"
};
constructor(s: acSection, dbg: boolean = false) {
super(new SectionParams(), dbg);
this.setCalculatorType(CalculatorType.RegimeUniforme);
......@@ -95,10 +102,8 @@ export class RegimeUniforme extends SectionNub {
this.section.prms.YB.calculability = ParamCalculability.FREE;
}
protected setResultsUnits() {
this._resultsUnits = {
V: "m/s"
}
public static override resultsUnits() {
return RegimeUniforme._resultsUnits;
}
protected exposeResults() {
......
......@@ -10,6 +10,15 @@ import { CloisonsParams } from "../internal_modules";
export class Cloisons extends ParallelStructure {
/**
* { symbol => string } map that defines units for extra results
*/
private static _resultsUnits = {
PV: "W/m³",
ZRAM: "m",
ZRMB: "m"
};
constructor(prms: CloisonsParams, dbg: boolean = false) {
super(prms, dbg);
this.setCalculatorType(CalculatorType.Cloisons);
......@@ -134,12 +143,8 @@ export class Cloisons extends ParallelStructure {
this.prms.QA.calculability = ParamCalculability.FREE;
}
protected setResultsUnits() {
this._resultsUnits = {
PV: "W/m³",
ZRAM: "m",
ZRMB: "m"
}
public static override resultsUnits() {
return Cloisons._resultsUnits;
}
protected exposeResults() {
......
......@@ -7,6 +7,16 @@ import { Result } from "../internal_modules";
import { PabNombreParams } from "../internal_modules";
export class PabNombre extends Nub {
/**
* { symbol => string } map that defines units for extra results
*/
private static _resultsUnits = {
DHR: "m",
DHB: "m",
DHH: "m"
}
constructor(prms: PabNombreParams, dbg: boolean = false) {
super(prms, dbg);
this.setCalculatorType(CalculatorType.PabNombre);
......@@ -101,12 +111,8 @@ export class PabNombre extends Nub {
this.prms.DH.calculability = ParamCalculability.EQUATION;
}
protected setResultsUnits() {
this._resultsUnits = {
DHR: "m",
DHB: "m",
DHH: "m"
}
public static override resultsUnits() {
return PabNombre._resultsUnits;
}
protected exposeResults() {
......
......@@ -23,6 +23,28 @@ export enum ParType {
export class Par extends FishPass implements Observer {
/**
* { symbol => string } map that defines units for extra results
*/
private static _resultsUnits = {
h: "m",
qStar: "m³/s",
V: "m/s",
ZD1: "m",
ZR1: "m",
ZD2: "m",
ZR2: "m",
ZM: "m",
LPI: "m",
LPH: "m",
B: "m",
C: "m",
D: "m",
H: "m",
Hmin: "m",
Hmax: "m"
};
protected parCalc: ParTypeAbstract;
constructor(prms: ParParams, dbg: boolean = false) {
......@@ -212,25 +234,8 @@ export class Par extends FishPass implements Observer {
this.prms.ha.calculability = ParamCalculability.EQUATION;
}
protected setResultsUnits() {
this._resultsUnits = {
h: "m",
qStar: "m³/s",
V: "m/s",
ZD1: "m",
ZR1: "m",
ZD2: "m",
ZR2: "m",
ZM: "m",
LPI: "m",
LPH: "m",
B: "m",
C: "m",
D: "m",
H: "m",
Hmin: "m",
Hmax: "m"
}
public static override resultsUnits() {
return Par._resultsUnits;
}
protected exposeResults() {
......
......@@ -9,6 +9,14 @@ import { loiAdmissiblesDever, LoiDebit } from "../internal_modules";
export class Dever extends ParallelStructure {
/**
* { symbol => string } map that defines units for extra results
*/
private static _resultsUnits = {
Ec: "m",
V: "m/s"
};
private bQcorrected: boolean;
private bZcorrected: boolean;
......@@ -121,11 +129,8 @@ export class Dever extends ParallelStructure {
this.prms.Z2.visible = false;
}
protected setResultsUnits() {
this._resultsUnits = {
Ec: "m",
V: "m/s"
}
public static override resultsUnits() {
return Dever._resultsUnits;
}
protected exposeResults() {
......
import { CalculatorType } from "./compute-node";
import { Cloisons, ConcentrationBlocs, Dever, Grille, Jet, MacroRugo, PabNombre, Par, RegimeUniforme } from "./index";
/**
* correspondance type de calculette - classe de Nub
*/
const nubClasses = new Map<CalculatorType, any>([
[CalculatorType.Grille, Grille],
[CalculatorType.ConcentrationBlocs, ConcentrationBlocs],
[CalculatorType.Jet, Jet],
[CalculatorType.MacroRugo, MacroRugo],
[CalculatorType.RegimeUniforme, RegimeUniforme],
[CalculatorType.Cloisons, Cloisons],
[CalculatorType.PabNombre, PabNombre],
[CalculatorType.Par, Par],
[CalculatorType.Dever, Dever]
]);
/**
* détermine l'unité d'un paramètre de résultat
* @param nubType Nub contenant le paramètre de résultat
* @param symbol symbole du paramètre
* @returns unité du paramètre
*/
export function getNubResultUnit(nubType: CalculatorType, symbol: string) {
const cl = nubClasses.get(nubType);
if (cl !== undefined && "resultsUnits" in cl) {
const f = cl.resultsUnits;
const units = f();
return units[symbol];
}
return {};
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment