This section provides various OpenServer Commands for Enabling or Disabling various elements in GAP.
Function Name Description DoCmd GAP.MOD[{PROD}].
SetDisableSystemValidation()
Will Disable the System Validation flag (under Options tab of GAP)
DoCmd GAP.MOD[{PROD}].
ClearDisableSystemValidation()
Will Enable the System Validation flag (under Options tab of GAP)
DoGet GAP.MOD[{PROD}].
IsDisableSystemValidation
Will allow checking whether the System Validation flag is enabled or disabled.
DoCmd GAP.MOD[{PROD}].
SetDisableAutomaticMasking()
Will Disable the Automatic Masking flag (under Options tab of GAP)
DoCmd GAP.MOD[{PROD}].
ClearDisableAutomaticMasking()
Will Enable the Automatic Masking flag (under Options tab of GAP)
DoGet GAP.MOD[{PROD}].
IsDisableAutomaticMasking
Will allow checking whether the Automatic Masking flag is enabled or disabled.
DoCmd GAP.MOD[{PROD}].
SetDisableLabelValidation()
Will Disable the Label Validation flag (under Options tab of GAP)
DoCmd GAP.MOD[{PROD}].
ClearDisableLabelValidation()
Will Enable the Label Validation flag (under Options tab of GAP)
DoGet GAP.MOD[{PROD}].
IsDisableLabelValidation
Will allow checking whether the Label Validation flag is enabled or disabled.
DoCmd GAP.MOD[{PROD}].
SetDisablePrpGapWellTypeValidation()
Will Disable the PROSPER Well Type Validation flag (under Options tab of GAP)
DoCmd GAP.MOD[{PROD}].
ClearDisablePrpGapWellTypeValidation ()
Will Enable the PROSPER Well Type Validation flag (under Options tab of GAP)
DoGet GAP.MOD[{PROD}].
IsDisablePrpGapWellTypeValidation
Will allow checking whether the PROSPER Well Type Validation flag is enabled or disabled.
DoCmd GAP.MOD[{PROD}].
SetDisablePredScript()
Will Disable the Disable Prediction Script flag (under Predictions tab of GAP)
DoCmd GAP.MOD[{PROD}].
ClearDisablePredScript()
Will Enable the Disable Prediction Script flag (under Predictions tab of GAP)
DoGet GAP.MOD[{PROD}].
IsDisableDisablePredScript
Will allow checking whether the Disable Prediction Script flag is enabled or disabled.
DoCmd GAP.MOD[{PROD}].
SetEnablePredScriptDoubleQuotes()
Will Disable the Prediction Script double quotes flag (under Predictions tab of GAP)
DoCmd GAP.MOD[{PROD}].
ClearEnablePredScriptDoubleQuotes()
Will Enable the Prediction Script double quotes flag (under Predictions tab of GAP)
DoGet GAP.MOD[{PROD}].
IsEnablePredScriptDoubleQuotes
Will allow checking whether the Prediction Script double quotes flag is enabled or disabled.
4.1.12 Scheduling
The user can set the schedule of any model element for the prediction run.
All the schedule events will need to be preceded by the following OpenServer string structure:
GAP.MOD[i].EQUIP[j].SCHEDULE[k]
If the schedule event refers to the entire system, i.e., production network or associated injection network for instance, the following OpenServer string structure can be used:
GAP.MOD[i].SCHEDULE[k]
Where the index i refers to the type of model considered (i.e. refers to the Variables at MOD level, MOD[i] section), the index j refers to the name or numerical index of the network element considered (i.e. refers to the Model Equipement List, EQUIP[i]
section) and the index k refers to the row of the schedule event considered in the schedule event list..
For each record in the schedule, the following fields are considered:
- Date - Event type
- Constraint type (or OpenServer variable) - Constraint value
4.1.12.1Schedule Count
The total number of schedule rows assigned to an element can be derived using the following string:
GAP.MOD[i].EQUIP[j].SCHEDULE.COUNT
4.1.12.2Date
The variable string for the date in the ith model, jth equipment and kth record in the schedule is the following:
GAP.MOD[i].EQUIP[j].SCHEDULE[k].DATE
The above string refers to the date of the scheduled event as a number, and not as a day/month/year format date.
To refer to the date as a day/month/year format, the following string can be used:
GAP.MOD[i].EQUIP[j].SCHEDULE[k].DATE.DATESTR
4.1.12.3Event type
The variable string for the event type in the ith model and jth record in the schedule is:
GAP.MOD[i].EQUIP[j].SCHEDULE[k].TYPE This variable is a read only variable.
The existing types of event and their availability, depends of the type of element considered.
A list of associated keywords are described below:
Event Type Associated Keyword
Bypass BYPASS_ON
Change constraints CONSTRAINT_CHANGE
Change Diameter CHK_SIZECHNG
Change Downtime DOWNTIME_CHANGE
Change Fixed Rate RATE_CHANGE
Fixed rate (Gas) TANK_FIXGAS
Fixed rate (Gas) - off TANK_OFF_FIXGAS
Fixed rate (Wat) TANK_FIXWAT
Fixed rate (Wat) - off TANK_OFF_FIXWAT
Gas recycling TANK_RECYCGAS_PC
Gas recycling - off TANK_OFF_RECYCGAS_PC
Gas recycling (Prd – Amount) TANK_RECYCGAS_FIX Gas recycling (Prd – Amount) - off TANK_OFF_RECYCGAS_FIX
Mask MASK
Pressure target TANK_TARGPRES
Pressure target - off TANK_OFF_TARGPRES
Start well WELL_ON
Stop well WELL_OFF
Stop well, no X-flow WELL_OFF_NO_CROSS
Unbypass BYPASS_OFF
Unmask UNMASK
Voidage Replacement (Gas) TANK_VOIDGAS
Voidage Replacement (Gas) - off TANK_OFF_VOIDGAS
Voidage Replacement (Wat) TANK_VOIDWAT
Voidage Replacement (Wat) - off TANK_OFF_VOIDWAT
Water recycling TANK_RECYCWAT_PC
Water recycling - off TANK_OFF_RECYCWAT_PC
4.1.12.4Constraint Type
When the type of event considered refers to the modification of a model constraint, the constraint to modify needs to be specified.
The string referring to the type of constraint in the ith model and kth record in the schedule is:
GAP.MOD[i]. EQUIP[j].SCHEDULE[k].LPAR[0]
See Constraint_Level_and_Type for further description of constraint names.
4.1.12.5Constraint Value
When the event type considered refers to the setup of a model parameter value or the modification of one of the model constraints, the following string will be used:
GAP.MOD[i]. EQUIP[j].SCHEDULE[k].CVAL[0]
When retrieving a value of a scheduled element, the previous string will return both value and the unit in which it is expressed.
Example: To setup the maximum liquid constraint to 5000STB/d on the 01/01/2005 in a well labeled W1, the following set of strings will be used:
DoSet “GAP.MOD[0]. EQUIP[{W1}].SCHEDULE[0].DATE.DATESTR”,
“01/01/2005”
DoSet “GAP.MOD[0]. EQUIP[{W1}].SCHEDULE[0].LPAR[0]”, “MAXQLIQ”
DoSet “GAP.MOD[0]. EQUIP[{W1}].SCHEDULE[0].CVAL[0]”, 5000
4.1.12.6Schedule Reset
The existing GAP schedule can be reset, either at the production system level, associated injection system level or at the element level using the following strings:
At system level: GAP.MOD[i].SCHEDULE.RESET
At equipment level: GAP.MOD[i].EQUIP[j].SCHEDULE.RESET Note that these should be used with a Doset for example:
At system level: Doset (“GAP.MOD[{PROD}].SCHEDULE.RESET”), 1
At Equipment level: Doset (“GAP.MOD[{PROD}].EQUIP[{Separator}].SCHEDULE.
RESET”), 1
4.1.12.7Apply Schedule To
The OpenServer commands to access the "Apply Schedule To" section are : DoCmd ("Gap.APPLYSCHEDULETO({20/04/2012})")
DoCmd ("GAP.CLEARAPPLIEDSCHEDULE()")
4.1.13 Constraints
4.1.13.1Constraint Level and Type
The following listed constraints are available within GAP.
The availability of these constraints on the system element considered such as a well, joint, separator, etc., will depend of the nature of the element.
The string defining the constraint type should always be preceded by a prefix describing the system level and element on which this constraint should be applied:
- MOD Level Constraints (i.e. System Constraints) :
The constraint name should be preceded in the OpenServer string by a GAP.MOD[{PROD}] prefix.
Example: To set the value of the maximum gas rate constraint applied to the system to 1000MMSCF/d, the following string could be used:
DoSet (“GAP.MOD[0].MAXQGAS”),1000 - NODE Level Constraints :
The constraint name should be preceded in the OpenServer string by a GAP.MOD[{PROD}].NODETYPE prefix.
Example: To set the value of the maximum gas rate constraint applied to the well
“WELL 1” to 100MMSCF/d, the following string could be used:
DoSet (“GAP.MOD[0].WELL[{WELL 1}].MAXQGAS”),100
The well abandonment constraints can be set for each well layer independently using the following structure:
GAP.MOD[0].WELL[{WELL 1}].IPR[i].ABMAXGOR The constraint list is as follows:
Variable Name Description
Well Abandonment Constraints Type
ABMAXGOR Contains the well maximum GOR before abandonment ABMAXWC Contains the well maximum WC before abandonment ABMAXWGR Contains the well maximum WGR before abandonment ABMINGAS Contains the well minimum gas rate before abandonment ABMINLIQ Contains the well minimum liquid rate before
abandonment
General Constraints Type
AlqValueMax Contains the maximum well artificial lift parameter:
- For ESP lifted wells: refers to the ESP frequency
- For PCP lifted wells: refers to the pump speed - For HSP lifted wells: refers to the power fluid
rate
- For Jet Pump lifted wells: refers to the power fluid rate
- For Diluent Injection wells: refers to the diluent injection rate
AlqValueMin Contains the minimum well artificial lift parameter (see above)
ESPFreqMax Contains the maximum ESP frequency ESPFreqMin Contains the minimum ESP frequency
MAXCFACTOR Contains the maximum C factor (pipeline only) MAXDRWDWN Contains the well maximum applied drawdown MAXGINJ Contains the maximum gas injection rate MAXGROSSHEATING Contains the maximum gross heating value MAXPCO2 Contains the maximum mole percentage of CO2 MAXPH2S Contains the maximum mole percentage of H2S
MAXPN2 Contains the maximum mole percentage of N2
MAXPOW Contains the maximum power
MAXPOWERFLUID Contains the maximum power fluid rate, at separator or node level only.
MAXPRESSURE Contains the line maximum pressure (pipeline only) MAXPWF Contains the maximum flowing bottom hole pressure
MAXQGAS Contains the maximum gas rate
MAXQLIQ Contains the maximum liquid rate
MAXQOIL Contains the maximum oil rate
MAXQTOTGAS Contains the maximum total gas rate
MAXQWAT Contains the maximum water rate
MAXSOG Contains the maximum gas specific gravity MAXSPECGROSSHEATIN
G
Contains the maximum specific gross heating value MAXVELOCITY Contains the maximum fluid velocity (pipeline only) MINGINJ Contains the minimum gas injection rate
MINGINJNC Contains the minimum no-close gas injection rate MINPWF Contains the minimum flowing bottom hole pressure
MINQGAS Contains the minimum gas rate
MINQLIQ Contains the minimum liquid rate
MotPowMax Contains the maximum motor power
MotPowMin Contains the minimum motor power
OPTWEIGTH Contains the well optimisation weigth
PCPSpeedMax Contains the maximum PCP speed
PCPSpeedMin Contains the minimum PCP speed
PumpRateConstraint[i][j] Contains an array of minimum and maximum pump rate as a factor of the pump control parameter.
Valid for ESP lifted, PCP lifted, HSP lifted and Jet Pump lifted wells only.
The following numerical indexes are used:
- i: Defines the colum index
0: Refers to the Pump contol parameter column. (See the AlqValueMax constraint for pump control parameter list)
1: Refers to the Minimum Pump Rate Column 2: Refers to the Maximum Pump Rate Column - j: Defines the row index (j values from 0 to 19,
20 columns maximum) SHUTINPRI Contains the well shut in priority factor
4.1.13.2Binding Constraints
Some of the constraints described above can be setup to be either binding or unbinding constraints.
To access the binding section of each constraint, the constraint original OS string should be followed by the BINDING keyword.
The following numerical indexes are used to define the status of the constraint regarding to the binding option:
0 : the constraint is set to non-binding 1 : the constraint is set to binding
Example: To access the binding status of the well “WELL 1” maximum liquid constraint, the following string can be used:
DoGet (“GAP.MOD[0].WELL[{WELL 1}].MAXQLIQBINDING”)
4.1.13.3Constraints and Potential Calculations
By definition, the potential calculation enables to calculate the system potential, i.e., calculating the system production without taking into account any imposed constraints.
However, it is possible to tune the potential status of each constraint to maintain a binding status during the potential calculation.
To access the potential section of each constraint, the constraint original OS string should be followed by the POTENTIAL keyword, except for the specific constraints listed below.
The following numerical indexes are used to define the status of the constraint regarding to the potential calculation:
0 : the constraint is not kept active during the potential calculation 1 : the constraint is kept active during the potential calculation
By default, GAP will keep the constraints that cannot physically be neglected, such as the separator handling capacities for instance.
Example: To keep the liquid constraint of the well “WELL 1” active during the potential calculation, the following string can be used:
DoSet (“GAP.MOD[0].WELL[{WELL 1}].MAXQLIQPOTENTIAL”),1 Variable Name Description
ABMAXPWFPOTENTIAL Contains the maximum flowing bottom hole pressure constraint potential status
MAXGLPOTENTIAL Contains the maximum gas injection constraint potential status
MINGLNCPOTENTIAL Contains the minimum no close gas injection constraint potential status
MINGLPOTENTIAL Contains the minimum gas injection constraint potential status
MXDRWDWNPOTENTIAL Contains the maximum drawdown constraint potential status
OtherConstraintPotential[i] Contains the potential status of the following constraints, depending of the i index value:
- 0: Maximum pump control parameter - 1: Minimum pump control parameter
(See the AlqValueMax constraint for pump control parameter list)
- 2: Minimum motor power - 3: Maximum motor power