Petroleum Tank Farm Simulation (Part 1): Accumulative Tank Farms

       Reservoir parks are a key components of oil and gas simulation models. They provide hydrocarbon storage, buffering, and redistribution of material flows between production units within a refinery logistics system. Depending on their position in the technological chain, reservoir parks operate as inlet buffers, intermediate storage nodes, or final dispatch units in refinery tank farm and petroleum terminal simulation environments. From a process perspective, reservoir parks are divided into flow-through and accumulative storage systems.

       This work focuses on accumulative reservoir parks, which support filling, storage, product certification (passportization), and shipment of production batches according to production scheduling and delivery plans. Accumulative reservoir parks also handle internal flow transfers. Modeling of accumulative reservoir parks enables analysis of operational scenarios in petroleum refining systems under constraints of limited storage capacity. It supports evaluation of accumulation dynamics, certification delays, and shipment cycles, forming a basis for storage operations modeling, refinery logistics optimization, and storage capacity constraints analysis in complex industrial logistics systems
       Within the PRL, this functionality is implemented through the dedicated component - Reservoir Park Accumulative (RpAccumulative), which provides a specialized storage agent for multi-reservoir system dynamics in oil storage simulation and petroleum terminal simulation environments. It is used to build digital representations of refineries, oil terminals, gas processing plants, storage facilities, and other petroleum and petrochemical systems.
       RpAccumulative simulates hydrocarbon filling, storage operations, including accumulation, storage, product certification (passportization), and shipment workflows driven by production scheduling and alternative control strategies. This enables accurate representation of storage tank farm dynamics under real operational and capacity constraints. RpAccumulative supports accounting of storage capacity constraints, analysis of hydrocarbon residual dynamics, and evaluation of operational scenarios within a refinery tank farm system. It is also applied for production plan feasibility analysis, assessment of how reservoir park limitations impact overall refinery performance, and optimization of storage and dispatch strategies in complex industrial logistics systems.
One reservoir park — one product

Solution Purpose

       RpAccumulative is a specialized component for modeling accumulative reservoir parks in oil and gas simulation and broader process industry simulation models. It is used to build digital representations of refineries, oil terminals, gas processing plants, storage facilities, and other petroleum and petrochemical systems. The component simulates hydrocarbon accumulation, storage operations, storage, product certification (passportization), and shipment workflows driven by production scheduling and alternative control strategies. This enables accurate representation of storage tank farm dynamics under real operational and capacity constraints.
       RpAccumulative supports modeling of storage capacity constraints, analysis of hydrocarbon residuals dynamics, and evaluation of operational scenarios within a refinery tank farm system. It is also applied for production plan feasibility analysis, assessment of how reservoir park limitations impact overall refinery performance, and optimization of storage and dispatch strategies in complex industrial logistics systems.

Key Features of RpAccumulative

       RpAccumulative provides a comprehensive feature set for modeling accumulative reservoir parks in oil and gas simulation and process industry simulation models, enabling high-fidelity representation of storage tank farm systems and refinery logistics operations.

       The component provides the following capabilities:
       - database-driven configuration of reservoir parks with automatic instantiation of storage tanks, including capacity constraints, allowable fill ranges, and initial inventory conditions;
       - multi-stream handling with simultaneous inbound and outbound flows in a refinery tank farm system;
       - production schedule feasibility analysis under storage capacity constraints and shipment requirements;
       - support for multiple operational modes, including production-driven operation and flow-through (direct transfer) mode;
       - bypass routing logic for feed streams when storage capacity is unavailable;
       - handling of auxiliary material flows, including additives, losses, and destructible streams within hydrocarbon storage systems;
       - lifecycle state management of tanks, including filling, certification (passportization), shipment, and reservation states;
       - integration with shipment nodes and loading terminals, enabling automated calculation of required residual levels for production scheduling workflows;
       - support for floating or shared tanks that can temporarily belong to multiple reservoir parks within distributed industrial logistics systems;

       RpAccumulative enables the construction of high-fidelity storage tank farm models of varying complexity while preserving accurate interaction dynamics with adjacent units in complex oil and gas simulation environments.

Principles of Accumulative Reservoir Park Construction

       Construction of RpAccumulative is based on a user-defined reservoir park configuration persisted in a database. During model initialization, the PRL platform deterministically instantiates all storage tanks belonging to the reservoir park according to this configuration.

       For each reservoir, the following parameters are defined:
       - storage capacity;
        - minimum allowable product volume;
        - maximum fill level;
        - initial inventory volume;
        - initial operational state.
A strict distinction is enforced between geometric tank capacity and the maximum allowable fill level. The maximum fill level is defined below the physical capacity to ensure compliance with operational safety constraints and process limitations in hydrocarbon storage systems.
Each reservoir is initialized in one of the following states:
• IN_FILLING — active filling mode;
• PASSPORTIZATION — product certification stage;
• SHIPMENT — active withdrawal mode;
• RESERVE — floating tank temporarily assigned to another reservoir park.
Where required, additional process attributes, including additive streams, product losses, and auxiliary material flows affecting oil and gas simulation models, may be retrieved from the database.
Following tank instantiation, PRL automatically establishes connectivity between the reservoir park and adjacent components of the process industry simulation model.
A reservoir park may receive one or multiple incoming material streams. These sources are defined in the inputFlows[] array. Similarly, one or more outgoing material streams are defined in the outputFlows[] array.
Although most configurations assume a single outgoing product stream, certain process schemes support simultaneous extraction of multiple products generated through phase separation of feedstock. In such cases, output distribution is governed by recipe-based allocation rules. This allows the reservoir park to operate as a simplified separation unit within a refinery tank farm system, distributing stabilized feedstock into multiple product streams.
An optional bypass inlet stream may be configured to redirect incoming flows when all tanks are fully occupied and intake is not possible. If no bypass stream is defined, the inlet valve is automatically closed under full-capacity conditions, resulting in suspension of incoming material flow.
During the final stage of initialization, maintenance schedules are generated, defining time windows for tank decommissioning and reactivation within the storage tank farm system.

Operating Principles of an Accumulative Reservoir Park

Product accumulation is executed in a single active reservoir at any given time. At each simulation step, only one tank is permitted to receive incoming material, ensuring deterministic flow allocation within the reservoir park.
The selection of the active reservoir depends on the operational mode of the system.
In production planning mode, priority is assigned to the most filled available reservoir. This approach accelerates the completion of accumulation cycles, enables earlier transition of tanks into the passportization state, and ensures alignment with scheduled shipment targets.
In transfer (pumping) mode, the least filled reservoir is selected to balance inventory distribution across the system.
Accumulation continues until either the maximum allowable fill level is reached or additional termination conditions are satisfied, such as attainment of a target inventory level. Upon completion of the filling process, the reservoir transitions into the passportization state, and the next available reservoir is selected to receive incoming flow.
If no free reservoir is available, the incoming stream may be redirected to a bypass pipeline. In the absence of a configured bypass route, the inlet flow is automatically suspended until storage capacity becomes available.
After completion of passportization, the accumulated product batch becomes available for withdrawal. Product discharge is performed sequentially from reservoirs in the shipment state, according to the configured withdrawal rate.

Operating Principles of an Accumulative Reservoir Park

Product accumulation is executed in a single active reservoir at any given time. At each simulation step, only one tank is permitted to receive incoming material, ensuring deterministic flow allocation within the reservoir park.
The selection of the active reservoir depends on the operational mode of the system.
In production planning mode, priority is assigned to the most filled available reservoir. This approach accelerates the completion of accumulation cycles, enables earlier transition of tanks into the passportization state, and ensures alignment with scheduled shipment targets.
In transfer (pumping) mode, the least filled reservoir is selected to balance inventory distribution across the system.
Accumulation continues until either the maximum allowable fill level is reached or additional termination conditions are satisfied, such as attainment of a target inventory level. Upon completion of the filling process, the reservoir transitions into the passportization state, and the next available reservoir is selected to receive incoming flow.
If no free reservoir is available, the incoming stream may be redirected to a bypass pipeline. In the absence of a configured bypass route, the inlet flow is automatically suspended until storage capacity becomes available.
After completion of passportization, the accumulated product batch becomes available for withdrawal. Product discharge is performed sequentially from reservoirs in the shipment state, according to the configured withdrawal rate.

Operating Modes of RpAccumulative

RpAccumulative operates in three distinct modes, each defining a specific control strategy for material flow management within the reservoir park.

Transfer mode — Product is routed through the reservoir park without consideration of production plans. Flow handling is governed exclusively by local availability and transfer logic.
Production planning mode — Accumulation and discharge are governed by predefined production schedules and target shipment volumes. Flow allocation and reservoir selection are driven by planning constraints and inventory targets.
Direct flow mode — The reservoir park is bypassed within the simulation model. Outlet flow rate is set equal to inlet flow rate, and storage and buffering behavior are disabled.

Production Planning Mode of RpAccumulative

RpAccumulative operates in a production planning mode, in which accumulation and discharge processes are governed by a priority-based request system generated by the downstream withdrawal node.
The control logic is structured into four hierarchical priority levels:
• Current month plan fulfillment — Inventory allocation is performed to ensure execution of the current month’s shipment plan, taking into account existing stock levels within the reservoir park.
• Next month pre-accumulation — After satisfaction of current-period demand, additional inventory is accumulated to support planned shipments in the subsequent month.
• Final tank top-up — When required, the last active reservoir is filled to the minimum operational volume necessary to enable certification (passportization) and subsequent shipment.
• User-defined reserve volume — Remaining available storage capacity is allocated to user-defined accumulation targets.
This hierarchical prioritization ensures deterministic coordination between accumulation and discharge processes while maintaining compliance with storage constraints and operational limits of the reservoir park.
A detailed specification of the underlying reservoir control mechanisms is provided in a separate publication.

Integration with Other PRL Components


RpAccumulative is integrated with other components of the PRL library, typically positioned downstream of the reservoir park within the process chain architecture.

Shipment Node

The shipment node contains planned product delivery volumes loaded from a database. RpAccumulative interacts with one or multiple shipment nodes and, based on defined production plans, determines additional inventory requirements necessary to ensure fulfillment of the production program.

This integration is used in the generation of first-priority accumulation requests and establishes synchronization between accumulation processes and shipment planning logic.

Loading Terminal (Rail Loading Rack)

Loading terminals are used for modeling product loading into railway tank cars. This integration enables the system to account for product volumes already “in transit”, as well as operational delays associated with train arrival, loading operations, and dispatch.

Incorporation of loading terminal dynamics directly influences required inventory levels within the reservoir park and improves the accuracy of shipment modeling and production plan execution.

System-Level Integration Statement

The combined use of RpAccumulative, shipment nodes, and loading terminals enables end-to-end modeling of product movement — from accumulation in storage tanks to final dispatch to external consumers.

Typical Application Areas

RpAccumulative is applicable to the development of simulation models across a wide range of oil, gas, and petrochemical production systems. Due to its support for production planning, storage constraints, and advanced reservoir control logic, the component can be used to represent both individual reservoir parks and large-scale industrial production networks.

Application domains include:

crude oil and intermediate product storage systems at oil refineries;
reservoir parks at gas processing facilities;
oil depots and bulk storage terminals;
intermediate storage systems located between processing units in refinery chains;
finished product storage facilities;
storage systems for unstable gas condensate, crude oil, and related hydrocarbon streams;
reservoir parks within petrochemical production facilities.

Additionally, RpAccumulative can be used to model interactions between multiple reservoir parks, evaluate production plan feasibility, and analyze the impact of storage constraints on overall refinery performance.

In general, the component is applicable to any system requiring accumulation, storage, certification (passportization), and dispatch of liquid hydrocarbon products within industrial process environments.
RpAccumulative supports both individual reservoir modeling and large-scale reservoir park systems, including distributed storage networks. The component enables interaction between multiple independent reservoir parks through shared “floating” reservoirs. This functionality enables the modeling of large integrated oil refineries, gas processing plants, and petrochemical complexes.

FAQ

Can reservoir parks consisting of multiple tanks be modeled?
Yes. RpAccumulative supports reservoir parks of arbitrary configuration with individual parameters defined for each tank.
Are multiple incoming and outgoing flows supported?
Yes. The component supports simultaneous handling of multiple incoming and outgoing material streams.
Can production plans be taken into account?
Yes. RpAccumulative supports production planning mode and allows implementation of custom control algorithms.
Can the component be used without production plans?
Yes. In transfer mode, product is routed through the system without consideration of shipment plans or target inventory levels.
What happens if all tanks are occupied?
Incoming flow may be redirected to a bypass pipeline. If no bypass is defined, intake is automatically suspended until storage capacity becomes available.
Is maintenance and tank downtime supported?
Yes. RpAccumulative supports maintenance scheduling and temporary exclusion of individual tanks from operation.
Can additives and product losses be modeled?
Yes. The component supports auxiliary streams, including additives, losses, and destructible material flows.
Can products in railway tank cars be accounted for?
Yes. When using a loading terminal model, RpAccumulative accounts for product volumes “in transit” and adjusts required inventory levels accordingly.
Does the component integrate with shipment nodes?
Yes. RpAccumulative retrieves shipment plans and automatically determines required accumulation volumes.
Can multiple interacting reservoir parks be modeled?
Yes. The component supports interaction between multiple reservoir parks and the use of floating (shared) reservoirs.
Can different hydrocarbon products be modeled?
Yes. RpAccumulative supports crude oil, unstable gas condensate, intermediate streams, and finished products. However, each reservoir park is limited to a single product type.
Can model parameters be loaded from a database?
Yes. Configuration data, initial inventories, maintenance schedules, shipment plans, and additional model parameters can be loaded from a database.
Can custom control algorithms be implemented?
Yes. Users are not restricted to built-in logic and can implement custom accumulation and discharge control strategies.
Can a reservoir park be temporarily excluded from the model?
Yes. Direct flow mode can be used, in which outlet flow equals inlet flow and reservoir park dynamics are bypassed.
A working version of this model (with sources) is also available on AnyLogic Cloud
PRL free to try version can be download here

Last updated on 23.06.2026