Pressure along of the drill string
Pressure along of the drill string Surge
Computes surge pressure along the specified well with the specified pipe speed)
Copy 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
Swab
Computes swab pressure along the specified well with the specified pipe speed
Copy 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:
Copy -- 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
Equivalent Pressure along the drill string
Swab
Computes swab density along with the specified well with the specified pipe speed
Copy 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
Surge
Computes surge density along with the specified well with the specified pipe speed
Copy 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
ECD and Pressure at a given depth
Surge
Computes surge equivalent circulating density at given depth
Copy 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)
Swab
Computes swab equivalent circulating density at given depth
Copy 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:
Copy -- 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
Maximum running speed
Surge
Computes maximum pipe speed profile on surge along the specified well
Copy 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
Swab
Computes maximum pipe speed profile on swab along the specified well
Copy 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:
Copy => 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
Maximum and Minimum trip - ECD
Surge
Computes surge equivalent circulating density in drill string trip
Copy 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
Swab
Computes swab equivalent circulating density in drill string trip
Copy 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)
)
Maximum and Minimum trip - Pressure
Surge
Computes surge pressure in drill string trip
Copy 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
Swab
Computes swab pressure in drill string trip
Copy 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
Input Parameters Description
If ‘Pa’ output pressure or ‘kg/m3’ output is equivalent density
Step size length (discretization)
Drill string or casing speed
Minimum section length for integration
Maximum section length for integration
Close or open ended geometry. Default is true (close ended)
Set the index of the section. Default is empty, uses the last section