jalhyd
Version:
JaLHyd, a Javascript Library for Hydraulics
149 lines • 7.81 kB
TypeScript
import { Nub } from "../internal_modules";
import { EspeceParams } from "../internal_modules";
import { Observer } from "../internal_modules";
import { FishSpecies } from "../internal_modules";
import { Result } from "../internal_modules";
import { FishPass } from "../internal_modules";
import { StructureJetType } from "../internal_modules";
import { MacroRugo } from "../internal_modules";
import { ResultElement } from "../internal_modules";
import { LoiDebit } from "../internal_modules";
import { ParallelStructure } from "../internal_modules";
import { Cloisons } from "../internal_modules";
import { DivingJetSupport } from "../internal_modules";
/**
* Settings for a given fish species (or custom settings), to verify crossing capacities on fish passes.
* Meant to be used with Verificateur.
*/
export declare class Espece extends Nub implements Observer {
/** Multidimension table of parameters values presets, by pass type and species */
protected presets: any;
/**
* The Pab, ParSimulation, or MacroRugo[Compound] to check (Par are not supposed to be checked).
* Passed by the Verificateur
*/
protected _passToCheck: FishPass;
/**
* For variating passes, index of the result to examine.
* Passed by the Verificateur
*/
indexToCheck: number;
constructor(prms: EspeceParams, dbg?: boolean);
get prms(): EspeceParams;
get species(): FishSpecies;
/** Changing the fish species will load adequate predefined values */
set species(s: FishSpecies);
set passToCheck(p: FishPass);
get divingJetSupported(): DivingJetSupport;
set divingJetSupported(i: DivingJetSupport);
/**
* Check that all given criteria are defined before controlling their values
* @param symbols list of symbols of criteria that have to be defined
* @return undefined if all criteria are present, a Result with appropriate error
* log messages otherwise
*/
protected checkCriteriaPresence(symbols: string[]): Result;
/** Returns 1 if the fish can go through the pass, 0 if it cannot */
Equation(): Result;
update(sender: any, data: any): void;
/**
* Checks the diving jet support on every structure of the given wall of a Pab
* @param wall the current wall to check
* @param res the current result to add logs to, and set value
* @param ca crossability array; mark non-crossable devices with "false" value at their index
*/
protected checkDivingJetSupport(wall: ParallelStructure, res: Result, ca: boolean[]): void;
/**
* Checks the falls on every structure of the given wall of a Pab
* @param wall the current wall to check
* @param iRes the current result element to check on the wall result
* @param res the current result to add logs to, and set value
* @param ca crossability array; mark non-crossable devices with "false" value at their index
* @param hasSJet true if current wall has at least one device with a surface jet (or an Orifice)
* @param hasPJet true if current wall has at least one device with a diving jet
*/
protected checkFalls(wall: ParallelStructure, iRes: ResultElement, res: Result, ca: boolean[], hasSJet: boolean, hasPJet: boolean): void;
/**
* Checks the basin depth on every structure of the given wall of a Pab
* @param wall the current wall to check
* @param iRes the current result element to check on the wall result
* @param res the current result to add logs to, and set value
* @param ca crossability array; mark non-crossable devices with "false" value at their index
* @param hasSJet true if current wall has at least one device with a surface jet (or an Orifice)
* @param hasPJet true if current wall has at least one device with a diving jet
*/
protected checkBasinDepth(wall: ParallelStructure, iRes: ResultElement, res: Result, ca: boolean[], hasSJet: boolean, hasPJet: boolean): void;
/**
* Checks the basin length on every structure of the given wall of a Pab
* @param wall the current wall to check
* @param res the current result to add logs to, and set value
* @param ca crossability array; mark non-crossable devices with "false" value at their index
* @param hasSJet true if current wall has at least one device with a surface jet (or an Orifice)
* @param hasPJet true if current wall has at least one device with a diving jet
*/
protected checkBasinLength(wall: Cloisons, res: Result, ca: boolean[], hasSJet: boolean, hasPJet: boolean): void;
/**
* Checks the weirs and slots widths on every structure of the given wall of a Pab
* @param wall the Pab wall to check
* @param res the current result to add logs to, and set value
* @param ca crossability array; mark non-crossable devices with "false" value at their index
*/
protected checkWeirsAndSlotsWidth(wall: ParallelStructure, res: Result, ca: boolean[]): void;
/**
* Checks the head on weirs on every structure of the given wall of a Pab
* @param wall the Pab wall to check
* @param res the current result to add logs to, and set value
* @param ca crossability array; mark non-crossable devices with "false" value at their index
*/
protected checkHeadOnWeirs(wall: ParallelStructure, res: Result, ca: boolean[]): void;
/**
* Checks the dissipated power on the given wall of a Pab
* @param wall the Pab wall to check
* @param res the current result to add logs to, and set value
*/
protected checkDissipatedPowerPAB(wall: ParallelStructure, res: Result): void;
/**
* Marks orifices as not supposed to be crossable, with a warning (jalhyd#249)
* @param wall the Pab wall to check
* @param res the current result to add logs to, and set value
* @param ca crossability array; mark non-crossable devices with "false" value at their index
*/
protected checkOrifices(wall: ParallelStructure, res: Result, ca: boolean[]): void;
/**
* Returns true if given wall has at least one device with a jet type among given jetTypes
*/
protected hasJet(wall: ParallelStructure, jetTypes: StructureJetType | StructureJetType[]): boolean;
/**
* Returns indexes of the devices having given jet type, on the given wall
* @param wall wall to check devices on
* @param t jet type
*/
protected getDevicesHavingJet(wall: ParallelStructure, t: StructureJetType): number[];
/**
* Returns indexes of the devices having given discharge law, on the given wall
* @param wall wall to check devices on
* @param l discharge law
*/
protected getDevicesHavingLaw(wall: ParallelStructure, l: LoiDebit | LoiDebit[]): number[];
/**
* Checks a MacroRugo pass (factorized to use when checking MacroRugoCompound)
* @param pass the MacroRugo pass to check
* @param passResult the current result of the pass to check
* @param verifResult the result of the check, to add logs to
* @param apronNumber if defined, means that we're checking an apron of a MacroRugoCompound
*/
protected checkMacroRugo(pass: MacroRugo, passResult: ResultElement, verifResult: Result, apronNumber?: number): number;
/**
* Load ICE tables values into parameters, depending on species
* and pass to check
*/
protected loadPredefinedParametersValues(): void;
/**
* Load ICE tables values into parameters, for a given species
* (used in GUI for loading predefined species)
*/
loadPredefinedSpecies(sp: FishSpecies): void;
/** Parameters other than OK are just settings here, nothing can vary or be calculated */
protected setParametersCalculability(): void;
}
//# sourceMappingURL=espece.d.ts.map