Petroleum Model

All methods for constructing PetroleumModels should be defined on the following type:

which utilizes the following (internal) functions:

PetroleumModels.build_refFunction

Builds the ref dictionary from the data dictionary. Additionally the ref dictionary would contain fields populated by the optional vector of ref_extensions provided as a keyword argument.

source

Network Formulations

Type Hierarchy

We begin with the top of the hierarchy, where we can distinguish between the physics of petroleum flow models. There is currently one formulation supported in PetroleumModels, a full non convex formulation.

AbstractLPModel <: AbstractPetroleumModel

Petroleum Models

Each of these forms can be used as the type parameter for a PetroleumModel, i.e.:

LPPetroleumModel <: AbstractLPForm

For details on AbstractPetroleumModel, see the section on Petroleum Model.

User-Defined Abstractions

The user-defined abstractions begin from a root abstract like the AbstractPetroleumModel abstract type, i.e.

AbstractMyFooModel <: AbstractPetroleumModel

StandardMyFooForm <: AbstractFooModel
FooPetroleumModel = AbstractPetroleumModel{StandardFooForm}

Supported Formulations

All formulation names refer to how underlying physics of a gas network is modeled. For example, the LP model uses a non convex form of the Bernoulli equations using the Leibenzon relationship.

FormulationSteady-StateTransientDescription
LPYYPhysics is modeled using nonlinear equations.