You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently Accumulator actions accumulate the current value of the input during the invalidate() step. This works when the coupler is directly connected to the user output. But if there is an intervening coupler the "lazy" strategy for updating values interferes with the functioning of Accumulator.
Probably the fix is to add a method to GenericCoupler that controls whether to call update() on dependencies during invalidate(). Who knows, some other coupler might need the same.
The text was updated successfully, but these errors were encountered:
tclune
added
🪲 Bug
Something isn't working
0 Diff
The changes in this pull request have verified to be zero-diff with the target branch.
📈 MAPL3
MAPL 3 Related
labels
Jan 7, 2025
There might be a sneaky way to do this without changing the general logic: if we can make the dependent coupler part of the AccumulatorAction, then we can call the update() there. Still lots of code to change, but it is at least isolated to the subclass that breaks the pattern.
Unless we also have update() generate invalidate() there is 0 chance of loops. Couplers grow like a tree. (Technically a DAG because of weirdness with vertical).
Worst case scenario - invalidate() always triggers update() and we waste computations. (We very much want to avoid that though.)
Currently Accumulator actions accumulate the current value of the input during the invalidate() step. This works when the coupler is directly connected to the user output. But if there is an intervening coupler the "lazy" strategy for updating values interferes with the functioning of Accumulator.
Probably the fix is to add a method to GenericCoupler that controls whether to call update() on dependencies during invalidate(). Who knows, some other coupler might need the same.
The text was updated successfully, but these errors were encountered: