110
8 Generating Droplet Sequences
Example 8.6 Let’s continue Example 8.5. Overall, two possible candidates of
header paths exist: The first candidate requires a single header h 0 which flows
along path
h 0
0 . The second candidate requires two headers h 0 and h 1 , which flow
along path
h 0
1 and path
h 1
0 , respectively. Both candidates including the payload path
are summarized in the bottom of Fig. 8.3.
However, not all of these candidates indeed result in a valid execution of an
experiment, since (1) droplets may coalesce or (2) droplets may mutually influence
their respective paths. Since less headers cause less mutual interdependencies, the
candidates are checked in ascending order with respect to their number of required
headers.
Determining the Injection Times
As next step, the injection times for a candidate are determined. Again, the
droplets contained in the selected candidate are traversed top-down starting with the
payload path: First, the algorithm starts with the payload p and sets its injection
time to t = t t . This allows to determine the payload’s entering time in each
non-default successor c ∈ nonDef ault path p , i.e. T path p (c) + t t . At the time step
when the payload should enter a non-default successor, a header has to block the
corresponding default successor denoted here as d. That means, the header has to
flow through the default successor d, which causes a higher flow rate into the nondefault successor allowing the payload to enter this non-default successor.
For this header h k , the earliest and latest time step at which the header can
enter the default successor d can be determined by T path p (c) + t t − hSteps(d) and
T path p (c) + t t − T , respectively. The earliest time step guarantees that the header is
still in the default successor when the payload arrives at the bifurcation. The latest
time step guarantees a minimum distance T between droplets. The entering time
step of the header can be varied within this range. For example, if the header should
be in the middle of the default successor when the payload arrives, it has to enter at
middle = T path p (c) + t t − −hSteps(d)/2.
Knowing when the header h k should block the default successor and also
knowing its path (i.e., path
h k
i , which is defined by the selected candidate) allows to
determine its injection time. More precisely, the time the header h k requires until it
flows into the default successor d is given by T path
h k
i
(d). This allows to determine
the injection time of h k by I nj h k = middle − T path
h k
i
(d).
Again, the injection times of the headers which are necessary to route h k are
recursively determined by repeating the steps from above. After the determination
of all injection times, t t is replaced with a number of time steps, so that the earliest
injection of any droplet starts at time step t = 0.
Example 8.7 Let’s continue Examples 8.5 and 8.6 for which injection time steps for
the first candidate are determined (i.e., header h 0 flowing along path
h 0
0 ). Therefore,
8 Generating Droplet Sequences
Example 8.6 Let’s continue Example 8.5. Overall, two possible candidates of
header paths exist: The first candidate requires a single header h 0 which flows
along path
h 0
0 . The second candidate requires two headers h 0 and h 1 , which flow
along path
h 0
1 and path
h 1
0 , respectively. Both candidates including the payload path
are summarized in the bottom of Fig. 8.3.
However, not all of these candidates indeed result in a valid execution of an
experiment, since (1) droplets may coalesce or (2) droplets may mutually influence
their respective paths. Since less headers cause less mutual interdependencies, the
candidates are checked in ascending order with respect to their number of required
headers.
Determining the Injection Times
As next step, the injection times for a candidate are determined. Again, the
droplets contained in the selected candidate are traversed top-down starting with the
payload path: First, the algorithm starts with the payload p and sets its injection
time to t = t t . This allows to determine the payload’s entering time in each
non-default successor c ∈ nonDef ault path p , i.e. T path p (c) + t t . At the time step
when the payload should enter a non-default successor, a header has to block the
corresponding default successor denoted here as d. That means, the header has to
flow through the default successor d, which causes a higher flow rate into the nondefault successor allowing the payload to enter this non-default successor.
For this header h k , the earliest and latest time step at which the header can
enter the default successor d can be determined by T path p (c) + t t − hSteps(d) and
T path p (c) + t t − T , respectively. The earliest time step guarantees that the header is
still in the default successor when the payload arrives at the bifurcation. The latest
time step guarantees a minimum distance T between droplets. The entering time
step of the header can be varied within this range. For example, if the header should
be in the middle of the default successor when the payload arrives, it has to enter at
middle = T path p (c) + t t − −hSteps(d)/2.
Knowing when the header h k should block the default successor and also
knowing its path (i.e., path
h k
i , which is defined by the selected candidate) allows to
determine its injection time. More precisely, the time the header h k requires until it
flows into the default successor d is given by T path
h k
i
(d). This allows to determine
the injection time of h k by I nj h k = middle − T path
h k
i
(d).
Again, the injection times of the headers which are necessary to route h k are
recursively determined by repeating the steps from above. After the determination
of all injection times, t t is replaced with a number of time steps, so that the earliest
injection of any droplet starts at time step t = 0.
Example 8.7 Let’s continue Examples 8.5 and 8.6 for which injection time steps for
the first candidate are determined (i.e., header h 0 flowing along path
h 0
0 ). Therefore,
