UNPKG

jalhyd

Version:

JaLHyd, a Javascript Library for Hydraulics

79 lines 3.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SolveurParams = void 0; const internal_modules_1 = require("../internal_modules"); const internal_modules_2 = require("../internal_modules"); const internal_modules_3 = require("../internal_modules"); const internal_modules_4 = require("../internal_modules"); /** * Y = f(X) * On cherche la valeur de X pour laquelle Y vaut Ytarget */ class SolveurParams extends internal_modules_3.ParamsEquation { /** * Nub to calculate, targetted result and searched parameter must be set through * Solveur properties, or .nubToCalculate(), .targettedResult() and .searchedParameter() setters * @param rYtarget value we want to obtain for Y * @param rXinit initial value f searched parameter; will be overwritten as soon * as Solveur's property "searchedParam" is updated */ constructor(rYtarget, rXinit, nullParams = false) { super(); this._observable = new internal_modules_4.Observable(); this._Xinit = new internal_modules_1.ParamDefinition(this, "Xinit", internal_modules_2.ParamDomainValue.ANY, undefined, rXinit, undefined, undefined, nullParams); this._Ytarget = new internal_modules_1.ParamDefinition(this, "Ytarget", internal_modules_2.ParamDomainValue.ANY, undefined, rYtarget, undefined, undefined, nullParams); this._Y = new internal_modules_1.ParamDefinition(this, "Y", internal_modules_2.ParamDomainValue.ANY, undefined, undefined, undefined, false, nullParams); this.addParamDefinition(this._Xinit); this.addParamDefinition(this._Ytarget); this.addParamDefinition(this._Y); } get X() { return this._X; } setX(X) { // copy of real X, to be used by Dichotomie() that will look for its value this._X = new internal_modules_1.ParamDefinition(this, "X", X.domain, X.unit, X.singleValue, undefined, false); // Update Xinit if (this._Xinit !== undefined) { this._Xinit.setDomain(X.domain); this._Xinit.setUnit(X.unit); this._Xinit.singleValue = X.singleValue; } // replace pointer for parameters iterator this.addParamDefinition(this._X, true); // notify Solveur so that it updates calculatedParam pointer this.notifyObservers({ action: "XUpdated" }, this); } get Y() { return this._Y; } get Xinit() { return this._Xinit; } get Ytarget() { return this._Ytarget; } // interface IObservable /** * ajoute un observateur à la liste */ addObserver(o) { this._observable.addObserver(o); } /** * supprime un observateur de la liste */ removeObserver(o) { this._observable.removeObserver(o); } /** * notifie un événement aux observateurs */ notifyObservers(data, sender) { this._observable.notifyObservers(data, sender); } } exports.SolveurParams = SolveurParams; //# sourceMappingURL=solveur_params.js.map