Dead link error - what to do?#
When setting up a FINAM composition, you may encounter the scheduler complaining Dead link detected between...
.
This post explains what this means, and how to fix it.
Cause of the error#
The error means that you linked the output of a pull-based component (i.e. without time step) to something that needs push. This can be:
A push-based component (i.e. without time step), via adapters or not
A time-interpolating adapter
The error message will also show where the problem is.
In problem case 1:
Output >/> RegridLinear >/> Input
Here, the problem is a push-based component on the right side.
An example could be SimplexNoise
as source, and a push-based plot of file writer as target.
In problem case 2:
Output >/> LinearTime >> Input
Here, the problem is a time-interpolating adapter along the link.
An example could be SimplexNoise
as source,
and a LinearTime
adapter as shown in the above error message.
Fixing the error#
Push-based target problem#
The problem here is that both linked components have no time step, and none of them will initiate the exchange of data.
The problem can be solved by putting another component with internal time step (i.e. a sub-class of ITimeComponent
)
between the two components. Exactly for this purpose, FINAM provides the TimeTrigger
component.
Time-interpolating adapter problem#
Most probably, this is a misconception of the coupling setup. As the source component has no internal time step, a time-interpolating adapter should not be required.
In cases where the setup is intentional, the same solution as for the Push-based target problem applies.