Computes surge pressure along the specified well with the specified pipe speed)
og.model.surge.pressure(
newmap("wellId", "{well_id}",
"bitDepth", value_m,
"pipeSpeed", value_m/s,
"computationUom", 'Pa',
"maxSectionLength", value_m,
"minSectionLength", value_m,
"closedEnded", boolean)
)
Output: Pressure Surge (Pa) vs Depth
Computes swab pressure along the specified well with the specified pipe speed
og.model.swab.pressure(
newmap("wellId", "{well_id}",
"bitDepth", value_m,
"pipeSpeed", value_m/s,
"computationUom", 'Pa',
"maxSectionLength", value_m,
"minSectionLength", value_m,
"closedEnded", boolean)
)
Output: Pressure Swab (Pa) vs Depth
Example Pipes:
--Swab ECD
=> og.model.swab.pressure(newmap("wellId","11","pipeSpeed", 0.05)) every batch
=> @for => @yield => {swab.pressure} as Swab_pressure, depth
--Surge ECD
=> og.model.surge.pressure(newmap("wellId","11","pipeSpeed", 0.05)) every batch
=> @for => @yield => {surge.pressure} as Surge_pressure, depth
Computes swab density along with the specified well with the specified pipe speed
og.model.swab.pressure(
newmap("wellId", "{well_id}",
"bitDepth", value_m,
"pipeSpeed", value_m/s,
"computationUom", 'kg/m3',
"maxSectionLength", value_m,
"minSectionLength", value_m,
"closedEnded", boolean)
)
Output: ECD swab (kg/m3) vs Depth
Computes surge density along with the specified well with the specified pipe speed
og.model.surge.pressure(
newmap("wellId", "{well_id}",
"bitDepth", value_m,
"pipeSpeed", value_m/s,
"computationUom", 'kg/m3',
"maxSectionLength", value_m,
"minSectionLength", value_m,
"closedEnded", boolean)
)
Output: ECD surge (kg/m3) vs Depth
Computes surge equivalent circulating density at given depth
og.model.surge.pressure(
newmap("wellId", "{well_id}",
"bitDepth", value_m,
"pipeSpeed", value_m/s,
"computationUom", 'kg/m3',
"maxSectionLength", value_m,
"minSectionLength", value_m,
"closedEnded", boolean,
"atDepth", value_m)
)
Output: ECD surge (kg/m3)
Computes swab equivalent circulating density at given depth
og.model.swab.pressure(
newmap("wellId", "{well_id}",
"bitDepth", value_m,
"pipeSpeed", value_m/s,
"computationUom", 'kg/m3',
"maxSectionLength", value_m,
"minSectionLength", value_m,
"closedEnded", boolean,
"atDepth", value_m)
)
Output: ECD swab (kg/m3)
Example Pipes:
--Swab ECD
=>og.model.swab.pressure(
newmap('wellId','9',
'computationUom', 'kg/m3',
'pipeSpeed', 0.01,
'bitDepth', 1000,
'minSectionLength', 250))->result:seq at the end
=> @chain
=> {swab.pressure}#curve_unit_convert(kg/m3,'lbm/galUS') as {Swab}, depth#curve_unit_convert('m',@@depthOutputUnit) as depth
--Swab ECD
=>og.model.surge.pressure(
newmap('wellId','9',
'computationUom', 'kg/m3',
'pipeSpeed', 0.01,
'bitDepth', 1000,
'minSectionLength', 250))->result:seq at the end
=> @chain
=> {swab.pressure}#curve_unit_convert(kg/m3,'lbm/galUS') as {Surge}, depth#curve_unit_convert('m',@@depthOutputUnit) as depth
Computes maximum pipe speed profile on surge along the specified well
og.model.surge.maxPipeSpeed(
newmap("wellId", "{well_id}",
"depthLowerBound", value_m,
"initialBitDepth", value_m,
"bitStepSize", value_m,
"maxSectionLength", value_m,
"minSectionLength", value_m,
"closedEnded", boolean)
)
Output: Max Surge Speed (m/s) vs Depth
|
PARAMETER | TYPE | DOMAIN | REQUIRED? | DEFAULT
wellId | String | Integer Strings | Yes | ---
drillingSectionIndex | Integer | >= 0 | No | ---
bitDepth | Double | >= 0 | No | ---
atDepth | Double | >= 0 | No | ---
minSectionLength | Double | 0 <= x <= maxSectionLength | No | 0
maxSectionLength | Double | >= minSectionLength | No | Infinity
closedEnded | Boolean | {true, false} | No | true
depthLowerBound | Double | Reals | No | 0
bitStepSize | Double | > 0 | No | 20
| | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |Computes maximum pipe speed profile on swab along the specified well
og.model.swab.maxPipeSpeed(
newmap("wellId", "{well_id}",
"depthLowerBound", value_m,
"initialBitDepth", value_m,
"bitStepSize", value_m,
"maxSectionLength", value_m,
"minSectionLength", value_m,
"closedEnded", boolean)
)
Output: Max Swab Speed (m/s) vs Depth
Example Pipes:
=> og.model.swab.maxPipeSpeed(
newmap("wellId", "11",
"depthLowerBound", 50,
"initialBitDepth", 1000,
"stepSize" 50))->result:seq at the end
=> @for => @yield => -{swab.maxPipeSpeed}# as {Max Swab Speed}, depth# as depth
=> og.model.surge.maxPipeSpeed(
newmap("wellId", "11",
"depthLowerBound", 50,
"initialBitDepth", 1000,
"stepSize", 50))->result:seq at the end
=> @for => @yield => -{swab.maxPipeSpeed}# as {Max surge Speed}, depth# as depth
Computes surge equivalent circulating density in drill string trip
og.model.surge.tripLimits(
newmap("wellId", "{well_id}",
"pipeSpeed", value_m/s,
"depthLowerBound", value_m,
"initialBitDepth", value_m,
"computationUom", "kg/m3",
"bitStepSize", value_m,
"maxSectionLength", value_m,
"minSectionLength", value_m,
"closedEnded", boolean)
)
Output: Max and Min Surge ECD (kg/m3) vs Depth
Computes swab equivalent circulating density in drill string trip
og.model.swab.tripLimits(
newmap("wellId", "{well_id}",
"pipeSpeed", value_m/s,
"depthLowerBound", value_m,
"initialBitDepth", value_m,
"computationUom", "kg/m3",
"bitStepSize", value_m,
"maxSectionLength", value_m,
"minSectionLength", value_m,
"closedEnded", boolean)
)
Computes surge pressure in drill string trip
og.model.surge.tripLimits(
newmap("wellId", "{well_id}",
"pipeSpeed", value_m/s,
"depthLowerBound", value_m,
"initialBitDepth", value_m,
"computationUom", "Pa",
"bitStepSize", value_m,
"maxSectionLength", value_m,
"minSectionLength", value_m,
"closedEnded", boolean)
)
Output: Max and Min Surge Pressure (Pa) vs Depth
Computes swab pressure in drill string trip
og.model.swab.tripLimits(
newmap("wellId", "{well_id}",
"pipeSpeed", value_m/s,
"depthLowerBound", value_m,
"initialBitDepth", value_m,
"computationUom", "Pa",
"bitStepSize", value_m,
"maxSectionLength", value_m,
"minSectionLength", value_m,
"closedEnded", boolean)
)
Output: Max and Min Swab Pressure (Pa) vs Depth
Parameters | Description | unit |
---|---|---|
wellId | Well Id | String |
computationUom |
If ‘Pa’ output pressure or ‘kg/m3’ output is equivalent density | string |
depthLowerBound | Bottom Depth (bit depth) | m |
bitDepth | Casing Shoe depth | m |
atDepth | Choose specific depth | m |
bitStepSize | Step size length (discretization) | m |
pipeSpeed | Drill string or casing speed | m/s |
minSectionLength | Minimum section length for integration | m |
maxSectionLength | Maximum section length for integration | m |
closedEnded | Close or open ended geometry. Default is true (close ended) | boolean |
sectionIndex | Set the index of the section. Default is empty, uses the last section | Number (int) |