Live Drilling
  • Introduction
  • FAQ
  • what's new
    • Latest releases
      • Wells 5
      • LiveRig 5
      • LiveRig 4
      • WITSML Store
    • Operations in Time by Depth Chart
    • Unit Sets
      • Per-Asset Units
      • Unit Conversion
      • Dashboard Configuration
      • Force Follow Asset Units
    • Well casing shoe schematic
    • Wells correlation
    • FFT spectrum
    • Pressure Tests
      • Configuration
      • Automated Standard Pressure Tests
      • Manual Pressure Test
      • LOT/FIT
    • Rig State detection
    • BOP Schematic
      • BOP status register
    • Signal Processing
      • Moving Average
  • Data Flow
    • Introduction
    • Data Ingestion
    • Data Normalization
      • Clock Synchronization
      • Normalized events schema
      • Data indexes and enrichment
      • Unit conversion
      • Auto-Switch
  • Physical Models
    • Introduction
      • Structure of the functions
      • Validation
    • General Equations
      • Static Data Dependencies
      • Pipes Functions
    • Trajectory
      • Introduction
      • Static Data Dependencies
      • Pipes Functions
    • Hydraulic
      • Introduction
      • Static Data Dependencies
      • Pipes Functions
    • Torque and Drag
      • Introduction
      • Static Data Dependencies
      • Pipes Functions
    • Hole Cleaning
      • Introduction
      • Static Data Dependencies
      • Pipes Functions
    • Surge and Swab
      • Introduction
      • Static Data Dependencies
      • Pipes Functions
    • Thermal
      • Introduction
    • Volume Tracker
      • Introduction
      • Pipes Functions
  • Basic Features
    • Charts
      • Channels Charts
        • Temporal Channels Chart
        • Channel Value Chart
        • Depth Channels Chart
        • Data navigation
          • Span Control
      • Rig Allocation Gantt Chart
    • Unit sets
      • Configuration changes on unit sets
      • Depth unit changes
      • Personal units sets
    • Permission schema
    • Import/Export Well
    • Add-ons
  • Static Data
    • Assets
      • Assets Structure
    • Well
      • Introduction
      • Well Schema
      • Well Units
      • Regions, fields and countries
      • Well Design Overview
      • Objectives
    • Intervention
      • Introduction
      • Intervention Schema
      • Intervention Types
      • Scenarios
      • Runs
      • Completion and Abandonment
      • Drilling Section Schema
    • Rig
      • Introduction
      • Rig Schema
      • Physical models configuration
    • Pipes functions
    • REST API Examples
  • Administration
    • High Frequency Data
      • WITSML Null Values
      • Unit Management Tools
      • WITS Custom Mapping
    • Data Normalization
      • Data Management
        • Event Settings
        • Channels Management
      • Data normalization templates
      • Data normalization templates prioritization
      • Auto-Switch
    • Standard Identifiers
    • Static Data
      • Regions, fields and countries
      • Intervention Types
  • LiveRig Collector
    • Introduction
    • Getting Started
    • Connecting to Intelie Live
    • Security
    • Local data storage
    • Data transmission and recovery
    • Monitoring
    • Remote Control
      • APIs
        • /testSourceEndpoint
        • /storeConfiguration
        • /getFromStore
        • /backlog-sync
      • Sources
        • MQTT Topics
        • OPC Requests
        • WITSML Backlog Sync
        • WITSML Object Explorer
        • WITSML Requests
      • Properties
    • HA Deployment
    • Protocols
      • WITSML
      • WITS
      • OPC-DA
      • OPC-UA
      • MODBUS
      • MQTT
      • CSV
      • RAW
    • Protocol conversion
    • Configuration
      • liverig.properties
      • sources.xml
      • store.json
      • modbus.json
      • mqtt.json
      • Configuring an OPC-UA source
      • Multiple event types for WITSML sources
      • Certificate-based authentication for WITSML HTTPS sources
    • LiveRig Collector Appliance
    • Command line Interface (CLI)
  • LIVE EDGE
    • Collector Reader
  • Integrations
    • Introduction
    • WITSML Store
    • REST Output
    • REST Input
    • WellView
    • OpenWells
    • Python
  • DEVELOPER
    • Identified Curves
    • Hidden Units
  • DEPRECATED
    • WITSML Output
    • LiveRig 3.x / 2.x
      • 3.5.0
      • 3.4.0
      • 3.3.0
      • 3.2.0
      • 3.1.0
      • 3.0.0
      • 2.29.0
Powered by GitBook
On this page
  • Drilling KPI
  • Mechanical Specific Energy - MSE
  • Hydraulic Mechanical Specific Energy - HMSE
  • Drilling Specific Energy - DSE
  • d-Exponent
  • Volumes and Sizes
  • Well Volume
  • Well Volume Between
  • Well Volume in Region
  • Pipe Displacement
  • Open Hole Start Depth
  • Well JSON
  • Equivalent Geometry
  • Bottom’s up time
  • Lag Depth and Lag Time (only Fluid)
  • Fluid Properties
  • Rheometer Calculations

Was this helpful?

  1. Physical Models
  2. General Equations

Pipes Functions

Drilling KPI

Mechanical Specific Energy - MSE

Calculates the mechanical specific energy for the given well

og.model.general.mse(
         newmap("wellId", "{well_id}",  
                "weightOnBit", value_N,
                "rotarySpeed", value_rad/s, 
                "torqueOnBit", value_N.m, 
                "rateOfPenetration", value_m/s)
)

Output: MSE (Pa)

Hydraulic Mechanical Specific Energy - HMSE

Calculates the hydraulic mechanical specific energy for the given well

og.model.general.hmse(
         newmap("wellId", "{well_id}",  
                "weightOnBit", value_N,
                "rotarySpeed", value_rad/s, 
                "torqueOnBit", value_N.m, 
                "rateOfPenetration", value_m/s,
                "fluidFlow", value_m3/s,
                "bitPressureLoss" value_Pa,
                "energyReductionFactor", value)
)

Output: HMSE (Pa)

Drilling Specific Energy - DSE

Calculates the drilling specific energy for the given well

og.model.general.dse(
         newmap("wellId", "{well_id}",  
                "weightOnBit", value_N,
                "rotarySpeed", value_rad/s, 
                "torqueOnBit", value_N.m, 
                "rateOfPenetration", value_m/s,
                "bitHydraulicPower", value_,
                "lambda" value)
)

Output: DSE (Pa)

d-Exponent

Calculates the d-exponent for the given well

og.model.general.dExponent(
         newmap("wellId", "{well_id}",  
                "weightOnBit", value_N,
                "rotarySpeed", value_rad/s, 
                "rateOfPenetration", value_m/s)
)

Output: d-exponent (-)

Volumes and Sizes

Well Volume

Given a well, this function computes the volume between two well locations.

Obs: These methods (well, Well between, and Well in Region) do not take into account the material of the work column, it only considers the space available for fluid (drilling mud, cement, etc). For work column volume, refer to og.model.general.pipeDisplacement.

og.model.general.wellVolume(
         newmap("wellId", "{well_id}")
)

Well Volume Between

Given a well, this function computes the volume between two well locations.

  • startPosition: Starting location where volume will be computed ({measuredDepth: number, isAnnular: boolean})

  • endPosition: Starting location where volume will be computed ({measuredDepth: number, isAnnular: boolean})

og.model.general.wellVolumeBetween(
         newmap("wellId", "{well_id}",  
                "startPosition", {measuredDepth: number, isAnnular: boolean},
                "endPosition", {measuredDepth: number, isAnnular: boolean},
                )
)

Well Volume in Region

Given a well, this function computes the volume between two well locations. The expected parameters are: isAnnular: flag indicating if region is annular or not (boolean)

og.model.general.wellVolumeInRegion(
         newmap("wellId", "{well_id}",  
                "isAnnular", value_boolean
                )
)

Pipe Displacement

Calculates the pipe displacement (steel total volume) for the given well

og.model.general.pipeDisplacement(
         newmap("wellId", "{well_id}",  
                "bitDepth", value_m)
)

Output: Pipe Displacement (m3)

Open Hole Start Depth

Shows the last casing shoe measured depth

og.model.general.openHoleStartDepth(
         newmap("wellId", "{well_id}")
)

Well JSON

og.model.general.wellJSON(
         newmap("wellId", "{well_id}")
)

Equivalent Geometry

og.model.general.equivalentGeometry(
         newmap("wellId", "{well_id}")
)

Bottom’s up time

Calculates the time the fluid takes to travel through a well portion. For this function, the flow rate and depth are fixed during all periods of time.

og.model.general.fluidCourseTime(
         newmap("wellId", "{well_id}"
                "bitDepth", value_m, 
                "fluidFlow", value_m3/s, 
                "isAnnular", boolean)
)

Output: Bottom’s up time (s)

Example Pipes:

=> og.model.general.fluidCourseTime( newmap(
             'wellId', '11',
             'bitDepth', BITDEP#*0.3048, --ft to meters
             'fluidFlow', FLOWIN#*0.000063090196,  -- gpm to m3/s
             'isAnnular', true)
) every minute -- output is in seconds
=>_#/60 as {bottom_up [min]}

Example Pipes

Calculate annular volume and annular velocity

-- Annular Volume
def @@fluid_flow: 0.05; --m3/s
def @@bit_depth: 1000; --m

=> og.model.general.fluidCourseTime(
         newmap("wellId", "1"
                "bitDepth", @@bit_depth, 
                "fluidFlow", @@fluid_flow, 
                "isAnnular", true)
)->result/@@fluid_flow as annular_volume

--Annular Velocity (average)
=> og.model.general.fluidCourseTime(
         newmap("wellId", "1"
                "bitDepth", @@bit_depth, 
                "fluidFlow", @@fluid_flow, 
                "isAnnular", true)
)->result as bottom_up_time
=>@@bit_depth/bottom_up_time as annular_velocity

Lag Depth and Lag Time (only Fluid)

Calculates lag time and lag depth for a given interval of data, only using the information of fluid flow, i.e, do not take into account the cuttings velocities (see on cuttings this feature).

og.model.general.lagTime(
         newmap("wellId", "{well_id}"
                "bitDepth", value_m, 
                "intervalData</span>", value)
)

Fluid Properties

Rheometer Calculations

Calculate shear rate and Shear Stress from rheometer readings

og.model.general.shearRateShearStressFromRheometer(
  newmap(
    "rheometerReadings", newmap(
      3.0, value_theta_rpm3,
      6.0, value_theta_rpm6,
      100.0, value_theta_rpm100,
      200.0, value_theta_rpm200,
      300.0, value_theta_rpm300,
      600.0, value_theta_rpm600
    ),
    "powerLawExponent", value_exponent
))

Calculate Rheological Parameter from rheometer readings

og.model.general.rheologicalModelCalibration(
  newmap(
    "rheometerReadings", newmap(
      3.0, value_theta_rpm3,
      6.0, value_theta_rpm6,
      100.0, value_theta_rpm100,
      200.0, value_theta_rpm200,
      300.0, value_theta_rpm300,
      600.0, value_theta_rpm600
    ),
    "fluidType", "FluidType"
))

Fluid Types:

  • HERSCHEL_BULKLEY

  • POWER_LAW

  • BINGHAM

  • NEWTONIAN

Example

PreviousStatic Data DependenciesNextTrajectory

Last updated 3 years ago

Was this helpful?

Plot all rheological model vs rheometer readings