jalhyd
Version:
JaLHyd, a Javascript Library for Hydraulics
79 lines • 3.1 kB
JavaScript
"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