Class Riser

All Implemented Interfaces:
Serializable, Runnable, AutoSizeable, CapacityConstrainedEquipment, PipeLineInterface, ProcessEquipmentInterface, TwoPortInterface, SimulationInterface, NamedInterface

public class Riser extends PipeBeggsAndBrills
Riser equipment class for subsea and offshore applications.

This class extends PipeBeggsAndBrills to provide riser-specific functionality including:

  • Riser configuration types (SCR, TTR, Lazy-Wave, Flexible, Hybrid)
  • Water depth and platform offset handling
  • Riser-specific mechanical design (top tension, VIV, fatigue)
  • Dynamic response parameters

Riser Types

The class supports multiple riser configurations:

  • SCR (Steel Catenary Riser): Simple catenary from seabed to platform
  • TTR (Top Tensioned Riser): Vertical riser with top tension
  • Lazy-Wave: Catenary with buoyancy modules creating wave shape
  • Flexible: Flexible pipe with higher curvature tolerance
  • Hybrid: Combination of rigid and flexible sections

Usage Example

// Create an SCR riser
Riser scr = new Riser("Production Riser", inletStream);
scr.setRiserType(Riser.RiserType.STEEL_CATENARY_RISER);
scr.setWaterDepth(800.0); // meters
scr.setTopAngle(12.0); // degrees from vertical
scr.setDiameter(0.254); // 10 inch ID
scr.run();

// Get mechanical design
RiserMechanicalDesign design = (RiserMechanicalDesign) scr.getMechanicalDesign();
design.setMaxOperationPressure(100.0);
design.setMaterialGrade("X65");
design.setDesignStandardCode("DNV-OS-F101");
design.readDesignSpecifications();
design.calcDesign();

// Get riser-specific results
double topTension = design.getCalculator().getTopTension();
double viv = design.getCalculator().getVIVResponse();
Version:
1.0
Author:
ASMF
See Also:
  • Field Details

    • serialVersionUID

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

      private RiserMechanicalDesign riserMechanicalDesign
      Riser mechanical design.
    • riserType

      private Riser.RiserType riserType
      Riser type.
    • waterDepth

      private double waterDepth
      Water depth in meters.
    • topAngle

      private double topAngle
      Top hangoff angle from vertical in degrees.
    • departureAngle

      private double departureAngle
      Departure angle from seabed in degrees.
    • platformOffset

      private double platformOffset
      Platform horizontal offset in meters.
    • buoyancyModuleDepth

      private double buoyancyModuleDepth
      Depth of buoyancy modules for lazy-wave (meters from surface).
    • buoyancyModuleLength

      private double buoyancyModuleLength
      Length of buoyancy section in meters.
    • buoyancyPerMeter

      private double buoyancyPerMeter
      Buoyancy per unit length in N/m (for lazy-wave).
    • appliedTopTension

      private double appliedTopTension
      Applied top tension in kN.
    • tensionVariationFactor

      private double tensionVariationFactor
      Tension variation range (heave) as fraction.
    • significantWaveHeight

      private double significantWaveHeight
      Significant wave height in meters.
    • peakWavePeriod

      private double peakWavePeriod
      Peak wave period in seconds.
    • currentVelocity

      private double currentVelocity
      Current velocity at surface in m/s.
    • seabedCurrentVelocity

      private double seabedCurrentVelocity
      Current velocity at seabed in m/s.
    • platformHeaveAmplitude

      private double platformHeaveAmplitude
      Platform heave motion amplitude in meters.
    • platformHeavePeriod

      private double platformHeavePeriod
      Platform heave period in seconds.
    • soilType

      private String soilType
      Seabed soil type.
    • seabedFriction

      private double seabedFriction
      Seabed friction coefficient.
    • seawaterTemperature

      private double seawaterTemperature
      Seawater temperature in Celsius.
  • Constructor Details

    • Riser

      public Riser()
      Default constructor.
    • Riser

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

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

      public Riser(Riser.RiserType riserType, String name, StreamInterface inStream)
      Constructor with riser type, name and inlet stream.
      Parameters:
      riserType - the type of riser
      name - equipment name
      inStream - inlet stream
  • Method Details

    • createSCR

      public static Riser createSCR(String name, StreamInterface inStream, double waterDepth)
      Create a Steel Catenary Riser.
      Parameters:
      name - equipment name
      inStream - inlet stream
      waterDepth - water depth in meters
      Returns:
      configured SCR
    • createTTR

      public static Riser createTTR(String name, StreamInterface inStream, double waterDepth)
      Create a Top Tensioned Riser.
      Parameters:
      name - equipment name
      inStream - inlet stream
      waterDepth - water depth in meters
      Returns:
      configured TTR
    • createLazyWave

      public static Riser createLazyWave(String name, StreamInterface inStream, double waterDepth, double buoyancyDepth)
      Create a Lazy-Wave riser.
      Parameters:
      name - equipment name
      inStream - inlet stream
      waterDepth - water depth in meters
      buoyancyDepth - depth of buoyancy modules from surface
      Returns:
      configured lazy-wave riser
    • createFlexible

      public static Riser createFlexible(String name, StreamInterface inStream, double waterDepth)
      Create a Flexible riser.
      Parameters:
      name - equipment name
      inStream - inlet stream
      waterDepth - water depth in meters
      Returns:
      configured flexible riser
    • createHybrid

      public static Riser createHybrid(String name, StreamInterface inStream, double waterDepth)
      Create a Hybrid riser.
      Parameters:
      name - equipment name
      inStream - inlet stream
      waterDepth - water depth in meters
      Returns:
      configured hybrid riser
    • updateGeometryFromType

      public void updateGeometryFromType()
      Update pipe geometry based on riser type.

      This method configures length, elevation and angle based on the riser type and water depth.

    • configureSCR

      private void configureSCR()
      Configure as Steel Catenary Riser.
    • configureFlexible

      private void configureFlexible()
      Configure as Flexible Riser.
    • configureTTR

      private void configureTTR()
      Configure as Top Tensioned Riser (vertical).
    • configureLazyWave

      private void configureLazyWave()
      Configure as Lazy-Wave riser.
    • configureSteepWave

      private void configureSteepWave()
      Configure as Steep-Wave riser.
    • configureHybrid

      private void configureHybrid()
      Configure as Hybrid Riser.
    • configureFreeStanding

      private void configureFreeStanding()
      Configure as Free-Standing Hybrid Riser.
    • configureVertical

      private void configureVertical()
      Configure as simple vertical riser.
    • initMechanicalDesign

      public void initMechanicalDesign()

      Initialize a initMechanicalDesign for the equipment.

      Specified by:
      initMechanicalDesign in interface ProcessEquipmentInterface
      Overrides:
      initMechanicalDesign in class Pipeline
    • getMechanicalDesign

      public PipelineMechanicalDesign getMechanicalDesign()

      Get a mechanicalDesign for the equipment.

      Specified by:
      getMechanicalDesign in interface ProcessEquipmentInterface
      Overrides:
      getMechanicalDesign in class Pipeline
      Returns:
      a MechanicalDesign object
    • getRiserMechanicalDesign

      public RiserMechanicalDesign getRiserMechanicalDesign()
      Get mechanical design as RiserMechanicalDesign.
      Returns:
      riser mechanical design
    • run

      public void run()
    • getRiserType

      public Riser.RiserType getRiserType()
      Get the riser type.
      Returns:
      riser type enum
    • setRiserType

      public void setRiserType(Riser.RiserType riserType)
      Set the riser type.
      Parameters:
      riserType - type of riser
    • getWaterDepth

      public double getWaterDepth()
      Get water depth.
      Returns:
      water depth in meters
    • setWaterDepth

      public void setWaterDepth(double waterDepth)
      Set water depth.
      Parameters:
      waterDepth - depth in meters
    • getTopAngle

      public double getTopAngle()
      Get top hangoff angle.
      Returns:
      angle in degrees from vertical
    • setTopAngle

      public void setTopAngle(double topAngle)
      Set top hangoff angle.
      Parameters:
      topAngle - angle in degrees from vertical
    • getDepartureAngle

      public double getDepartureAngle()
      Get departure angle from seabed.
      Returns:
      angle in degrees
    • setDepartureAngle

      public void setDepartureAngle(double departureAngle)
      Set departure angle from seabed.
      Parameters:
      departureAngle - angle in degrees
    • getPlatformOffset

      public double getPlatformOffset()
      Get platform horizontal offset.
      Returns:
      offset in meters
    • setPlatformOffset

      public void setPlatformOffset(double platformOffset)
      Set platform horizontal offset.
      Parameters:
      platformOffset - offset in meters
    • getBuoyancyModuleDepth

      public double getBuoyancyModuleDepth()
      Get buoyancy module depth.
      Returns:
      depth from surface in meters
    • setBuoyancyModuleDepth

      public void setBuoyancyModuleDepth(double buoyancyModuleDepth)
      Set buoyancy module depth for lazy-wave configuration.
      Parameters:
      buoyancyModuleDepth - depth from surface in meters
    • getBuoyancyModuleLength

      public double getBuoyancyModuleLength()
      Get buoyancy module length.
      Returns:
      length in meters
    • setBuoyancyModuleLength

      public void setBuoyancyModuleLength(double buoyancyModuleLength)
      Set buoyancy module length.
      Parameters:
      buoyancyModuleLength - length in meters
    • getBuoyancyPerMeter

      public double getBuoyancyPerMeter()
      Get buoyancy per meter.
      Returns:
      buoyancy in N/m
    • setBuoyancyPerMeter

      public void setBuoyancyPerMeter(double buoyancyPerMeter)
      Set buoyancy per meter for buoyancy section.
      Parameters:
      buoyancyPerMeter - buoyancy in N/m
    • getAppliedTopTension

      public double getAppliedTopTension()
      Get applied top tension.
      Returns:
      tension in kN
    • setAppliedTopTension

      public void setAppliedTopTension(double appliedTopTension)
      Set applied top tension for TTR.
      Parameters:
      appliedTopTension - tension in kN
    • getTensionVariationFactor

      public double getTensionVariationFactor()
      Get tension variation factor.
      Returns:
      factor (0.1 = 10% variation)
    • setTensionVariationFactor

      public void setTensionVariationFactor(double tensionVariationFactor)
      Set tension variation factor for heave motion.
      Parameters:
      tensionVariationFactor - factor as fraction
    • getSignificantWaveHeight

      public double getSignificantWaveHeight()
      Get significant wave height.
      Returns:
      wave height in meters
    • setSignificantWaveHeight

      public void setSignificantWaveHeight(double significantWaveHeight)
      Set significant wave height.
      Parameters:
      significantWaveHeight - height in meters
    • getPeakWavePeriod

      public double getPeakWavePeriod()
      Get peak wave period.
      Returns:
      period in seconds
    • setPeakWavePeriod

      public void setPeakWavePeriod(double peakWavePeriod)
      Set peak wave period.
      Parameters:
      peakWavePeriod - period in seconds
    • getCurrentVelocity

      public double getCurrentVelocity()
      Get surface current velocity.
      Returns:
      velocity in m/s
    • setCurrentVelocity

      public void setCurrentVelocity(double currentVelocity)
      Set surface current velocity.
      Parameters:
      currentVelocity - velocity in m/s
    • getSeabedCurrentVelocity

      public double getSeabedCurrentVelocity()
      Get seabed current velocity.
      Returns:
      velocity in m/s
    • setSeabedCurrentVelocity

      public void setSeabedCurrentVelocity(double seabedCurrentVelocity)
      Set seabed current velocity.
      Parameters:
      seabedCurrentVelocity - velocity in m/s
    • getPlatformHeaveAmplitude

      public double getPlatformHeaveAmplitude()
      Get platform heave amplitude.
      Returns:
      amplitude in meters
    • setPlatformHeaveAmplitude

      public void setPlatformHeaveAmplitude(double platformHeaveAmplitude)
      Set platform heave motion amplitude.
      Parameters:
      platformHeaveAmplitude - amplitude in meters
    • getPlatformHeavePeriod

      public double getPlatformHeavePeriod()
      Get platform heave period.
      Returns:
      period in seconds
    • setPlatformHeavePeriod

      public void setPlatformHeavePeriod(double platformHeavePeriod)
      Set platform heave motion period.
      Parameters:
      platformHeavePeriod - period in seconds
    • getSoilType

      public String getSoilType()
      Get soil type at seabed.
      Returns:
      soil type (clay, sand, rock)
    • setSoilType

      public void setSoilType(String soilType)
      Set soil type at seabed.
      Parameters:
      soilType - type (clay, sand, rock)
    • getSeabedFriction

      public double getSeabedFriction()
      Get seabed friction coefficient.
      Returns:
      friction coefficient
    • setSeabedFriction

      public void setSeabedFriction(double seabedFriction)
      Set seabed friction coefficient.
      Parameters:
      seabedFriction - friction coefficient (0-1)
    • getSeawaterTemperature

      public double getSeawaterTemperature()
      Get seawater temperature.
      Returns:
      temperature in Celsius
    • setSeawaterTemperature

      public void setSeawaterTemperature(double seawaterTemperature)
      Set seawater temperature.
      Parameters:
      seawaterTemperature - temperature in Celsius
    • isCatenaryType

      public boolean isCatenaryType()
      Check if riser is a catenary type (SCR, Flexible, Lazy-wave, Steep-wave).
      Returns:
      true if catenary type
    • isTensionedType

      public boolean isTensionedType()
      Check if riser is a tensioned type (TTR, Hybrid).
      Returns:
      true if tensioned type
    • isFlexibleType

      public boolean isFlexibleType()
      Check if riser is a flexible type.
      Returns:
      true if flexible type
    • hasBuoyancyModules

      public boolean hasBuoyancyModules()
      Check if riser has buoyancy modules.
      Returns:
      true if has buoyancy modules