Class SubseaJumper

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

public class SubseaJumper extends TwoPortEquipment
Subsea Jumper equipment class.

A subsea jumper is a short section of pipe used to connect subsea equipment such as:

  • Well to manifold connections
  • Manifold to PLET connections
  • PLET to flowline connections
  • Christmas tree to manifold connections

Jumper Types

  • Rigid Jumper: Steel pipe, typically M-shaped or inverted-U configuration
  • Flexible Jumper: Unbonded flexible pipe for dynamic or static applications
  • Hybrid Jumper: Combination of rigid and flexible sections

Design Standards

  • API RP 17G - Subsea Production System Design
  • API RP 17B - Recommended Practice for Flexible Pipe
  • DNV-ST-F101 - Submarine Pipeline Systems
  • DNV-OS-F201 - Dynamic Risers

Usage Example

// Create rigid jumper from well to manifold
SubseaJumper jumper = new SubseaJumper("Well-1 Jumper", wellStream);
jumper.setJumperType(SubseaJumper.JumperType.RIGID_M_SHAPE);
jumper.setNominalBoreInches(6.0);
jumper.setLength(50.0);
jumper.setDesignPressure(350.0);
jumper.run();

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

    • serialVersionUID

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

      private SubseaJumper.JumperType jumperType
      Jumper type.
    • waterDepth

      private double waterDepth
      Water depth in meters.
    • designPressure

      private double designPressure
      Design pressure in bara.
    • designTemperature

      private double designTemperature
      Design temperature in Celsius.
    • nominalBoreInches

      private double nominalBoreInches
      Nominal bore size in inches.
    • outerDiameterInches

      private double outerDiameterInches
      Outer diameter in inches.
    • wallThicknessMm

      private double wallThicknessMm
      Wall thickness in mm.
    • length

      private double length
      Jumper length in meters.
    • horizontalSpan

      private double horizontalSpan
      Horizontal span in meters.
    • verticalRise

      private double verticalRise
      Vertical rise in meters.
    • inletHubType

      private SubseaJumper.HubType inletHubType
      Inlet hub type.
    • outletHubType

      private SubseaJumper.HubType outletHubType
      Outlet hub type.
    • inletHubSizeInches

      private double inletHubSizeInches
      Inlet hub size in inches.
    • outletHubSizeInches

      private double outletHubSizeInches
      Outlet hub size in inches.
    • materialGrade

      private String materialGrade
      Material grade (e.g., X65, 316L, 6Mo).
    • numberOfBends

      private int numberOfBends
      Number of bends.
    • minimumBendRadius

      private double minimumBendRadius
      Minimum bend radius in meters.
    • flexibleStructure

      private String flexibleStructure
      Flexible pipe structure type.
    • flexibleMinBendRadius

      private double flexibleMinBendRadius
      Minimum bend radius for flexible in meters.
    • maxCurvature

      private double maxCurvature
      Maximum curvature for flexible.
    • installationMethod

      private String installationMethod
      Installation method.
    • rovInstalled

      private boolean rovInstalled
      Whether installed by ROV.
    • retrievable

      private boolean retrievable
      Whether retrievable.
    • dryWeight

      private double dryWeight
      Dry weight in tonnes.
    • submergedWeight

      private double submergedWeight
      Submerged weight in tonnes.
    • contentWeight

      private double contentWeight
      Content weight in tonnes.
    • mechanicalDesign

      private SubseaJumperMechanicalDesign mechanicalDesign
      Mechanical design instance.
  • Constructor Details

    • SubseaJumper

      public SubseaJumper()
      Default constructor.
    • SubseaJumper

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

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

    • createRigidMShape

      public static SubseaJumper createRigidMShape(String name, StreamInterface inStream, double length)
      Create rigid M-shaped jumper.
      Parameters:
      name - jumper name
      inStream - inlet stream
      length - jumper length in meters
      Returns:
      configured jumper
    • createFlexibleStatic

      public static SubseaJumper createFlexibleStatic(String name, StreamInterface inStream, double length)
      Create flexible static jumper.
      Parameters:
      name - jumper name
      inStream - inlet stream
      length - jumper length in meters
      Returns:
      configured jumper
    • 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
    • calculatePressureDrop

      private double calculatePressureDrop()
      Calculate pressure drop through jumper.
      Returns:
      pressure drop in bar
    • isRigid

      public boolean isRigid()
      Check if jumper type is rigid.
      Returns:
      true if rigid jumper
    • isFlexible

      public boolean isFlexible()
      Check if jumper type is flexible.
      Returns:
      true if flexible jumper
    • getMechanicalDesign

      public SubseaJumperMechanicalDesign 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
    • getJumperType

      public SubseaJumper.JumperType getJumperType()
      Get jumper type.
      Returns:
      jumper type
    • setJumperType

      public void setJumperType(SubseaJumper.JumperType jumperType)
      Set jumper type.
      Parameters:
      jumperType - jumper 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
    • getDesignPressure

      public double getDesignPressure()
      Get design pressure.
      Returns:
      design pressure in bara
    • setDesignPressure

      public void setDesignPressure(double designPressure)
      Set design pressure.
      Parameters:
      designPressure - design pressure in bara
    • 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
    • getNominalBoreInches

      public double getNominalBoreInches()
      Get nominal bore size.
      Returns:
      nominal bore in inches
    • setNominalBoreInches

      public void setNominalBoreInches(double nominalBoreInches)
      Set nominal bore size.
      Parameters:
      nominalBoreInches - nominal bore in inches
    • getOuterDiameterInches

      public double getOuterDiameterInches()
      Get outer diameter.
      Returns:
      outer diameter in inches
    • setOuterDiameterInches

      public void setOuterDiameterInches(double outerDiameterInches)
      Set outer diameter.
      Parameters:
      outerDiameterInches - outer diameter in inches
    • getWallThicknessMm

      public double getWallThicknessMm()
      Get wall thickness.
      Returns:
      wall thickness in mm
    • setWallThicknessMm

      public void setWallThicknessMm(double wallThicknessMm)
      Set wall thickness.
      Parameters:
      wallThicknessMm - wall thickness in mm
    • getLength

      public double getLength()
      Get jumper length.
      Returns:
      length in meters
    • setLength

      public void setLength(double length)
      Set jumper length.
      Parameters:
      length - length in meters
    • getHorizontalSpan

      public double getHorizontalSpan()
      Get horizontal span.
      Returns:
      horizontal span in meters
    • setHorizontalSpan

      public void setHorizontalSpan(double horizontalSpan)
      Set horizontal span.
      Parameters:
      horizontalSpan - horizontal span in meters
    • getVerticalRise

      public double getVerticalRise()
      Get vertical rise.
      Returns:
      vertical rise in meters
    • setVerticalRise

      public void setVerticalRise(double verticalRise)
      Set vertical rise.
      Parameters:
      verticalRise - vertical rise in meters
    • getInletHubType

      public SubseaJumper.HubType getInletHubType()
      Get inlet hub type.
      Returns:
      inlet hub type
    • setInletHubType

      public void setInletHubType(SubseaJumper.HubType inletHubType)
      Set inlet hub type.
      Parameters:
      inletHubType - inlet hub type
    • getOutletHubType

      public SubseaJumper.HubType getOutletHubType()
      Get outlet hub type.
      Returns:
      outlet hub type
    • setOutletHubType

      public void setOutletHubType(SubseaJumper.HubType outletHubType)
      Set outlet hub type.
      Parameters:
      outletHubType - outlet hub type
    • getMaterialGrade

      public String getMaterialGrade()
      Get material grade.
      Returns:
      material grade
    • setMaterialGrade

      public void setMaterialGrade(String materialGrade)
      Set material grade.
      Parameters:
      materialGrade - material grade (X65, 316L, etc.)
    • getNumberOfBends

      public int getNumberOfBends()
      Get number of bends.
      Returns:
      number of bends
    • setNumberOfBends

      public void setNumberOfBends(int numberOfBends)
      Set number of bends.
      Parameters:
      numberOfBends - number of bends
    • getMinimumBendRadius

      public double getMinimumBendRadius()
      Get minimum bend radius.
      Returns:
      minimum bend radius in meters
    • setMinimumBendRadius

      public void setMinimumBendRadius(double minimumBendRadius)
      Set minimum bend radius.
      Parameters:
      minimumBendRadius - minimum bend radius in meters
    • getFlexibleStructure

      public String getFlexibleStructure()
      Get flexible pipe structure type.
      Returns:
      flexible structure type
    • setFlexibleStructure

      public void setFlexibleStructure(String flexibleStructure)
      Set flexible pipe structure type.
      Parameters:
      flexibleStructure - structure type (Unbonded, Bonded)
    • getInstallationMethod

      public String getInstallationMethod()
      Get installation method.
      Returns:
      installation method
    • setInstallationMethod

      public void setInstallationMethod(String installationMethod)
      Set installation method.
      Parameters:
      installationMethod - installation method
    • isRovInstalled

      public boolean isRovInstalled()
      Check if ROV installed.
      Returns:
      true if ROV installed
    • setRovInstalled

      public void setRovInstalled(boolean rovInstalled)
      Set whether ROV installed.
      Parameters:
      rovInstalled - true for ROV installation
    • isRetrievable

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

      public void setRetrievable(boolean retrievable)
      Set whether retrievable.
      Parameters:
      retrievable - true if retrievable
    • getDryWeight

      public double getDryWeight()
      Get dry weight.
      Returns:
      dry weight in tonnes
    • setDryWeight

      public void setDryWeight(double dryWeight)
      Set dry weight.
      Parameters:
      dryWeight - dry weight in tonnes
    • getSubmergedWeight

      public double getSubmergedWeight()
      Get submerged weight.
      Returns:
      submerged weight in tonnes
    • setSubmergedWeight

      public void setSubmergedWeight(double submergedWeight)
      Set submerged weight.
      Parameters:
      submergedWeight - submerged weight in tonnes
    • getFlexibleMinBendRadius

      public double getFlexibleMinBendRadius()
      Get flexible minimum bend radius.
      Returns:
      flexible min bend radius in meters
    • setFlexibleMinBendRadius

      public void setFlexibleMinBendRadius(double flexibleMinBendRadius)
      Set flexible minimum bend radius.
      Parameters:
      flexibleMinBendRadius - min bend radius in meters
    • getInletHubSizeInches

      public double getInletHubSizeInches()
      Get inlet hub size.
      Returns:
      inlet hub size in inches
    • setInletHubSizeInches

      public void setInletHubSizeInches(double inletHubSizeInches)
      Set inlet hub size.
      Parameters:
      inletHubSizeInches - inlet hub size in inches
    • getOutletHubSizeInches

      public double getOutletHubSizeInches()
      Get outlet hub size.
      Returns:
      outlet hub size in inches
    • setOutletHubSizeInches

      public void setOutletHubSizeInches(double outletHubSizeInches)
      Set outlet hub size.
      Parameters:
      outletHubSizeInches - outlet hub size in inches
    • toJson

      public String toJson()

      Serializes the Process Equipment along with its state to a JSON string.

      Specified by:
      toJson in interface ProcessEquipmentInterface
      Overrides:
      toJson in class TwoPortEquipment
      Returns:
      json string.