Class SubseaBooster
java.lang.Object
neqsim.util.NamedBaseClass
neqsim.process.SimulationBaseClass
neqsim.process.equipment.ProcessEquipmentBaseClass
neqsim.process.equipment.TwoPortEquipment
neqsim.process.equipment.subsea.SubseaBooster
- All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, TwoPortInterface, SimulationInterface, NamedInterface
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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumBooster type.static enumCompressor type for gas service.static enumDrive type.static enumPump type for liquid and multiphase service. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate SubseaBooster.BoosterTypeBooster type.private SubseaBooster.CompressorTypeCompressor type (for compressor booster).private StringCooling type.private doubleDesign flow rate in m³/h.private doubleDesign GVF (gas volume fraction) for multiphase.private doubleDesign inlet pressure in bara.private intDesign life in years.private doubleDesign temperature in Celsius.private doubleDifferential pressure in bar (for pump).private SubseaBooster.DriveTypeDrive type.private doubleEfficiency.private doubleFrequency in Hz.private doubleInlet connection size in inches.private CompressorInternal compressor (for gas).private PumpInternal pump (for liquid/multiphase).private doubleMaximum GVF tolerance.private doubleMaximum speed in RPM.private SubseaBoosterMechanicalDesignMechanical design instance.private doubleModule footprint diameter in meters.private doubleModule dry weight in tonnes.private doubleModule height in meters.private doubleModule submerged weight in tonnes.private doubleMotor winding temperature limit in Celsius.private doubleMTBF (Mean Time Between Failures) in hours.private intNumber of pump/compressor stages.private doubleOperating voltage in V.private doubleOutlet connection size in inches.private doubleTarget outlet pressure in bara.private doublePower rating in MW.private doublePressure ratio (for compressor).private SubseaBooster.PumpTypePump type (for pump booster).private booleanWhether has redundant motor.private booleanWhether retrievable.private static final longSerialization version UID.private doubleSpeed in RPM.private doubleWater depth in meters.Fields inherited from class TwoPortEquipment
inStream, outStreamFields inherited from class ProcessEquipmentBaseClass
conditionAnalysisMessage, energyStream, hasController, isSolved, properties, reportFields inherited from class SimulationBaseClass
calcIdentifier, calculateSteadyState, timeFields inherited from class NamedBaseClass
name -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor.SubseaBooster(String name) Constructor with name.SubseaBooster(String name, StreamInterface inStream) Constructor with name and inlet stream. -
Method Summary
Modifier and TypeMethodDescriptiondoubleCalculate required power.static SubseaBoostercreateMultiphasePump(String name, StreamInterface inStream, double outletPressure) Create multiphase pump booster.static SubseaBoostercreateWetGasCompressor(String name, StreamInterface inStream, double pressureRatio) Create wet gas compressor booster.private doubleEstimate temperature rise from compression/pumping.Get booster type.Get compressor type.doubleGet design flow rate.doubleGet design GVF.doubleGet design inlet pressure.intGet design life.doubleGet design temperature.doubleGet differential pressure.Get drive type.doubleGet efficiency.doubleGet inlet connection size.Get mechanical design.doubleGet module dry weight.doubleGet MTBF.intGet number of stages.doubleGet operating voltage.doubleGet outlet connection size.doubleGet outlet pressure.doubleGet power rating.doubleGet pressure ratio.Get pump type.doubleGet speed.doubleGet water depth.booleanCheck if has redundant motor.private voidInitialize internal pump/compressor.voidInitialize mechanical design.booleanCheck if booster is compressor type.booleanCheck if retrievable.voidIn this method all thermodynamic and unit operations will be calculated in a steady state calculation.voidsetBoosterType(SubseaBooster.BoosterType boosterType) Set booster type.voidsetCompressorType(SubseaBooster.CompressorType compressorType) Set compressor type.voidsetDesignFlowRate(double designFlowRate) Set design flow rate.voidsetDesignGVF(double designGVF) Set design GVF.voidsetDesignInletPressure(double designInletPressure) Set design inlet pressure.voidsetDesignLifeYears(int designLifeYears) Set design life.voidsetDesignTemperature(double designTemperature) Set design temperature.voidsetDifferentialPressure(double differentialPressure) Set differential pressure.voidsetDriveType(SubseaBooster.DriveType driveType) Set drive type.voidsetEfficiency(double efficiency) Set efficiency.voidsetInletConnectionInches(double inletConnectionInches) Set inlet connection size.voidsetModuleDryWeight(double moduleDryWeight) Set module dry weight.voidsetMtbfHours(double mtbfHours) Set MTBF.voidsetNumberOfStages(int numberOfStages) Set number of stages.voidsetOperatingVoltage(double operatingVoltage) Set operating voltage.voidsetOutletConnectionInches(double outletConnectionInches) Set outlet connection size.voidsetOutletPressure(double outletPressure) Set outlet pressure.voidsetPowerRatingMW(double powerRatingMW) Set power rating.voidsetPressureRatio(double pressureRatio) Set pressure ratio.voidsetPumpType(SubseaBooster.PumpType pumpType) Set pump type.voidsetRedundantMotor(boolean redundantMotor) Set whether has redundant motor.voidsetRetrievable(boolean retrievable) Set whether retrievable.voidsetSpeedRPM(double speedRPM) Set speed.voidsetWaterDepth(double waterDepth) Set water depth.Methods inherited from class TwoPortEquipment
getInletPressure, getInletStream, getInletTemperature, getMassBalance, getOutletStream, getOutletTemperature, setInletPressure, setInletStream, setInletTemperature, setOutletPressure, setOutletStream, setOutletTemperature, setOutletTemperature, toJson, toJson, validateSetupMethods inherited from class ProcessEquipmentBaseClass
copy, displayResult, equals, getConditionAnalysisMessage, getController, getEffectiveCapacityFactor, getEnergyStream, getEntropyProduction, getExergyChange, getFailureMode, getMassBalance, getMinimumFlow, getPressure, getPressure, getProperty, getReport_json, getResultTable, getSpecification, getTemperature, getTemperature, getThermoSystem, hashCode, isActive, isActive, isCapacityAnalysisEnabled, isFailed, isSetEnergyStream, reportResults, restoreFromFailure, run_step, runConditionAnalysis, setCapacityAnalysisEnabled, setController, setEnergyStream, setEnergyStream, setFailureMode, setFlowValveController, setMinimumFlow, setPressure, setRegulatorOutSignal, setSpecification, setTemperature, simulateDegradedOperation, simulateTrip, solvedMethods inherited from class SimulationBaseClass
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTimeMethods inherited from class NamedBaseClass
getName, getTagName, setName, setTagNameMethods inherited from class Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface NamedInterface
getName, getTagName, setName, setTagNameMethods inherited from interface ProcessEquipmentInterface
getCapacityDuty, getCapacityMax, getExergyChange, getFluid, getOperatingEnvelopeViolation, getRestCapacity, getSimulationValidationErrors, isSimulationValid, isWithinOperatingEnvelope, needRecalculationMethods inherited from interface SimulationInterface
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, run, run_step, runTransient, runTransient, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTimeMethods inherited from interface TwoPortInterface
getInStream, getOutStream, setOutPressure, setOutPressure, setOutTemperature, setOutTemperature
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
boosterType
Booster type. -
pumpType
Pump type (for pump booster). -
compressorType
Compressor type (for compressor booster). -
driveType
Drive type. -
waterDepth
private double waterDepthWater depth in meters. -
designInletPressure
private double designInletPressureDesign inlet pressure in bara. -
outletPressure
private double outletPressureTarget outlet pressure in bara. -
pressureRatio
private double pressureRatioPressure ratio (for compressor). -
differentialPressure
private double differentialPressureDifferential pressure in bar (for pump). -
designFlowRate
private double designFlowRateDesign flow rate in m³/h. -
designGVF
private double designGVFDesign GVF (gas volume fraction) for multiphase. -
maxGVF
private double maxGVFMaximum GVF tolerance. -
speedRPM
private double speedRPMSpeed in RPM. -
maxSpeedRPM
private double maxSpeedRPMMaximum speed in RPM. -
powerRatingMW
private double powerRatingMWPower rating in MW. -
operatingVoltage
private double operatingVoltageOperating voltage in V. -
frequency
private double frequencyFrequency in Hz. -
efficiency
private double efficiencyEfficiency. -
designTemperature
private double designTemperatureDesign temperature in Celsius. -
motorTempLimit
private double motorTempLimitMotor winding temperature limit in Celsius. -
coolingType
Cooling type. -
moduleDryWeight
private double moduleDryWeightModule dry weight in tonnes. -
moduleSubmergedWeight
private double moduleSubmergedWeightModule submerged weight in tonnes. -
moduleHeight
private double moduleHeightModule height in meters. -
moduleDiameter
private double moduleDiameterModule footprint diameter in meters. -
designLifeYears
private int designLifeYearsDesign life in years. -
mtbfHours
private double mtbfHoursMTBF (Mean Time Between Failures) in hours. -
retrievable
private boolean retrievableWhether retrievable. -
redundantMotor
private boolean redundantMotorWhether has redundant motor. -
numberOfStages
private int numberOfStagesNumber of pump/compressor stages. -
inletConnectionInches
private double inletConnectionInchesInlet connection size in inches. -
outletConnectionInches
private double outletConnectionInchesOutlet connection size in inches. -
internalPump
Internal pump (for liquid/multiphase). -
internalCompressor
Internal compressor (for gas). -
mechanicalDesign
Mechanical design instance.
-
-
Constructor Details
-
SubseaBooster
public SubseaBooster()Default constructor. -
SubseaBooster
-
SubseaBooster
Constructor with name and inlet stream.- Parameters:
name- equipment nameinStream- 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 nameinStream- inlet streamoutletPressure- 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 nameinStream- inlet streampressureRatio- pressure ratio- Returns:
- configured booster
-
run
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
Get mechanical design.- Specified by:
getMechanicalDesignin interfaceProcessEquipmentInterface- Overrides:
getMechanicalDesignin classProcessEquipmentBaseClass- Returns:
- mechanical design instance
-
initMechanicalDesign
public void initMechanicalDesign()Initialize mechanical design.- Specified by:
initMechanicalDesignin interfaceProcessEquipmentInterface- Overrides:
initMechanicalDesignin classProcessEquipmentBaseClass
-
getBoosterType
-
setBoosterType
Set booster type.- Parameters:
boosterType- booster type
-
getPumpType
-
setPumpType
Set pump type.- Parameters:
pumpType- pump type
-
getCompressorType
Get compressor type.- Returns:
- compressor type
-
setCompressorType
Set compressor type.- Parameters:
compressorType- compressor type
-
getDriveType
-
setDriveType
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:
getOutletPressurein interfaceTwoPortInterface- Overrides:
getOutletPressurein classTwoPortEquipment- Returns:
- outlet pressure in bara
-
setOutletPressure
public void setOutletPressure(double outletPressure) Set outlet pressure.- Specified by:
setOutletPressurein interfaceTwoPortInterface- Overrides:
setOutletPressurein classTwoPortEquipment- 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
-