Package org.goplanit.assignment.ltm.sltm
Class StaticLtm
- java.lang.Object
-
- org.goplanit.component.PlanitComponent<NetworkLoading>
-
- org.goplanit.supply.networkloading.NetworkLoading
-
- org.goplanit.assignment.TrafficAssignment
-
- org.goplanit.assignment.ltm.LtmAssignment
-
- org.goplanit.assignment.ltm.sltm.StaticLtm
-
- All Implemented Interfaces:
Serializable
,Comparable<IdAble>
,EventListener
,PlanitComponentListener
,InteractorAccessee
,LinkInflowOutflowAccessee
,TrafficAssignmentComponentAccessee
,EventListener
,ExternalIdAble
,IdAble
public class StaticLtm extends LtmAssignment implements LinkInflowOutflowAccessee
Static Link Transmission Model implementation (sLTM) for network loading based on solution method presented in Raadsen and Bliemer (2021) General solution scheme for the Static Link Transmission Model .Defaults initiated via configurator:
- Fundamental diagram: NEWELL
- Node Model: TAMPERE
- Author:
- markr
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.goplanit.assignment.TrafficAssignment
ALGORITHM_B, ELTM, initialLinkSegmentCostByTimePeriod, initialLinkSegmentCostTimePeriodAgnostic, SLTM, TRADITIONAL_STATIC_ASSIGNMENT
-
-
Constructor Summary
Constructors Constructor Description StaticLtm(StaticLtm sltm)
Copy ConstructorStaticLtm(IdGroupingToken groupId)
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Map<String,String>
collectSettingsAsKeyValueMap()
Provide all the settings of this particular component by name and value, where each value is a string representation of the underlying entityOutputTypeAdapter
createOutputTypeAdapter(OutputType outputType)
Create the output type adapter for the current output type, specifically tailored towards the assignment type that we are builingStaticLtm
deepClone()
deep clone on planit component should attempt to also update internal dependencies between deep cloned containers where possibleprotected void
executeEquilibration()
Run equilibration after resources initialized, including saving resultsMacroscopicNetwork
getInfrastructureNetwork()
Get the physical network for the current assignmentprotected StaticLtmSimulationData
getIterationData()
Return the simulation data for the current iterationint
getIterationIndex()
Collect the current iteration index of the simulationdouble[]
getLinkSegmentInflowsPcuHour()
Get link segment inflow rates for all link segments, where index is based on id of the link segment.double[]
getLinkSegmentOutflowsPcuHour()
Get link segment outflow rates for all link segments, where index is based on id of the link segment.protected StaticLtmAssignmentStrategy
getStrategy()
Return the assignment solution strategy usedprotected void
initialiseBeforeExecution()
Initialise the components before we start any assignment + create the assignment strategy (bush or path based)boolean
isActivateBushBased()
Verify if bush based assignment is applied or notboolean
isActivateDetailedLogging()
Collect the flag indicating link storage constraints are active or notboolean
isDisableLinkStorageConstraints()
Verify to enable link storage constraints or notboolean
isEnforceMaxEntropyFlowSolution()
Collect the flag indicating to enforce max entropy flow solution is active or notvoid
reset()
All components should be able to reset going back to some representative initial statevoid
setActivateDetailedLogging(boolean flag)
Set the flag indicating link storage constraints are active or notvoid
setDisableLinkStorageConstraints(boolean flag)
Set the flag indicating link storage constraints are active or notvoid
setEnforceMaxEntropyFlowSolution(boolean enforceMaxEntropyFlowSolution)
Set the flag indicating to enforce max entropy flow solution is active or notvoid
setType(StaticLtmType type)
Set the flag indicating what type of bush based assignment is to be appliedStaticLtm
shallowClone()
Create a shallow copy of this entityprotected void
verifyComponentCompatibility()
Verify if the create traffic assignment (sbu)components are compatible with each other and the created transport network.-
Methods inherited from class org.goplanit.assignment.ltm.LtmAssignment
getPathChoice, getUsedNetworkLayer, setFundamentalDiagram, setNodeModel, setPathChoice, verifyNetworkDemandZoningCompatibility
-
Methods inherited from class org.goplanit.assignment.TrafficAssignment
checkForEmptyComponents, createLoggingPrefix, createTransportNetwork, disbandTransportNetwork, execute, finalizeAfterExecution, getDemands, getGapFunction, getOutputManager, getPhysicalCost, getSmoothing, getTotalNumberOfNetworkSegments, getTotalNumberOfNetworkVertices, getTrafficAssignmentComponent, getTransportNetwork, getVirtualCost, getZoning, logAllSettings, logRegisteredComponentName, registerComponent, setDemands, setGapFunction, setInfrastructureNetwork, setInitialLinkSegmentCost, setInitialLinkSegmentCost, setOutputManager, setPhysicalCost, setSmoothing, setVirtualCost, setZoning
-
Methods inherited from class org.goplanit.component.PlanitComponent
equals, getComponentType, getExternalId, getId, getIdGroupingToken, getKnownSupportedEventTypes, getXmlId, hashCode, onPlanitComponentEvent, setExternalId, setXmlId
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.goplanit.utils.event.EventListener
hasKnownSupportedEventTypes
-
Methods inherited from interface org.goplanit.utils.id.ExternalIdAble
appendExternalId, appendExternalId, getIdsAsString, getSplitExternalId, getSplitExternalId, hasExternalId, hasXmlId, setXmlId
-
Methods inherited from interface org.goplanit.utils.id.IdAble
compareTo, idEquals, idHashCode
-
Methods inherited from interface org.goplanit.interactor.LinkInflowOutflowAccessee
getCompatibleAccessor, getLinkSegmentInflowPcuHour, getLinkSegmentOutflowPcuHour
-
Methods inherited from interface org.goplanit.interactor.TrafficAssignmentComponentAccessee
getTrafficAssignmentComponent
-
-
-
-
Constructor Detail
-
StaticLtm
public StaticLtm(IdGroupingToken groupId)
Constructor- Parameters:
groupId
- contiguous id generation within this group for instances of this class
-
StaticLtm
public StaticLtm(StaticLtm sltm)
Copy Constructor- Parameters:
sltm
- to copy
-
-
Method Detail
-
verifyComponentCompatibility
protected void verifyComponentCompatibility() throws PlanItException
Verify if the create traffic assignment (sbu)components are compatible with each other and the created transport network. Called before starting the simulation and after the transport network has been generated from physical and virtual network. So this is called after the build of the assignment instance- Overrides:
verifyComponentCompatibility
in classLtmAssignment
- Throws:
PlanItException
- thrown if the components are not compatible
-
initialiseBeforeExecution
protected void initialiseBeforeExecution() throws PlanItException
Initialise the components before we start any assignment + create the assignment strategy (bush or path based)- Overrides:
initialiseBeforeExecution
in classTrafficAssignment
- Throws:
PlanItException
- thrown if there is an error
-
executeEquilibration
protected void executeEquilibration() throws PlanItException
Run equilibration after resources initialized, including saving results- Specified by:
executeEquilibration
in classTrafficAssignment
- Throws:
PlanItException
- thrown if there is an error
-
getIterationData
protected StaticLtmSimulationData getIterationData()
Return the simulation data for the current iteration- Returns:
- simulation data
-
getStrategy
protected StaticLtmAssignmentStrategy getStrategy()
Return the assignment solution strategy used- Returns:
- used assignment strategy
-
getInfrastructureNetwork
public MacroscopicNetwork getInfrastructureNetwork()
Get the physical network for the current assignment- Overrides:
getInfrastructureNetwork
in classTrafficAssignment
- Returns:
- physical network for the current assignment
-
createOutputTypeAdapter
public OutputTypeAdapter createOutputTypeAdapter(OutputType outputType)
Create the output type adapter for the current output type, specifically tailored towards the assignment type that we are builing- Specified by:
createOutputTypeAdapter
in classTrafficAssignment
- Parameters:
outputType
- the current output type- Returns:
- the output type adapter corresponding to the current traffic assignment and output type
-
getIterationIndex
public int getIterationIndex()
Collect the current iteration index of the simulation- Specified by:
getIterationIndex
in classTrafficAssignment
- Returns:
- current iteration index
-
shallowClone
public StaticLtm shallowClone()
Create a shallow copy of this entity- Specified by:
shallowClone
in interfaceIdAble
- Specified by:
shallowClone
in classLtmAssignment
- Returns:
- shallow copy of entity
-
deepClone
public StaticLtm deepClone()
deep clone on planit component should attempt to also update internal dependencies between deep cloned containers where possible- Specified by:
deepClone
in interfaceIdAble
- Specified by:
deepClone
in classLtmAssignment
- Returns:
- deep copy of entity
-
isDisableLinkStorageConstraints
public boolean isDisableLinkStorageConstraints()
Verify to enable link storage constraints or not- Returns:
- true when enabled, false otherwise
-
setDisableLinkStorageConstraints
public void setDisableLinkStorageConstraints(boolean flag)
Set the flag indicating link storage constraints are active or not- Parameters:
flag
- when true activate, when false disable
-
setActivateDetailedLogging
public void setActivateDetailedLogging(boolean flag)
Set the flag indicating link storage constraints are active or not- Parameters:
flag
- when true activate, when false disable
-
isActivateBushBased
public boolean isActivateBushBased()
Verify if bush based assignment is applied or not- Returns:
- true when activated, false otherwise
-
setType
public void setType(StaticLtmType type)
Set the flag indicating what type of bush based assignment is to be applied- Parameters:
type
- to use
-
isActivateDetailedLogging
public boolean isActivateDetailedLogging()
Collect the flag indicating link storage constraints are active or not- Returns:
- flag when true activated, when false disabled
-
isEnforceMaxEntropyFlowSolution
public boolean isEnforceMaxEntropyFlowSolution()
Collect the flag indicating to enforce max entropy flow solution is active or not- Returns:
- flag when true activated, when false disabled
-
setEnforceMaxEntropyFlowSolution
public void setEnforceMaxEntropyFlowSolution(boolean enforceMaxEntropyFlowSolution)
Set the flag indicating to enforce max entropy flow solution is active or not- Parameters:
enforceMaxEntropyFlowSolution
- set flag to enforce max entropy solution
-
getLinkSegmentInflowsPcuHour
public double[] getLinkSegmentInflowsPcuHour()
Get link segment inflow rates for all link segments, where index is based on id of the link segment.- Specified by:
getLinkSegmentInflowsPcuHour
in interfaceLinkInflowOutflowAccessee
- Returns:
- link segment inflows for all modes
-
getLinkSegmentOutflowsPcuHour
public double[] getLinkSegmentOutflowsPcuHour()
Get link segment outflow rates for all link segments, where index is based on id of the link segment.- Specified by:
getLinkSegmentOutflowsPcuHour
in interfaceLinkInflowOutflowAccessee
- Returns:
- link segment inflows for all modes
-
reset
public void reset()
All components should be able to reset going back to some representative initial state- Overrides:
reset
in classLtmAssignment
-
collectSettingsAsKeyValueMap
public Map<String,String> collectSettingsAsKeyValueMap()
Provide all the settings of this particular component by name and value, where each value is a string representation of the underlying entity- Specified by:
collectSettingsAsKeyValueMap
in classPlanitComponent<NetworkLoading>
- Returns:
- name-value map of all (user configurable) settings
-
-