We consider configuring a Method plugin to retrieve values from the right rather than the left. This allows computational cycles that suggest the finite-difference solution of differential equations though our interests tend more to approximate solutions that are easily reconfigured and conveniently animated.
See System Dynamics
A method plugin will be configured as a Feedback Method by adding the feedback field to the item json specifying a preferred iteration rate in milliseconds.
A Feedback Method will look to its right for variables that are not defined in the current plugin. Where multiple sources are available, the furthest to the right will be used. If more sources become available, or existing sources disappear, inputs will be rebound. This encourages the interactive adjustment of computations by adding or removing pages.
An appropriately sized and colored icon can indicate methods that are driving computation and collecting feedback. generator
A Feedback Method will look to its left briefly to find initial conditions when it starts computing. Editing and saving a Feedback Method will reset its internal variables to initial conditions by these means, as will refreshing a page containing Feedback Methods.
A Feedback Method will retrieve feedback variables and update its computation at the preferred rate specified for the plugin. When computations can't be completed then the actual rate for each iteration will be measured and fed into calculations as an adjustment. For example, downstream equations written in terms of daily rates can use Method unit conversion, a Speedup factor, and the measured iteration rate to adapt to the computational demand of changing configurations.
Feedback (msec/step) 1000 Speedup PRODUCT Time Step (days/step)
The unit "step" will take on special meaning in all Method computations. For example, any ACCUMULATE operating on variables involving step will accumulate on each re-computation rather than only once. This will cancel out "step".
Time Step (days/step) ACCUMULATE Elapsed Time (days)
Time Series visualizations can similarly accumulate and appropriately scale data for waveform or phase map presentation.
A similar feedback mechanism could be built into the Reduce plugin which might have more room for configuration in its markup even though it brings some of its own baggage to calculations.