Update state handling in reactor class and optimize time iteration logic
This commit is contained in:
@@ -214,24 +214,23 @@ class Reactor {
|
||||
this.setInfluent = this.upstreamReactor.getEffluent[0];
|
||||
}
|
||||
|
||||
if (newTime === this.currentTime) {
|
||||
// no update necessary
|
||||
const n_iter = Math.floor(this.speedUpFactor * (newTime-this.currentTime) / (this.timeStep*DAY2MS));
|
||||
|
||||
if (n_iter == 0) {
|
||||
// no update required
|
||||
return;
|
||||
}
|
||||
|
||||
const n_iter = Math.floor(this.speedUpFactor * (newTime-this.currentTime) / (this.timeStep*DAY2MS));
|
||||
if (n_iter) {
|
||||
let n = 0;
|
||||
while (n < n_iter) {
|
||||
this.tick(this.timeStep);
|
||||
n += 1;
|
||||
}
|
||||
this.currentTime += n_iter * this.timeStep * DAY2MS / this.speedUpFactor;
|
||||
this.emitter.emit("stateChange", this.currentTime);
|
||||
let n = 0;
|
||||
while (n < n_iter) {
|
||||
this.tick(this.timeStep);
|
||||
n += 1;
|
||||
}
|
||||
this.currentTime += n_iter * this.timeStep * DAY2MS / this.speedUpFactor;
|
||||
this.emitter.emit("stateChange", this.currentTime);
|
||||
|
||||
if (this.returnPump) {
|
||||
this.returnPump.updateSourceSink();
|
||||
}
|
||||
if (this.returnPump) {
|
||||
this.returnPump.updateSourceSink();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user