Pipes Functions

Pressure along of the drill string

Surge

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

Swab

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

Equivalent Pressure along the drill string

Swab

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

Surge

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

ECD and Pressure at a given depth

Surge

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)

Swab

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

Maximum running speed

Surge

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

Swab

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

Maximum and Minimum trip - ECD

Surge

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

Swab

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)
)

Maximum and Minimum trip - Pressure

Surge

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

Swab

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

Input Parameters Description

Last updated