Class SubseaBooster

All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, TwoPortInterface, SimulationInterface, NamedInterface

public class SubseaBooster extends TwoPortEquipment
Subsea Booster equipment class.

A subsea booster is a subsea-installed pump or compressor used to enhance production from subsea wells. Key applications include:

  • Subsea boosting (multiphase pumping)
  • Subsea compression
  • Subsea separation and boosting
  • Long-distance tieback enabling

Booster Types

  • Multiphase Pump: Helico-axial or twin-screw for multiphase flow
  • Single-Phase Pump: ESP or centrifugal for separated liquid
  • Wet Gas Compressor: Centrifugal compressor handling some liquid
  • Dry Gas Compressor: After subsea separation

Design Standards

  • API RP 17Q - Subsea Equipment Qualification
  • API RP 17V - Subsea Boosting Systems
  • DNV-ST-E101 - Drilling Plants
  • ISO 13628-6 - Subsea Production Control Systems

Usage Example

// Create multiphase pump booster
SubseaBooster booster = new SubseaBooster("Subsea Booster", wellStream);
booster.setBoosterType(SubseaBooster.BoosterType.MULTIPHASE_PUMP);
booster.setPumpType(SubseaBooster.PumpType.HELICO_AXIAL);
booster.setWaterDepth(450.0);
booster.setOutletPressure(150.0); // Target outlet pressure in bara
booster.setPowerRatingMW(5.0);

booster.run();

// Get mechanical design
SubseaBoosterMechanicalDesign design = booster.getMechanicalDesign();
design.calcDesign();
Version:
1.0
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Serialization version UID.
      See Also:
    • boosterType

      private SubseaBooster.BoosterType boosterType
      Booster type.
    • pumpType

      private SubseaBooster.PumpType pumpType
      Pump type (for pump booster).
    • compressorType

      private SubseaBooster.CompressorType compressorType
      Compressor type (for compressor booster).
    • driveType

      private SubseaBooster.DriveType driveType
      Drive type.
    • waterDepth

      private double waterDepth
      Water depth in meters.
    • designInletPressure

      private double designInletPressure
      Design inlet pressure in bara.
    • outletPressure

      private double outletPressure
      Target outlet pressure in bara.
    • pressureRatio

      private double pressureRatio
      Pressure ratio (for compressor).
    • differentialPressure

      private double differentialPressure
      Differential pressure in bar (for pump).
    • designFlowRate

      private double designFlowRate
      Design flow rate in m³/h.
    • designGVF

      private double designGVF
      Design GVF (gas volume fraction) for multiphase.
    • maxGVF

      private double maxGVF
      Maximum GVF tolerance.
    • speedRPM

      private double speedRPM
      Speed in RPM.
    • maxSpeedRPM

      private double maxSpeedRPM
      Maximum speed in RPM.
    • powerRatingMW

      private double powerRatingMW
      Power rating in MW.
    • operatingVoltage

      private double operatingVoltage
      Operating voltage in V.
    • frequency

      private double frequency
      Frequency in Hz.
    • efficiency

      private double efficiency
      Efficiency.
    • designTemperature

      private double designTemperature
      Design temperature in Celsius.
    • motorTempLimit

      private double motorTempLimit
      Motor winding temperature limit in Celsius.
    • coolingType

      private String coolingType
      Cooling type.
    • moduleDryWeight

      private double moduleDryWeight
      Module dry weight in tonnes.
    • moduleSubmergedWeight

      private double moduleSubmergedWeight
      Module submerged weight in tonnes.
    • moduleHeight

      private double moduleHeight
      Module height in meters.
    • moduleDiameter

      private double moduleDiameter
      Module footprint diameter in meters.
    • designLifeYears

      private int designLifeYears
      Design life in years.
    • mtbfHours

      private double mtbfHours
      MTBF (Mean Time Between Failures) in hours.
    • retrievable

      private boolean retrievable
      Whether retrievable.
    • redundantMotor

      private boolean redundantMotor
      Whether has redundant motor.
    • numberOfStages

      private int numberOfStages
      Number of pump/compressor stages.
    • inletConnectionInches

      private double inletConnectionInches
      Inlet connection size in inches.
    • outletConnectionInches

      private double outletConnectionInches
      Outlet connection size in inches.
    • internalPump

      private Pump internalPump
      Internal pump (for liquid/multiphase).
    • internalCompressor

      private Compressor internalCompressor
      Internal compressor (for gas).
    • mechanicalDesign

      private SubseaBoosterMechanicalDesign mechanicalDesign
      Mechanical design instance.
  • Constructor Details

    • SubseaBooster

      public SubseaBooster()
      Default constructor.
    • SubseaBooster

      public SubseaBooster(String name)
      Constructor with name.
      Parameters:
      name - equipment name
    • SubseaBooster

      public SubseaBooster(String name, StreamInterface inStream)
      Constructor with name and inlet stream.
      Parameters:
      name - equipment name
      inStream - inlet stream
  • Method Details

    • initializeInternalEquipment

      private void initializeInternalEquipment()
      Initialize internal pump/compressor.
    • createMultiphasePump

      public static SubseaBooster createMultiphasePump(String name, StreamInterface inStream, double outletPressure)
      Create multiphase pump booster.
      Parameters:
      name - booster name
      inStream - inlet stream
      outletPressure - target outlet pressure in bara
      Returns:
      configured booster
    • createWetGasCompressor

      public static SubseaBooster createWetGasCompressor(String name, StreamInterface inStream, double pressureRatio)
      Create wet gas compressor booster.
      Parameters:
      name - booster name
      inStream - inlet stream
      pressureRatio - pressure ratio
      Returns:
      configured booster
    • run

      public void run(UUID id)

      In this method all thermodynamic and unit operations will be calculated in a steady state calculation.

      Parameters:
      id - UUID
    • isCompressor

      public boolean isCompressor()
      Check if booster is compressor type.
      Returns:
      true if compressor
    • estimateTemperatureRise

      private double estimateTemperatureRise()
      Estimate temperature rise from compression/pumping.
      Returns:
      temperature rise in Kelvin
    • calculateRequiredPower

      public double calculateRequiredPower()
      Calculate required power.
      Returns:
      required power in MW
    • getMechanicalDesign

      public SubseaBoosterMechanicalDesign getMechanicalDesign()
      Get mechanical design.
      Specified by:
      getMechanicalDesign in interface ProcessEquipmentInterface
      Overrides:
      getMechanicalDesign in class ProcessEquipmentBaseClass
      Returns:
      mechanical design instance
    • initMechanicalDesign

      public void initMechanicalDesign()
      Initialize mechanical design.
      Specified by:
      initMechanicalDesign in interface ProcessEquipmentInterface
      Overrides:
      initMechanicalDesign in class ProcessEquipmentBaseClass
    • getBoosterType

      public SubseaBooster.BoosterType getBoosterType()
      Get booster type.
      Returns:
      booster type
    • setBoosterType

      public void setBoosterType(SubseaBooster.BoosterType boosterType)
      Set booster type.
      Parameters:
      boosterType - booster type
    • getPumpType

      public SubseaBooster.PumpType getPumpType()
      Get pump type.
      Returns:
      pump type
    • setPumpType

      public void setPumpType(SubseaBooster.PumpType pumpType)
      Set pump type.
      Parameters:
      pumpType - pump type
    • getCompressorType

      public SubseaBooster.CompressorType getCompressorType()
      Get compressor type.
      Returns:
      compressor type
    • setCompressorType

      public void setCompressorType(SubseaBooster.CompressorType compressorType)
      Set compressor type.
      Parameters:
      compressorType - compressor type
    • getDriveType

      public SubseaBooster.DriveType getDriveType()
      Get drive type.
      Returns:
      drive type
    • setDriveType

      public void setDriveType(SubseaBooster.DriveType driveType)
      Set drive type.
      Parameters:
      driveType - drive type
    • getWaterDepth

      public double getWaterDepth()
      Get water depth.
      Returns:
      water depth in meters
    • setWaterDepth

      public void setWaterDepth(double waterDepth)
      Set water depth.
      Parameters:
      waterDepth - water depth in meters
    • getOutletPressure

      public double getOutletPressure()
      Get outlet pressure.
      Specified by:
      getOutletPressure in interface TwoPortInterface
      Overrides:
      getOutletPressure in class TwoPortEquipment
      Returns:
      outlet pressure in bara
    • setOutletPressure

      public void setOutletPressure(double outletPressure)
      Set outlet pressure.
      Specified by:
      setOutletPressure in interface TwoPortInterface
      Overrides:
      setOutletPressure in class TwoPortEquipment
      Parameters:
      outletPressure - outlet pressure in bara
    • getPressureRatio

      public double getPressureRatio()
      Get pressure ratio.
      Returns:
      pressure ratio
    • setPressureRatio

      public void setPressureRatio(double pressureRatio)
      Set pressure ratio.
      Parameters:
      pressureRatio - pressure ratio
    • getDifferentialPressure

      public double getDifferentialPressure()
      Get differential pressure.
      Returns:
      differential pressure in bar
    • setDifferentialPressure

      public void setDifferentialPressure(double differentialPressure)
      Set differential pressure.
      Parameters:
      differentialPressure - differential pressure in bar
    • getDesignFlowRate

      public double getDesignFlowRate()
      Get design flow rate.
      Returns:
      flow rate in m³/h
    • setDesignFlowRate

      public void setDesignFlowRate(double designFlowRate)
      Set design flow rate.
      Parameters:
      designFlowRate - flow rate in m³/h
    • getDesignGVF

      public double getDesignGVF()
      Get design GVF.
      Returns:
      gas volume fraction
    • setDesignGVF

      public void setDesignGVF(double designGVF)
      Set design GVF.
      Parameters:
      designGVF - gas volume fraction (0-1)
    • getSpeedRPM

      public double getSpeedRPM()
      Get speed.
      Returns:
      speed in RPM
    • setSpeedRPM

      public void setSpeedRPM(double speedRPM)
      Set speed.
      Parameters:
      speedRPM - speed in RPM
    • getPowerRatingMW

      public double getPowerRatingMW()
      Get power rating.
      Returns:
      power rating in MW
    • setPowerRatingMW

      public void setPowerRatingMW(double powerRatingMW)
      Set power rating.
      Parameters:
      powerRatingMW - power rating in MW
    • getEfficiency

      public double getEfficiency()
      Get efficiency.
      Returns:
      efficiency (0-1)
    • setEfficiency

      public void setEfficiency(double efficiency)
      Set efficiency.
      Parameters:
      efficiency - efficiency (0-1)
    • getDesignTemperature

      public double getDesignTemperature()
      Get design temperature.
      Returns:
      design temperature in Celsius
    • setDesignTemperature

      public void setDesignTemperature(double designTemperature)
      Set design temperature.
      Parameters:
      designTemperature - design temperature in Celsius
    • getModuleDryWeight

      public double getModuleDryWeight()
      Get module dry weight.
      Returns:
      dry weight in tonnes
    • setModuleDryWeight

      public void setModuleDryWeight(double moduleDryWeight)
      Set module dry weight.
      Parameters:
      moduleDryWeight - dry weight in tonnes
    • getDesignLifeYears

      public int getDesignLifeYears()
      Get design life.
      Returns:
      design life in years
    • setDesignLifeYears

      public void setDesignLifeYears(int designLifeYears)
      Set design life.
      Parameters:
      designLifeYears - design life in years
    • isRetrievable

      public boolean isRetrievable()
      Check if retrievable.
      Returns:
      true if retrievable
    • setRetrievable

      public void setRetrievable(boolean retrievable)
      Set whether retrievable.
      Parameters:
      retrievable - true for retrievable design
    • getNumberOfStages

      public int getNumberOfStages()
      Get number of stages.
      Returns:
      number of stages
    • setNumberOfStages

      public void setNumberOfStages(int numberOfStages)
      Set number of stages.
      Parameters:
      numberOfStages - number of stages
    • getOperatingVoltage

      public double getOperatingVoltage()
      Get operating voltage.
      Returns:
      operating voltage in V
    • setOperatingVoltage

      public void setOperatingVoltage(double operatingVoltage)
      Set operating voltage.
      Parameters:
      operatingVoltage - operating voltage in V
    • getInletConnectionInches

      public double getInletConnectionInches()
      Get inlet connection size.
      Returns:
      inlet connection size in inches
    • setInletConnectionInches

      public void setInletConnectionInches(double inletConnectionInches)
      Set inlet connection size.
      Parameters:
      inletConnectionInches - inlet connection size in inches
    • getOutletConnectionInches

      public double getOutletConnectionInches()
      Get outlet connection size.
      Returns:
      outlet connection size in inches
    • setOutletConnectionInches

      public void setOutletConnectionInches(double outletConnectionInches)
      Set outlet connection size.
      Parameters:
      outletConnectionInches - outlet connection size in inches
    • getMtbfHours

      public double getMtbfHours()
      Get MTBF.
      Returns:
      MTBF in hours
    • setMtbfHours

      public void setMtbfHours(double mtbfHours)
      Set MTBF.
      Parameters:
      mtbfHours - MTBF in hours
    • hasRedundantMotor

      public boolean hasRedundantMotor()
      Check if has redundant motor.
      Returns:
      true if has redundant motor
    • setRedundantMotor

      public void setRedundantMotor(boolean redundantMotor)
      Set whether has redundant motor.
      Parameters:
      redundantMotor - true for redundant motor
    • getDesignInletPressure

      public double getDesignInletPressure()
      Get design inlet pressure.
      Returns:
      design inlet pressure in bara
    • setDesignInletPressure

      public void setDesignInletPressure(double designInletPressure)
      Set design inlet pressure.
      Parameters:
      designInletPressure - design inlet pressure in bara