Interface SplittingRateData
-
- All Known Implementing Classes:
SplittingRateDataComplete
,SplittingRateDataPartial
public interface SplittingRateData
Interface for the different implementations that track splitting rates during sLTM network loading.We make a distinction by tracking node (turn) flows to be able to construct splitting rates and whether or not a node is potentially blocking. When a node is potentially blocking we must always track its (turn) flows and splitting rates otherwise we cannot compute to what extent it is blocking. However, when it is not blocking (yet) we might still be required to track it. For example when we want to be able to know how much flow is using a sub-path through the network used by - for example - a PAS in a bush-based implementation of sLTM. For Path based implementations we only need to track nodes that are potentially blocking because there is no need to know the flow on sub-paths to be able to determine how to distribute flows.
- Author:
- markr
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default double
getSplittingRate(EdgeSegment entrySegment, EdgeSegment exitSegment)
Obtain the splitting rate of a given turn (non-modifiable)org.ojalgo.array.Array1D<Double>
getSplittingRates(EdgeSegment entrySegment)
Obtain the downstream splitting rates of given node entry segment (can be modified)TreeSet<DirectedVertex>
getTrackedNodes()
Collect all registered potentially blocking nodesboolean
isPotentiallyBlocking(DirectedVertex nodeToVerify)
Verify if node is registered as potentially blockingboolean
isTracked(DirectedVertex nodeToVerify)
Verify if node is registered as being tracked with splitting ratesdefault void
reset()
Reset all splitting rate datavoid
resetPotentiallyBlockingNodes()
Reset registered potentially blocking nodesvoid
resetSplittingRates()
Reset splitting rate datavoid
resetTrackedNodes()
Reset registered tracked nodes
-
-
-
Method Detail
-
isTracked
boolean isTracked(DirectedVertex nodeToVerify)
Verify if node is registered as being tracked with splitting rates- Parameters:
nodeToVerify
- the node to verify- Returns:
- true when registered as tracked, false otherwise
-
isPotentiallyBlocking
boolean isPotentiallyBlocking(DirectedVertex nodeToVerify)
Verify if node is registered as potentially blocking- Parameters:
nodeToVerify
- the node to verify- Returns:
- true when registered as potentially blocking, false otherwise
-
getTrackedNodes
TreeSet<DirectedVertex> getTrackedNodes()
Collect all registered potentially blocking nodes- Returns:
- registered potentially blocking nodes
-
getSplittingRates
org.ojalgo.array.Array1D<Double> getSplittingRates(EdgeSegment entrySegment)
Obtain the downstream splitting rates of given node entry segment (can be modified)- Parameters:
entrySegment
- to obtain for- Returns:
- currently set next splitting rates
-
getSplittingRate
default double getSplittingRate(EdgeSegment entrySegment, EdgeSegment exitSegment)
Obtain the splitting rate of a given turn (non-modifiable)- Parameters:
entrySegment
- to obtain forexitSegment
- to obtain for- Returns:
- currently set next splitting rates, 0 if no information present
-
resetTrackedNodes
void resetTrackedNodes()
Reset registered tracked nodes
-
resetPotentiallyBlockingNodes
void resetPotentiallyBlockingNodes()
Reset registered potentially blocking nodes
-
resetSplittingRates
void resetSplittingRates()
Reset splitting rate data
-
reset
default void reset()
Reset all splitting rate data
-
-