Class FlexiblePipe
java.lang.Object
neqsim.util.NamedBaseClass
neqsim.process.SimulationBaseClass
neqsim.process.equipment.ProcessEquipmentBaseClass
neqsim.process.equipment.TwoPortEquipment
neqsim.process.equipment.subsea.FlexiblePipe
- All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, TwoPortInterface, SimulationInterface, NamedInterface
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)
- Carcass (interlocked steel strip)
- Internal pressure sheath (polymer barrier)
- Pressure armor (interlocked/helical steel)
- Tensile armor (helical steel wires)
- Anti-wear tape
- 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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumApplication type.static enumFlexible pipe construction type.static enumRiser configuration.static enumService fluid type. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate FlexiblePipe.ApplicationApplication type.private doubleBend stiffener length in meters.private doubleBurst pressure in bara.private StringCarcass material.private doubleCO2 content in %.private doubleCollapse pressure in bara.private doubleDesign pressure in bara.private doubleDesign temperature in Celsius.private doubleDry weight per meter in kg/m.private StringEnd fitting flange rating.private StringEnd fitting type.private doubleFlooded weight per meter in kg/m.private doubleH2S content in %.private booleanWhether has bend stiffener.private booleanWhether has carcass.private booleanWhether has pressure armor.private doubleInner diameter in inches.private StringInternal sheath material.private doubleLength in meters.private doubleMaximum tension capacity in kN.private FlexiblePipeMechanicalDesignMechanical design instance.private doubleMinimum design temperature in Celsius.private doubleMinimum bend radius in meters.private doubleOuter diameter in mm.private StringOuter sheath material.private FlexiblePipe.PipeTypePipe type.private StringPressure armor material.private FlexiblePipe.RiserConfigurationRiser configuration.private doubleMaximum sand content in ppmw.private static final longSerialization version UID.private FlexiblePipe.ServiceTypeService type.private booleanWhether sour service.private doubleStorage minimum bend radius in meters.private doubleSubmerged weight per meter in kg/m.private intNumber of tensile armor layers.private StringTensile armor material.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.FlexiblePipe(String name) Constructor with name.FlexiblePipe(String name, StreamInterface inStream) Constructor with name and inlet stream. -
Method Summary
Modifier and TypeMethodDescriptionprivate doubleCalculate pressure drop through flexible pipe.static FlexiblePipecreateDynamicRiser(String name, StreamInterface inStream, FlexiblePipe.RiserConfiguration configuration) Create dynamic riser configuration.static FlexiblePipecreateStaticFlowline(String name, StreamInterface inStream, double lengthMeters) Create static flowline.Get application.doubleGet bend stiffener length.doubleGet burst pressure.Get carcass material.doubleGet CO2 content.doubleGet collapse pressure.doubleGet design pressure.doubleGet design temperature.doubleGet dry weight per meter.Get end fitting flange rating.Get end fitting type.doubleGet H2S content.doubleGet inner diameter.Get internal sheath material.doubleGet length.doubleGet maximum tension capacity.Get mechanical design.doubleGet minimum design temperature.doubleGet minimum bend radius.doubleGet outer diameter.Get pipe type.Get riser configuration.Get service type.doubleGet submerged weight per meter.intGet tensile armor layers.doubleGet water depth.booleanCheck if has bend stiffener.booleanCheck if has carcass.booleanCheck if has pressure armor.voidInitialize mechanical design.booleanCheck if sour service.booleanCheck if suitable for sour service.voidIn this method all thermodynamic and unit operations will be calculated in a steady state calculation.voidsetApplication(FlexiblePipe.Application application) Set application.voidsetBendStiffenerLength(double bendStiffenerLength) Set bend stiffener length.voidsetBurstPressure(double burstPressure) Set burst pressure.voidsetCarcassMaterial(String carcassMaterial) Set carcass material.voidsetCO2Content(double co2ContentPercent) Set CO2 content.voidsetCollapsePressure(double collapsePressure) Set collapse pressure.voidsetDesignPressure(double designPressure) Set design pressure.voidsetDesignTemperature(double designTemperature) Set design temperature.voidsetDryWeightPerMeter(double dryWeightPerMeter) Set dry weight per meter.voidsetEndFittingFlangeRating(String endFittingFlangeRating) Set end fitting flange rating.voidsetEndFittingType(String endFittingType) Set end fitting type.voidsetH2SContent(double h2sContentPercent) Set H2S content.voidsetHasBendStiffener(boolean hasBendStiffener) Set whether has bend stiffener.voidsetHasCarcass(boolean hasCarcass) Set whether has carcass.voidsetHasPressureArmor(boolean hasPressureArmor) Set whether has pressure armor.voidsetInnerDiameterInches(double innerDiameterInches) Set inner diameter.voidsetInternalSheathMaterial(String internalSheathMaterial) Set internal sheath material.voidsetLength(double length) Set length.voidsetMaxTensionKN(double maxTensionKN) Set maximum tension capacity.voidsetMinDesignTemperature(double minDesignTemperature) Set minimum design temperature.voidsetMinimumBendRadius(double minimumBendRadius) Set minimum bend radius.voidsetOuterDiameterMm(double outerDiameterMm) Set outer diameter.voidsetPipeType(FlexiblePipe.PipeType pipeType) Set pipe type.voidsetRiserConfiguration(FlexiblePipe.RiserConfiguration riserConfiguration) Set riser configuration.voidsetServiceType(FlexiblePipe.ServiceType serviceType) Set service type.voidsetSubmergedWeightPerMeter(double submergedWeightPerMeter) Set submerged weight per meter.voidsetTensileArmorLayers(int tensileArmorLayers) Set tensile armor layers.voidsetWaterDepth(double waterDepth) Set water depth.Methods inherited from class TwoPortEquipment
getInletPressure, getInletStream, getInletTemperature, getMassBalance, getOutletPressure, getOutletStream, getOutletTemperature, setInletPressure, setInletStream, setInletTemperature, setOutletPressure, 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:
-
pipeType
Pipe type. -
application
Application type. -
serviceType
Service type. -
riserConfiguration
Riser configuration. -
innerDiameterInches
private double innerDiameterInchesInner diameter in inches. -
outerDiameterMm
private double outerDiameterMmOuter diameter in mm. -
length
private double lengthLength in meters. -
designPressure
private double designPressureDesign pressure in bara. -
designTemperature
private double designTemperatureDesign temperature in Celsius. -
minDesignTemperature
private double minDesignTemperatureMinimum design temperature in Celsius. -
waterDepth
private double waterDepthWater depth in meters. -
h2sContentPercent
private double h2sContentPercentH2S content in %. -
co2ContentPercent
private double co2ContentPercentCO2 content in %. -
sourService
private boolean sourServiceWhether sour service. -
sandContentPpmw
private double sandContentPpmwMaximum sand content in ppmw. -
hasCarcass
private boolean hasCarcassWhether has carcass. -
carcassMaterial
Carcass material. -
internalSheathMaterial
Internal sheath material. -
hasPressureArmor
private boolean hasPressureArmorWhether has pressure armor. -
pressureArmorMaterial
Pressure armor material. -
tensileArmorLayers
private int tensileArmorLayersNumber of tensile armor layers. -
tensileArmorMaterial
Tensile armor material. -
outerSheathMaterial
Outer sheath material. -
endFittingType
End fitting type. -
endFittingFlangeRating
End fitting flange rating. -
hasBendStiffener
private boolean hasBendStiffenerWhether has bend stiffener. -
bendStiffenerLength
private double bendStiffenerLengthBend stiffener length in meters. -
minimumBendRadius
private double minimumBendRadiusMinimum bend radius in meters. -
storageBendRadius
private double storageBendRadiusStorage minimum bend radius in meters. -
maxTensionKN
private double maxTensionKNMaximum tension capacity in kN. -
burstPressure
private double burstPressureBurst pressure in bara. -
collapsePressure
private double collapsePressureCollapse pressure in bara. -
dryWeightPerMeter
private double dryWeightPerMeterDry weight per meter in kg/m. -
floodedWeightPerMeter
private double floodedWeightPerMeterFlooded weight per meter in kg/m. -
submergedWeightPerMeter
private double submergedWeightPerMeterSubmerged weight per meter in kg/m. -
mechanicalDesign
Mechanical design instance.
-
-
Constructor Details
-
FlexiblePipe
public FlexiblePipe()Default constructor. -
FlexiblePipe
-
FlexiblePipe
Constructor with name and inlet stream.- Parameters:
name- equipment nameinStream- inlet stream
-
-
Method Details
-
createDynamicRiser
public static FlexiblePipe createDynamicRiser(String name, StreamInterface inStream, FlexiblePipe.RiserConfiguration configuration) Create dynamic riser configuration.- Parameters:
name- riser nameinStream- inlet streamconfiguration- riser configuration- Returns:
- configured flexible pipe
-
createStaticFlowline
public static FlexiblePipe createStaticFlowline(String name, StreamInterface inStream, double lengthMeters) Create static flowline.- Parameters:
name- flowline nameinStream- inlet streamlengthMeters- length in meters- Returns:
- configured flexible pipe
-
run
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
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
-
getPipeType
-
setPipeType
Set pipe type.- Parameters:
pipeType- pipe type
-
getApplication
-
setApplication
Set application.- Parameters:
application- application type
-
getServiceType
-
setServiceType
Set service type.- Parameters:
serviceType- service type
-
getRiserConfiguration
Get riser configuration.- Returns:
- riser configuration
-
setRiserConfiguration
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
-
setCarcassMaterial
Set carcass material.- Parameters:
carcassMaterial- carcass material (316L, Duplex, etc.)
-
getInternalSheathMaterial
Get internal sheath material.- Returns:
- internal sheath material
-
setInternalSheathMaterial
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
-
setEndFittingType
Set end fitting type.- Parameters:
endFittingType- end fitting type (Integrated, Reattachable)
-
getEndFittingFlangeRating
-
setEndFittingFlangeRating
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
-