Compare commits
4 Commits
f14e2c8d8e
...
cc89833530
| Author | SHA1 | Date | |
|---|---|---|---|
| cc89833530 | |||
| f3bbf63602 | |||
| 70af0885e3 | |||
| dbfc4a81b2 |
@@ -34,17 +34,14 @@ class nodeClass {
|
||||
switch (msg.topic) {
|
||||
case "clock":
|
||||
this.source.updateState(msg.timestamp);
|
||||
send([msg, null, null]);
|
||||
break;
|
||||
case "Fluent":
|
||||
this.source.setInfluent = msg;
|
||||
this.source.updateState(msg.timestamp);
|
||||
break;
|
||||
case "OTR":
|
||||
this.source.setOTR = msg;
|
||||
break;
|
||||
case "Temperature":
|
||||
this.source.setTemperature = msg;
|
||||
break;
|
||||
case "Dispersion":
|
||||
this.source.setDispersion = msg;
|
||||
break;
|
||||
|
||||
@@ -42,7 +42,7 @@ class Reactor {
|
||||
|
||||
this.kla = config.kla; // if NaN, use externaly provided OTR [d-1]
|
||||
|
||||
this.currentTime = Date.now(); // milliseconds since epoch [ms]
|
||||
this.currentTime = null; // milliseconds since epoch [ms]
|
||||
this.timeStep = 1 / (24*60*60) * this.config.timeStep; // time step in seconds, converted to days.
|
||||
this.speedUpFactor = 100; // speed up factor for simulation, 60 means 1 minute per simulated second
|
||||
}
|
||||
@@ -204,12 +204,23 @@ class Reactor {
|
||||
* @param {number} newTime - New time to update reactor state to, in milliseconds since epoch.
|
||||
*/
|
||||
updateState(newTime) { // expect update with timestamp
|
||||
if (!this.currentTime) {
|
||||
this.currentTime = newTime;
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.upstreamReactor) {
|
||||
this.setInfluent = this.upstreamReactor.getEffluent[0]; // grab main effluent upstream reactor
|
||||
// grab main effluent upstream reactor
|
||||
this.setInfluent = this.upstreamReactor.getEffluent[0];
|
||||
}
|
||||
|
||||
const n_iter = Math.floor(this.speedUpFactor * (newTime-this.currentTime) / (this.timeStep*DAY2MS));
|
||||
if (n_iter) {
|
||||
|
||||
if (n_iter == 0) {
|
||||
// no update required
|
||||
return;
|
||||
}
|
||||
|
||||
let n = 0;
|
||||
while (n < n_iter) {
|
||||
this.tick(this.timeStep);
|
||||
@@ -217,6 +228,9 @@ class Reactor {
|
||||
}
|
||||
this.currentTime += n_iter * this.timeStep * DAY2MS / this.speedUpFactor;
|
||||
this.emitter.emit("stateChange", this.currentTime);
|
||||
|
||||
if (this.returnPump) {
|
||||
this.returnPump.updateSourceSink();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user