fix: expose tick(dt) on Reactor wrapper
P6.5 refactor introduced the BaseDomain wrapper around CSTR/PFR engines but didn't pass tick() through. BaseNodeAdapter's optional-chain source.tick?.() got undefined and the kinetics engine never integrated when driven through the new adapter (only via the explicit _emitOutputs override that calls updateState). Added tick(timeStep) that delegates to engine.tick + emits 'output-changed'. Tests that construct the wrapper (not the engine directly) now work. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -75,6 +75,16 @@ class Reactor extends BaseDomain {
|
||||
|
||||
updateState(t) { this.engine.updateState(t); this.notifyOutputChanged(); }
|
||||
|
||||
// Engine pass-through — needed so the BaseNodeAdapter tick loop (and
|
||||
// tests calling reactor.tick(dt) directly) drive the ASM integration.
|
||||
// Without this the Node-RED tick fires `source.tick?.()`, gets undefined,
|
||||
// and the kinetics state never advances.
|
||||
tick(timeStep) {
|
||||
const result = this.engine.tick(timeStep);
|
||||
this.notifyOutputChanged();
|
||||
return result;
|
||||
}
|
||||
|
||||
get getEffluent() { return this.engine.getEffluent; }
|
||||
get getGridProfile() { return this.engine.getGridProfile; }
|
||||
get temperature() { return this.engine.temperature; }
|
||||
|
||||
Reference in New Issue
Block a user