Optionally, one or more LoadingRack objects can also be specified. This allows the algorithm to account for the "volume on wheels"—product that has already left the tank farm but has not yet been registered as shipped by the corresponding ShipmentNode.
Priority A is enabled by the
enablePriorityAShipmentPlan parameter (Label:
A: Fulfillment shipment plan). One or more ShipmentNode objects are assigned via the
priorityAShipmentNodes parameter (Label:
R: Shipment nodes (ShipmentNode[])). Optionally, one or more LoadingRack objects can be also assigned via the
priorityALoadingRacks parameter (Label:
O: Loading racks (LoadingRack[])).
Priority B — Next Month Pre-AccumulationPriority B is configured using two parameters:
- minimum shipment plan for the next month, above which pre-accumulation is activated
- additional accumulation volume, defining how much extra product should be stored.
For example, if the next month's planned shipment exceeds 5,000 t, the system can automatically request an additional 2,000 t of inventory.
Priority B is enabled by the
enablePriorityBNextMonthPlan parameter (Label:
B: Additional load for next month). The activation threshold is specified by the
nextMonthMinimumPlanValue parameter (Label:
Minimum planned load for next month (tons)), which defines the minimum planned shipment volume required to trigger pre-accumulation. The additional accumulation volume is configured using the
nextMonthAdditionalMass parameter (Label:
Additional mass (tons)).
Priority C — Final Last Tank Top-UpPriority C requires the user to specify the minimum operational fill level of the last active loading tank. If the calculated residuals remains below this threshold after execution of higher priorities, the Petroleum Refining Library generates an additional request to complete the last active tank to the specified level before passportization begins.
Priority C is enabled by the
enablePriorityCExtraLoad parameter (Label:
C: Active tank additional load). The minimum operational fill level required to complete tank loading and initiate passportization is specified using the
priorityCMinPassportLoadLevel parameter (Label:
Min tank amount to end loading (tons)).
Priority D — User-Defined ReservePriority D is configured interactively during simulation. An additional runtime menu allows the user to specify an extra accumulation volume, which is added as a low-priority request after all higher-priority requirements have been satisfied.
Additional operational behavior can be configured using two optional parameters The
forceFillMode parameter (Label:
Top-up all tanks) keeps the inlet valve open even after Priority A has been fulfilled. In this mode, the reservoir park continues accepting incoming product until all available storage capacity has been utilized. Storage availability may also change during
tank repair simulation. This option is useful when the objective is to maximize inventory rather than stop accumulation immediately after the current shipment requirements have been satisfied.
The
forceLastTankPassportization parameter (Label:
Force last tank passportization) provides finer control over the behavior of the last active loading tank when
forceFillMode is enabled. When activated, the last active tank is forced into the passportization state immediately after the Priority A accumulation target has been reached, even if the tank is not completely full. This option is recommended for systems with intermittent or low inflow rates. Otherwise, the last active tank may remain in the filling state for an extended period, delaying passportization and shipment even when sufficient inventory is available to satisfy the shipment plan. For continuous high-flow systems, this option is typically unnecessary because the last tank naturally reaches full capacity and proceeds to passportization.