Petroleum Model
All methods for constructing PetroleumModels should be defined on the following type:
PetroleumModels.AbstractPetroleumModel
— Typeroot of the petroleum formulation hierarchy
which utilizes the following (internal) functions:
PetroleumModels.build_ref
— FunctionBuilds 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.
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.
Formulation | Steady-State | Transient | Description |
---|---|---|---|
LP | Y | Y | Physics is modeled using nonlinear equations. |