Artificial Lift Functions
Electric submersible pumps, gas lift and rod pumping.
106 functions
PO.ESP.Head.FromPressure(P, SG)
Converts pressure to head using fluid specific gravity, [ft].
PO.ESP.Head.ToPressure(H, SG)
Converts head to pressure using fluid specific gravity, [psi].
PO.ESP.Head.Static(TVD, SG)
Calculates static head from vertical depth, [ft].
PO.ESP.Head.PressureAtDepth(P_surface, TVD, SG)
Calculates pressure at depth given surface pressure, [psi].
PO.ESP.TDH(TVD_pump, WHP, PIP, friction_head, SG)
Calculates Total Dynamic Head for ESP sizing, [ft].
PO.ESP.TDH.Full(TVD_pump, WHP, P_res, PI, Q, submergence, friction_head, SG)
Extended TDH calculation with IPR-based PIP, [ft].
PO.ESP.TDH.NetLift(TVD_pump, DFL)
Calculates net vertical lift (pump depth minus fluid level), [ft].
PO.ESP.HydraulicHP(Q, TDH, SG)
Calculates theoretical hydraulic horsepower (bbl/d basis), [HP].
PO.ESP.HydraulicHP.GPM(Q, TDH, SG)
Calculates theoretical hydraulic horsepower (gpm basis), [HP].
PO.ESP.BrakeHP(HP_hyd, efficiency)
Calculates brake horsepower accounting for pump efficiency, [HP].
PO.ESP.BrakeHP.FromRate(Q, TDH, SG, efficiency)
Calculates brake horsepower directly from rate and head, [HP].
PO.ESP.Stages(TDH, head_per_stage)
Calculates required number of pump stages (rounded up), [stages].
PO.ESP.Stages.Actual(TDH, head_per_stage)
Returns exact (non-rounded) stage count for sensitivity analysis, [stages].
PO.ESP.Pump.TotalHead(stages, head_per_stage)
Calculates total head from number of stages, [ft].
PO.ESP.Pump.TotalPower(stages, power_per_stage)
Calculates total power from number of stages, [HP].
PO.ESP.Pump.Efficiency(HP_hyd, BHP)
Calculates pump efficiency from hydraulic and brake HP, [fraction].
PO.ESP.Pump.Pdis(PIP, stages, head_per_stage, SG)
Calculates pump discharge pressure, [psi].
PO.ESP.Pump.SG.Mix(SG_oil, SG_water, watercut)
Calculates composite SG for oil-water mixture, [dimensionless].
PO.ESP.Gas.Qg.Free(Qo, GOR, Rs, Bg)
Calculates free gas rate at pump intake conditions, [rcf/d].
PO.ESP.Gas.Ql.Total(Qo, Qw, Bo, Bw)
Calculates total liquid rate at pump intake, [bbl/d].
PO.ESP.Gas.Void(Qg_intake, Ql_intake)
Calculates gas void fraction at pump intake, [fraction].
PO.ESP.Gas.Void.Full(Qo, Qw, GOR, Rs, Bo, Bw, Bg)
Complete gas void fraction calculation from field data, [fraction].
PO.ESP.Gas.RhoMix(Rho_l, Rho_g, lambda_g)
Calculates gas-liquid mixture density, [lb/ft3].
PO.ESP.Gas.Turpin.Factor(P_intake, Pb)
Calculates Turpin gas handling factor, [dimensionless].
PO.ESP.Gas.Dunbar.Factor(lambda_g)
Calculates Dunbar gas correction factor, [dimensionless].
PO.ESP.Gas.Sep.Eff(Ql, lambda_g, separator_type)
Estimates rotary gas separator efficiency, [fraction].
PO.ESP.Gas.Void.PostSep(lambda_g_in, efficiency)
Calculates void fraction after gas separator, [fraction].
PO.ESP.Gas.Recommendation(lambda_g)
Returns gas handling recommendation based on void fraction.
PO.ESP.Curve.Head(Q, curve_Q, curve_Head)
Interpolates head from pump performance curve, [ft/stage].
PO.ESP.Curve.Efficiency(Q, curve_Q, curve_Eff)
Interpolates efficiency from pump performance curve, [fraction].
PO.ESP.Curve.Power(Q, curve_Q, curve_HP)
Interpolates power per stage from pump curve, [HP/stage].
PO.ESP.Curve.BEP(curve_Q, curve_Eff)
Returns Best Efficiency Point flow rate from pump curve, [bbl/d].
PO.ESP.Curve.BEP.Eff(curve_Q, curve_Eff)
Returns maximum efficiency value from pump curve, [fraction].
PO.ESP.Curve.InRange(Q, Q_min, Q_max)
Checks if operating point is within recommended range.
PO.ESP.Curve.Range.Status(Q, curve_Q, curve_Eff)
Returns descriptive operating range status.
PO.ESP.Viscosity.Quick.Factor(viscosity, SG)
Simplified viscosity correction for screening, [dimensionless].
PO.ESP.Viscosity.Head.Corr(H_water, C_H)
Applies viscosity correction to head, [ft].
PO.ESP.Viscosity.Eff.Corr(Eff_water, C_Eff)
Applies viscosity correction to efficiency, [fraction].
PO.ESP.Viscosity.Rate.Corr(Q_water, C_Q)
Applies viscosity correction to flow rate, [gpm].
PO.ESP.Viscosity.Recommendation(viscosity_cSt)
Returns viscosity-based ESP recommendation.
PO.ESP.Motor.RequiredHP(BHP, safety_factor)
Calculates minimum motor horsepower with safety factor, [HP].
PO.ESP.Motor.Amps(HP, voltage, efficiency, power_factor)
Calculates motor current draw (3-phase), [A].
PO.ESP.Motor.Amps.FromNameplate(HP, V_nameplate, I_nameplate, V_actual, load_fraction)
Calculates current from motor nameplate data, [A].
PO.ESP.Motor.LoadFactor(BHP_required, motor_rating)
Calculates motor load as fraction of rating, [fraction].
PO.ESP.Motor.Load.Status(load_factor)
Returns motor load status description.
PO.ESP.Motor.PowerKW(I, V, PF)
Calculates motor power consumption (3-phase), [kW].
PO.ESP.Motor.Eff.AtLoad(efficiency_nameplate, load_fraction)
Estimates motor efficiency at partial load, [fraction].
PO.ESP.Motor.Temp.Rise(T_fluid, HP, Q, motor_OD)
Estimates motor temperature at operating conditions, [degF].
PO.ESP.Motor.Qcool(HP, motor_OD, casing_ID)
Calculates minimum flow rate for motor cooling, [bbl/d].
PO.ESP.Motor.V.Nearest(V_calculated)
Returns nearest standard ESP motor voltage, [V].
PO.ESP.Cable.Resistance(AWG, T, material)
Returns cable resistance at temperature, [ohm/1000ft].
PO.ESP.Cable.CrossSection(AWG)
Returns cable cross-sectional area, [kcmil].
PO.ESP.Cable.Vdrop(I, length, R)
Calculates voltage drop in ESP cable (3-phase), [V].
PO.ESP.Cable.Vdrop.Full(HP, V_motor, efficiency, PF, AWG, length, T)
Complete voltage drop calculation, [V].
PO.ESP.Cable.Vdrop.Pct(V_drop, V_motor)
Calculates voltage drop as percentage, [%].
PO.ESP.Cable.Vdrop.Status(V_drop_pct)
Returns voltage drop status.
PO.ESP.Cable.MinSize(I, length, V_drop_max, T)
Determines minimum cable size for voltage drop limit, [AWG].
PO.ESP.Cable.PowerLoss(I, length, R)
Calculates power loss in cable, [kW].
PO.ESP.Cable.PowerLoss.Pct(P_loss, HP)
Calculates power loss as percentage of motor power, [%].
PO.ESP.Cable.Vsurface(V_motor, V_drop)
Calculates required surface voltage, [V].
PO.ESP.Cable.Vmotor(V_surface, V_drop)
Calculates voltage at motor terminals, [V].
PO.ESP.Cable.Temperature(T_ambient, I, AWG)
Estimates cable temperature with current, [degF].
PO.ESP.System.Hfric(Q, tubing_ID, tubing_length, SG)
Simplified friction head calculation, [ft].
PO.ESP.Nodal.AOF(P_res, PI, Pb)
Calculates Absolute Open Flow potential, [STB/d].
PO.ESP.Nodal.Drawdown(Q, PI)
Calculates drawdown at given production rate, [psi].
PO.ESP.Nodal.Submergence(PIP, SG)
Calculates submergence above pump intake, [ft].
PO.GL.Valve.Pdome(Pd_s, Ts, Td)
Calculates dome pressure at depth from surface dome pressure, [psi].
PO.GL.Valve.TRO(Pd, Td, R)
Calculates test rack opening pressure at 60°F, [psi].
PO.GL.Valve.Pvc(Pd, R)
Calculates valve closing pressure, [psi].
PO.GL.Valve.Spread(Pvo, Pvc)
Calculates valve spread (opening minus closing pressure), [psi].
PO.GL.Valve.ThornhillCraver(Cd, Ap, P1, P2, SG, T)
Calculates gas throughput using Thornhill-Craver equation, [Mscf/d].
PO.GL.Valve.PPE(R)
Calculates production pressure effect factor (PPEF), [dimensionless].
PO.GL.Inj.Pd(Ps, D, G)
Calculates injection gas pressure at depth, [psi].
PO.GL.Inj.Grad(SG, P, T, Z)
Calculates gas gradient in the annulus, [psi/ft].
PO.GL.Inj.Qgi(GLRt, GLRf, Ql)
Calculates required gas injection rate for target GLR, [Mscf/d].
PO.GL.Inj.Eff(GLRf, Qg, Ql)
Calculates total GLR including formation and injected gas, [scf/STB].
PO.RP.Pump.Displacement(Ap, Sp, N)
Calculates theoretical pump displacement, [bbl/d].
PO.RP.Pump.Displacement.FromDiameter(d, Sp, N)
Calculates theoretical pump displacement from plunger diameter, [bbl/d].
PO.RP.Pump.Disp.Eff(PD, F)
Calculates effective pump displacement accounting for fillage, [bbl/d].
PO.RP.Pump.Fillage(Qa, PD)
Calculates pump fillage from actual and theoretical production, [fraction].
PO.RP.Pump.VolEff(Qa, PD)
Calculates volumetric efficiency of the pump system, [fraction].
PO.RP.Pump.Stroke.Eff(S, ΔLr, ΔLt)
Calculates effective plunger stroke from surface stroke and stretch, [in].
PO.RP.Pump.Psub(h, G)
Calculates submergence pressure from fluid column height, [psi].
PO.RP.Pump.PIP(Pwf, Psub)
Calculates pump intake pressure (PIP), [psi].
PO.RP.Rod.Wair(Ar, L)
Calculates rod string weight in air, [lb].
PO.RP.Rod.Wbuoy(Wair, SG)
Calculates buoyant rod string weight (weight in fluid), [lb].
PO.RP.Rod.Area(d)
Calculates rod cross-sectional area from diameter, [in²].
PO.RP.Rod.Wft(d)
Calculates rod weight per foot for a given diameter, [lb/ft].
PO.RP.Rod.Stretch.FluidLoad(Fo, L, Ar)
Calculates rod stretch due to fluid load, [in].
PO.RP.Rod.Stretch.RodWeight(Wair, L, Ar)
Calculates rod stretch due to rod weight (self-weight stretch), [in].
PO.RP.Rod.Stretch.Total(Fo, Wair, L, Ar)
Calculates total static rod stretch (fluid load + self-weight), [in].
PO.RP.Rod.MaxStress(PPRL, Ar)
Calculates maximum rod stress from peak load, [psi].
PO.RP.Rod.MinStress(MPRL, Ar)
Calculates minimum rod stress from minimum load, [psi].
PO.RP.Rod.StressRange(σmax, σmin)
Calculates rod stress range (fatigue indicator), [psi].
PO.RP.Load.FluidLoad(Ap, H, G)
Calculates fluid load on plunger, [lb].
PO.RP.Load.PPRL(Wrf, Fo, F1, Skr)
Calculates Peak Polished Rod Load using API 11L method, [lb].
PO.RP.Load.MPRL(Wrf, F2, Skr)
Calculates Minimum Polished Rod Load using API 11L method, [lb].
PO.RP.Load.PPRL.Simple(Wrf, Fo)
Calculates simplified PPRL (static, no dynamic effects), [lb].
PO.RP.Load.MPRL.Simple(Wrf)
Calculates simplified MPRL (static, no dynamic effects), [lb].
PO.RP.Load.Range(PPRL, MPRL)
Calculates polished rod load range (PPRL - MPRL), [lb].