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 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 for
        exitSegment - 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