Class Umbilical

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

public class Umbilical extends ProcessEquipmentBaseClass
Subsea Umbilical equipment class.

An umbilical is a bundled assembly of tubes, hoses, and cables used to:

  • Supply hydraulic fluid for valve actuation
  • Supply electrical power for subsea equipment
  • Transmit control signals and data
  • Inject chemicals (MEG, methanol, scale inhibitor, corrosion inhibitor)

Umbilical Types

  • Steel Tube Umbilical (STU): Thermoplastic hoses replaced by steel tubes
  • Thermoplastic Hose Umbilical: Traditional design with nylon/PE hoses
  • Integrated Production Umbilical (IPU): Combined with small bore production
  • Electro-Hydraulic: Combines hydraulic and electrical functions

Design Standards

  • API RP 17E - Specification for Subsea Umbilicals
  • API Spec 17E - Specification for Subsea Production Control Umbilicals
  • ISO 13628-5 - Subsea Umbilicals
  • DNV-ST-F101 - Submarine Pipeline Systems (for steel tubes)

Usage Example

// Create steel tube umbilical
Umbilical umbilical = new Umbilical("Main Umbilical");
umbilical.setUmbilicalType(Umbilical.UmbilicalType.STEEL_TUBE);
umbilical.setLength(25000.0); // 25 km
umbilical.setWaterDepth(450.0);

// Add functional elements
umbilical.addHydraulicLine("LP Hydraulic", 12.7, 345.0);
umbilical.addHydraulicLine("HP Hydraulic", 9.5, 690.0);
umbilical.addChemicalLine("MEG", 25.4, 150.0);
umbilical.addElectricalCable("Power", 3, 6600.0);
umbilical.addFiberOptic("Control", 12);

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

    • serialVersionUID

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

      private Umbilical.UmbilicalType umbilicalType
      Umbilical type.
    • crossSectionType

      private Umbilical.CrossSectionType crossSectionType
      Cross-section type.
    • waterDepth

      private double waterDepth
      Water depth in meters.
    • length

      private double length
      Umbilical length in meters.
    • overallDiameterMm

      private double overallDiameterMm
      Overall outer diameter in mm.
    • elements

      private List<Umbilical.UmbilicalElement> elements
      List of umbilical elements.
    • hydraulicLineCount

      private int hydraulicLineCount
      Number of hydraulic lines.
    • chemicalLineCount

      private int chemicalLineCount
      Number of chemical injection lines.
    • electricalCableCount

      private int electricalCableCount
      Number of electrical cables.
    • fiberOpticCount

      private int fiberOpticCount
      Number of fiber optic cables.
    • outerSheathMaterial

      private String outerSheathMaterial
      Outer sheath material.
    • outerSheathThicknessMm

      private double outerSheathThicknessMm
      Outer sheath thickness in mm.
    • hasArmorWires

      private boolean hasArmorWires
      Whether has armor wires.
    • armorWireMaterial

      private String armorWireMaterial
      Armor wire material.
    • installationMethod

      private String installationMethod
      Installation method.
    • installationVessel

      private String installationVessel
      Installation vessel type.
    • maxInstallationTensionKN

      private double maxInstallationTensionKN
      Maximum installation tension in kN.
    • dryWeightPerMeter

      private double dryWeightPerMeter
      Dry weight per meter in kg/m.
    • submergedWeightPerMeter

      private double submergedWeightPerMeter
      Submerged weight per meter in kg/m.
    • minimumBendRadius

      private double minimumBendRadius
      Minimum bend radius in meters.
    • mechanicalDesign

      private UmbilicalMechanicalDesign mechanicalDesign
      Mechanical design instance.
  • Constructor Details

    • Umbilical

      public Umbilical()
      Default constructor.
    • Umbilical

      public Umbilical(String name)
      Constructor with name.
      Parameters:
      name - equipment name
  • Method Details

    • addHydraulicLine

      public void addHydraulicLine(String name, double innerDiameterMm, double designPressureBar)
      Add hydraulic control line.
      Parameters:
      name - line name/function
      innerDiameterMm - inner diameter in mm
      designPressureBar - design pressure in bar
    • addChemicalLine

      public void addChemicalLine(String name, double innerDiameterMm, double designPressureBar)
      Add chemical injection line.
      Parameters:
      name - chemical name (MEG, MeOH, Scale Inhibitor, etc.)
      innerDiameterMm - inner diameter in mm
      designPressureBar - design pressure in bar
    • addElectricalCable

      public void addElectricalCable(String name, int numberOfCores, double voltageRating)
      Add electrical power/signal cable.
      Parameters:
      name - cable name/function
      numberOfCores - number of conductor cores
      voltageRating - voltage rating in V
    • addFiberOptic

      public void addFiberOptic(String name, int numberOfFibers)
      Add fiber optic cable.
      Parameters:
      name - cable name/function
      numberOfFibers - number of optical fibers
    • getTotalElementCount

      public int getTotalElementCount()
      Get total number of elements.
      Returns:
      total element count
    • calculateTotalCrossSection

      public double calculateTotalCrossSection()
      Calculate total cross-sectional area.
      Returns:
      total cross-sectional area in mm²
    • estimateOverallDiameter

      public double estimateOverallDiameter()
      Estimate overall diameter based on elements.
      Returns:
      estimated overall diameter in mm
    • 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
    • calculateWeights

      private void calculateWeights()
      Calculate weights based on elements and construction.
    • getMechanicalDesign

      public UmbilicalMechanicalDesign 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
    • getUmbilicalType

      public Umbilical.UmbilicalType getUmbilicalType()
      Get umbilical type.
      Returns:
      umbilical type
    • setUmbilicalType

      public void setUmbilicalType(Umbilical.UmbilicalType umbilicalType)
      Set umbilical type.
      Parameters:
      umbilicalType - umbilical type
    • getCrossSectionType

      public Umbilical.CrossSectionType getCrossSectionType()
      Get cross-section type.
      Returns:
      cross-section type
    • setCrossSectionType

      public void setCrossSectionType(Umbilical.CrossSectionType crossSectionType)
      Set cross-section type.
      Parameters:
      crossSectionType - cross-section 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
    • getLength

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

      public void setLength(double length)
      Set umbilical length.
      Parameters:
      length - length in meters
    • getOverallDiameterMm

      public double getOverallDiameterMm()
      Get overall outer diameter.
      Returns:
      overall diameter in mm
    • setOverallDiameterMm

      public void setOverallDiameterMm(double overallDiameterMm)
      Set overall outer diameter.
      Parameters:
      overallDiameterMm - overall diameter in mm
    • getElements

      public List<Umbilical.UmbilicalElement> getElements()
      Get elements.
      Returns:
      list of umbilical elements
    • getHydraulicLineCount

      public int getHydraulicLineCount()
      Get hydraulic line count.
      Returns:
      number of hydraulic lines
    • getChemicalLineCount

      public int getChemicalLineCount()
      Get chemical line count.
      Returns:
      number of chemical injection lines
    • getElectricalCableCount

      public int getElectricalCableCount()
      Get electrical cable count.
      Returns:
      number of electrical cables
    • getFiberOpticCount

      public int getFiberOpticCount()
      Get fiber optic count.
      Returns:
      number of fiber optic cables
    • getOuterSheathMaterial

      public String getOuterSheathMaterial()
      Get outer sheath material.
      Returns:
      outer sheath material
    • setOuterSheathMaterial

      public void setOuterSheathMaterial(String outerSheathMaterial)
      Set outer sheath material.
      Parameters:
      outerSheathMaterial - outer sheath material
    • hasArmorWires

      public boolean hasArmorWires()
      Check if has armor wires.
      Returns:
      true if has armor
    • setHasArmorWires

      public void setHasArmorWires(boolean hasArmorWires)
      Set whether has armor wires.
      Parameters:
      hasArmorWires - true to include armor
    • getArmorWireMaterial

      public String getArmorWireMaterial()
      Get armor wire material.
      Returns:
      armor wire material
    • setArmorWireMaterial

      public void setArmorWireMaterial(String armorWireMaterial)
      Set armor wire material.
      Parameters:
      armorWireMaterial - armor wire material
    • getInstallationMethod

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

      public void setInstallationMethod(String installationMethod)
      Set installation method.
      Parameters:
      installationMethod - installation method (Carousel, Reel, etc.)
    • getDryWeightPerMeter

      public double getDryWeightPerMeter()
      Get dry weight per meter.
      Returns:
      dry weight in kg/m
    • getSubmergedWeightPerMeter

      public double getSubmergedWeightPerMeter()
      Get submerged weight per meter.
      Returns:
      submerged weight in kg/m
    • 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
    • getMaxInstallationTensionKN

      public double getMaxInstallationTensionKN()
      Get maximum installation tension.
      Returns:
      maximum tension in kN
    • setMaxInstallationTensionKN

      public void setMaxInstallationTensionKN(double maxInstallationTensionKN)
      Set maximum installation tension.
      Parameters:
      maxInstallationTensionKN - maximum tension in kN
    • getOuterSheathThicknessMm

      public double getOuterSheathThicknessMm()
      Get outer sheath thickness.
      Returns:
      outer sheath thickness in mm
    • setOuterSheathThicknessMm

      public void setOuterSheathThicknessMm(double outerSheathThicknessMm)
      Set outer sheath thickness.
      Parameters:
      outerSheathThicknessMm - outer sheath thickness in mm