Class FlexiblePipe

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

public class FlexiblePipe extends TwoPortEquipment
Flexible Pipe equipment class.

A flexible pipe is an assembly of concentric layers of polymers and metal wires that provides flexibility while maintaining pressure containment. Used for:

  • Dynamic risers (floating production systems)
  • Static flowlines
  • Jumpers
  • Export lines

Flexible Pipe Types

  • Unbonded: Layers can move relative to each other
  • Bonded: Layers bonded together (typically for low pressure)

Layer Structure (Unbonded)

  1. Carcass (interlocked steel strip)
  2. Internal pressure sheath (polymer barrier)
  3. Pressure armor (interlocked/helical steel)
  4. Tensile armor (helical steel wires)
  5. Anti-wear tape
  6. Outer sheath (polymer)

Design Standards

  • API RP 17B - Recommended Practice for Flexible Pipe
  • API Spec 17J - Specification for Unbonded Flexible Pipe
  • API Spec 17K - Specification for Bonded Flexible Pipe
  • DNV-ST-F201 - Dynamic Risers

Usage Example

// Create unbonded flexible riser
FlexiblePipe riser = new FlexiblePipe("Gas Export Riser", productionStream);
riser.setPipeType(FlexiblePipe.PipeType.UNBONDED);
riser.setApplication(FlexiblePipe.Application.DYNAMIC_RISER);
riser.setInnerDiameterInches(8.0);
riser.setLength(1500.0);
riser.setDesignPressure(350.0);

// Set service
riser.setServiceType(FlexiblePipe.ServiceType.GAS);
riser.setH2SContent(0.5); // 0.5%
riser.setCO2Content(2.0); // 2%

riser.run();

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

    • serialVersionUID

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

      private FlexiblePipe.PipeType pipeType
      Pipe type.
    • application

      private FlexiblePipe.Application application
      Application type.
    • serviceType

      private FlexiblePipe.ServiceType serviceType
      Service type.
    • riserConfiguration

      private FlexiblePipe.RiserConfiguration riserConfiguration
      Riser configuration.
    • innerDiameterInches

      private double innerDiameterInches
      Inner diameter in inches.
    • outerDiameterMm

      private double outerDiameterMm
      Outer diameter in mm.
    • length

      private double length
      Length in meters.
    • designPressure

      private double designPressure
      Design pressure in bara.
    • designTemperature

      private double designTemperature
      Design temperature in Celsius.
    • minDesignTemperature

      private double minDesignTemperature
      Minimum design temperature in Celsius.
    • waterDepth

      private double waterDepth
      Water depth in meters.
    • h2sContentPercent

      private double h2sContentPercent
      H2S content in %.
    • co2ContentPercent

      private double co2ContentPercent
      CO2 content in %.
    • sourService

      private boolean sourService
      Whether sour service.
    • sandContentPpmw

      private double sandContentPpmw
      Maximum sand content in ppmw.
    • hasCarcass

      private boolean hasCarcass
      Whether has carcass.
    • carcassMaterial

      private String carcassMaterial
      Carcass material.
    • internalSheathMaterial

      private String internalSheathMaterial
      Internal sheath material.
    • hasPressureArmor

      private boolean hasPressureArmor
      Whether has pressure armor.
    • pressureArmorMaterial

      private String pressureArmorMaterial
      Pressure armor material.
    • tensileArmorLayers

      private int tensileArmorLayers
      Number of tensile armor layers.
    • tensileArmorMaterial

      private String tensileArmorMaterial
      Tensile armor material.
    • outerSheathMaterial

      private String outerSheathMaterial
      Outer sheath material.
    • endFittingType

      private String endFittingType
      End fitting type.
    • endFittingFlangeRating

      private String endFittingFlangeRating
      End fitting flange rating.
    • hasBendStiffener

      private boolean hasBendStiffener
      Whether has bend stiffener.
    • bendStiffenerLength

      private double bendStiffenerLength
      Bend stiffener length in meters.
    • minimumBendRadius

      private double minimumBendRadius
      Minimum bend radius in meters.
    • storageBendRadius

      private double storageBendRadius
      Storage minimum bend radius in meters.
    • maxTensionKN

      private double maxTensionKN
      Maximum tension capacity in kN.
    • burstPressure

      private double burstPressure
      Burst pressure in bara.
    • collapsePressure

      private double collapsePressure
      Collapse pressure in bara.
    • dryWeightPerMeter

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

      private double floodedWeightPerMeter
      Flooded weight per meter in kg/m.
    • submergedWeightPerMeter

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

      private FlexiblePipeMechanicalDesign mechanicalDesign
      Mechanical design instance.
  • Constructor Details

    • FlexiblePipe

      public FlexiblePipe()
      Default constructor.
    • FlexiblePipe

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

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

    • createDynamicRiser

      public static FlexiblePipe createDynamicRiser(String name, StreamInterface inStream, FlexiblePipe.RiserConfiguration configuration)
      Create dynamic riser configuration.
      Parameters:
      name - riser name
      inStream - inlet stream
      configuration - riser configuration
      Returns:
      configured flexible pipe
    • createStaticFlowline

      public static FlexiblePipe createStaticFlowline(String name, StreamInterface inStream, double lengthMeters)
      Create static flowline.
      Parameters:
      name - flowline name
      inStream - inlet stream
      lengthMeters - length in meters
      Returns:
      configured flexible pipe
    • 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 flexible pipe.
      Returns:
      pressure drop in bar
    • isSuitableForSourService

      public boolean isSuitableForSourService()
      Check if suitable for sour service.
      Returns:
      true if suitable for sour service
    • getMechanicalDesign

      public FlexiblePipeMechanicalDesign 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
    • getPipeType

      public FlexiblePipe.PipeType getPipeType()
      Get pipe type.
      Returns:
      pipe type
    • setPipeType

      public void setPipeType(FlexiblePipe.PipeType pipeType)
      Set pipe type.
      Parameters:
      pipeType - pipe type
    • getApplication

      public FlexiblePipe.Application getApplication()
      Get application.
      Returns:
      application
    • setApplication

      public void setApplication(FlexiblePipe.Application application)
      Set application.
      Parameters:
      application - application type
    • getServiceType

      public FlexiblePipe.ServiceType getServiceType()
      Get service type.
      Returns:
      service type
    • setServiceType

      public void setServiceType(FlexiblePipe.ServiceType serviceType)
      Set service type.
      Parameters:
      serviceType - service type
    • getRiserConfiguration

      public FlexiblePipe.RiserConfiguration getRiserConfiguration()
      Get riser configuration.
      Returns:
      riser configuration
    • setRiserConfiguration

      public void setRiserConfiguration(FlexiblePipe.RiserConfiguration riserConfiguration)
      Set riser configuration.
      Parameters:
      riserConfiguration - riser configuration
    • getInnerDiameterInches

      public double getInnerDiameterInches()
      Get inner diameter.
      Returns:
      inner diameter in inches
    • setInnerDiameterInches

      public void setInnerDiameterInches(double innerDiameterInches)
      Set inner diameter.
      Parameters:
      innerDiameterInches - inner diameter in inches
    • getOuterDiameterMm

      public double getOuterDiameterMm()
      Get outer diameter.
      Returns:
      outer diameter in mm
    • setOuterDiameterMm

      public void setOuterDiameterMm(double outerDiameterMm)
      Set outer diameter.
      Parameters:
      outerDiameterMm - outer diameter in mm
    • getLength

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

      public void setLength(double length)
      Set length.
      Parameters:
      length - length 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
    • 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
    • getH2sContentPercent

      public double getH2sContentPercent()
      Get H2S content.
      Returns:
      H2S content in %
    • setH2SContent

      public void setH2SContent(double h2sContentPercent)
      Set H2S content.
      Parameters:
      h2sContentPercent - H2S content in %
    • getCo2ContentPercent

      public double getCo2ContentPercent()
      Get CO2 content.
      Returns:
      CO2 content in %
    • setCO2Content

      public void setCO2Content(double co2ContentPercent)
      Set CO2 content.
      Parameters:
      co2ContentPercent - CO2 content in %
    • isSourService

      public boolean isSourService()
      Check if sour service.
      Returns:
      true if sour service
    • hasCarcass

      public boolean hasCarcass()
      Check if has carcass.
      Returns:
      true if has carcass
    • setHasCarcass

      public void setHasCarcass(boolean hasCarcass)
      Set whether has carcass.
      Parameters:
      hasCarcass - true to include carcass
    • getCarcassMaterial

      public String getCarcassMaterial()
      Get carcass material.
      Returns:
      carcass material
    • setCarcassMaterial

      public void setCarcassMaterial(String carcassMaterial)
      Set carcass material.
      Parameters:
      carcassMaterial - carcass material (316L, Duplex, etc.)
    • getInternalSheathMaterial

      public String getInternalSheathMaterial()
      Get internal sheath material.
      Returns:
      internal sheath material
    • setInternalSheathMaterial

      public void setInternalSheathMaterial(String internalSheathMaterial)
      Set internal sheath material.
      Parameters:
      internalSheathMaterial - internal sheath material (PVDF, PA11, etc.)
    • getTensileArmorLayers

      public int getTensileArmorLayers()
      Get tensile armor layers.
      Returns:
      number of tensile armor layers
    • setTensileArmorLayers

      public void setTensileArmorLayers(int tensileArmorLayers)
      Set tensile armor layers.
      Parameters:
      tensileArmorLayers - number of layers
    • 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
    • getMaxTensionKN

      public double getMaxTensionKN()
      Get maximum tension capacity.
      Returns:
      maximum tension in kN
    • setMaxTensionKN

      public void setMaxTensionKN(double maxTensionKN)
      Set maximum tension capacity.
      Parameters:
      maxTensionKN - maximum tension in kN
    • getBurstPressure

      public double getBurstPressure()
      Get burst pressure.
      Returns:
      burst pressure in bara
    • setBurstPressure

      public void setBurstPressure(double burstPressure)
      Set burst pressure.
      Parameters:
      burstPressure - burst pressure in bara
    • getCollapsePressure

      public double getCollapsePressure()
      Get collapse pressure.
      Returns:
      collapse pressure in bara
    • setCollapsePressure

      public void setCollapsePressure(double collapsePressure)
      Set collapse pressure.
      Parameters:
      collapsePressure - collapse pressure in bara
    • getDryWeightPerMeter

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

      public void setDryWeightPerMeter(double dryWeightPerMeter)
      Set dry weight per meter.
      Parameters:
      dryWeightPerMeter - dry weight in kg/m
    • getSubmergedWeightPerMeter

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

      public void setSubmergedWeightPerMeter(double submergedWeightPerMeter)
      Set submerged weight per meter.
      Parameters:
      submergedWeightPerMeter - submerged weight in kg/m
    • hasBendStiffener

      public boolean hasBendStiffener()
      Check if has bend stiffener.
      Returns:
      true if has bend stiffener
    • setHasBendStiffener

      public void setHasBendStiffener(boolean hasBendStiffener)
      Set whether has bend stiffener.
      Parameters:
      hasBendStiffener - true to include bend stiffener
    • getBendStiffenerLength

      public double getBendStiffenerLength()
      Get bend stiffener length.
      Returns:
      bend stiffener length in meters
    • setBendStiffenerLength

      public void setBendStiffenerLength(double bendStiffenerLength)
      Set bend stiffener length.
      Parameters:
      bendStiffenerLength - bend stiffener length in meters
    • getEndFittingType

      public String getEndFittingType()
      Get end fitting type.
      Returns:
      end fitting type
    • setEndFittingType

      public void setEndFittingType(String endFittingType)
      Set end fitting type.
      Parameters:
      endFittingType - end fitting type (Integrated, Reattachable)
    • getEndFittingFlangeRating

      public String getEndFittingFlangeRating()
      Get end fitting flange rating.
      Returns:
      flange rating
    • setEndFittingFlangeRating

      public void setEndFittingFlangeRating(String endFittingFlangeRating)
      Set end fitting flange rating.
      Parameters:
      endFittingFlangeRating - flange rating (API 6BX, etc.)
    • hasPressureArmor

      public boolean hasPressureArmor()
      Check if has pressure armor.
      Returns:
      true if has pressure armor
    • setHasPressureArmor

      public void setHasPressureArmor(boolean hasPressureArmor)
      Set whether has pressure armor.
      Parameters:
      hasPressureArmor - true to include pressure armor
    • getMinDesignTemperature

      public double getMinDesignTemperature()
      Get minimum design temperature.
      Returns:
      minimum design temperature in Celsius
    • setMinDesignTemperature

      public void setMinDesignTemperature(double minDesignTemperature)
      Set minimum design temperature.
      Parameters:
      minDesignTemperature - minimum design temperature in Celsius