Class TopsidePiping

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

public class TopsidePiping extends PipeBeggsAndBrills
Topside piping equipment class for offshore platforms and onshore facilities. <p> This class extends PipeBeggsAndBrills to provide topside piping-specific functionality including: </p> <ul> <li>ASME B31.3 Process Piping design</li> <li>Velocity limits for erosion and vibration prevention</li> <li>Pipe support spacing calculations</li> <li>Flow-induced vibration (FIV) analysis</li> <li>Acoustic-induced vibration (AIV) screening</li> <li>Thermal expansion and stress analysis</li> </ul> <h2>Service Types</h2> <p> The class supports multiple service types: </p> <ul> <li><b>PROCESS_GAS</b>: High-pressure gas piping</li> <li><b>PROCESS_LIQUID</b>: Liquid hydrocarbon piping</li> <li><b>MULTIPHASE</b>: Two-phase or multiphase flow piping</li> <li><b>PRODUCED_WATER</b>: Produced water handling</li> <li><b>STEAM</b>: Steam distribution piping</li> <li><b>UTILITY_AIR</b>: Instrument and utility air</li> <li><b>FLARE</b>: Flare header and knockout drum piping</li> <li><b>FUEL_GAS</b>: Fuel gas distribution</li> </ul> <h2>Usage Example</h2> <pre> // Create topside process piping TopsidePiping gasHeader = new TopsidePiping("HP Gas Header", inletStream); gasHeader.setServiceType(TopsidePiping.ServiceType.PROCESS_GAS); gasHeader.setDiameter(0.2032); // 8 inch gasHeader.setLength(50.0); // 50 meters gasHeader.run(); // Get mechanical design TopsidePipingMechanicalDesign design = gasHeader.getTopsideMechanicalDesign(); design.setMaxOperationPressure(100.0); design.setMaterialGrade("A106-B"); design.setDesignStandardCode("ASME-B31.3"); design.setCompanySpecificDesignStandards("Equinor"); design.readDesignSpecifications(); design.calcDesign(); // Check velocity limits double erosionVelocity = design.getCalculator().getErosionalVelocity(); double actualVelocity = design.getCalculator().getActualVelocity(); boolean velocityOk = actualVelocity &lt; erosionVelocity; // Get support spacing double supportSpan = design.getCalculator().getSupportSpacing(); </pre>
Version:
1.0
Author:
ASMF
See Also:
  • Field Details

    • serialVersionUID

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

      private TopsidePipingMechanicalDesign topsideMechanicalDesign
      Topside piping mechanical design.
    • serviceType

      private TopsidePiping.ServiceType serviceType
      Service type for this piping.
    • pipeSchedule

      private TopsidePiping.PipeSchedule pipeSchedule
      Pipe schedule.
    • insulationType

      private TopsidePiping.InsulationType insulationType
      Insulation type.
    • insulationThickness

      private double insulationThickness
      Insulation thickness in meters.
    • maxOperatingPressure

      private double maxOperatingPressure
      Maximum operating pressure in bara.
    • minOperatingPressure

      private double minOperatingPressure
      Minimum operating pressure in bara.
    • maxOperatingTemperature

      private double maxOperatingTemperature
      Maximum operating temperature in Celsius.
    • minOperatingTemperature

      private double minOperatingTemperature
      Minimum operating temperature in Celsius.
    • numberOfElbows90

      private int numberOfElbows90
      Number of 90-degree elbows.
    • numberOfElbows45

      private int numberOfElbows45
      Number of 45-degree elbows.
    • numberOfTees

      private int numberOfTees
      Number of tees.
    • numberOfReducers

      private int numberOfReducers
      Number of reducers.
    • numberOfValves

      private int numberOfValves
      Number of valves.
    • valveType

      private String valveType
      Valve type (Gate, Ball, Globe, Check).
    • numberOfFlanges

      private int numberOfFlanges
      Number of flanges.
    • flangeRating

      private int flangeRating
      Flange rating class (150, 300, 600, 900, 1500, 2500).
    • supportSpacing

      private double supportSpacing
      Support spacing in meters.
    • numberOfSupports

      private int numberOfSupports
      Number of pipe supports.
    • numberOfAnchors

      private int numberOfAnchors
      Number of anchors.
    • numberOfGuides

      private int numberOfGuides
      Number of guides.
    • numberOfExpansionLoops

      private int numberOfExpansionLoops
      Number of expansion loops.
    • ambientTemperature

      private double ambientTemperature
      Ambient temperature in Celsius.
    • windSpeed

      private double windSpeed
      Wind speed in m/s.
    • exposedToWeather

      private boolean exposedToWeather
      Is the piping exposed to weather?
    • corrosiveEnvironment

      private boolean corrosiveEnvironment
      Is the piping in a corrosive environment?
  • Constructor Details

    • TopsidePiping

      public TopsidePiping()
      Default constructor.
    • TopsidePiping

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

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

      public TopsidePiping(TopsidePiping.ServiceType serviceType, String name, StreamInterface inStream)
      Constructor with service type, name and inlet stream.
      Parameters:
      serviceType - the service type
      name - equipment name
      inStream - inlet stream
  • Method Details

    • createProcessGas

      public static TopsidePiping createProcessGas(String name, StreamInterface inStream)
      Create process gas piping.
      Parameters:
      name - equipment name
      inStream - inlet stream
      Returns:
      configured process gas piping
    • createProcessLiquid

      public static TopsidePiping createProcessLiquid(String name, StreamInterface inStream)
      Create process liquid piping.
      Parameters:
      name - equipment name
      inStream - inlet stream
      Returns:
      configured process liquid piping
    • createMultiphase

      public static TopsidePiping createMultiphase(String name, StreamInterface inStream)
      Create multiphase piping.
      Parameters:
      name - equipment name
      inStream - inlet stream
      Returns:
      configured multiphase piping
    • createFlareHeader

      public static TopsidePiping createFlareHeader(String name, StreamInterface inStream)
      Create flare header piping.
      Parameters:
      name - equipment name
      inStream - inlet stream
      Returns:
      configured flare header piping
    • createFuelGas

      public static TopsidePiping createFuelGas(String name, StreamInterface inStream)
      Create fuel gas piping.
      Parameters:
      name - equipment name
      inStream - inlet stream
      Returns:
      configured fuel gas piping
    • createSteam

      public static TopsidePiping createSteam(String name, StreamInterface inStream)
      Create steam piping.
      Parameters:
      name - equipment name
      inStream - inlet stream
      Returns:
      configured steam piping
    • 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
    • getTopsideMechanicalDesign

      public TopsidePipingMechanicalDesign getTopsideMechanicalDesign()
      Get mechanical design as TopsidePipingMechanicalDesign.
      Returns:
      topside piping mechanical design
    • getEquivalentLength

      public double getEquivalentLength()
      Calculate total equivalent length including fittings.
      Overrides:
      getEquivalentLength in class Pipeline
      Returns:
      equivalent length in meters
    • getServiceType

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

      public void setServiceType(TopsidePiping.ServiceType serviceType)
      Set service type.
      Parameters:
      serviceType - service type
    • getPipeScheduleEnum

      public TopsidePiping.PipeSchedule getPipeScheduleEnum()
      Get pipe schedule enum.
      Returns:
      pipe schedule enum
    • getPipeSchedule

      public String getPipeSchedule()
      Get the pipe schedule.
      Specified by:
      getPipeSchedule in interface PipeLineInterface
      Overrides:
      getPipeSchedule in class Pipeline
      Returns:
      pipe schedule
    • setPipeSchedule

      public void setPipeSchedule(TopsidePiping.PipeSchedule pipeSchedule)
      Set pipe schedule.
      Parameters:
      pipeSchedule - pipe schedule
    • getInsulationTypeEnum

      public TopsidePiping.InsulationType getInsulationTypeEnum()
      Get insulation type enum.
      Returns:
      insulation type enum
    • getInsulationType

      public String getInsulationType()
      Get the insulation type/material.
      Specified by:
      getInsulationType in interface PipeLineInterface
      Overrides:
      getInsulationType in class Pipeline
      Returns:
      insulation type
    • setInsulationType

      public void setInsulationType(TopsidePiping.InsulationType insulationType)
      Set insulation type.
      Parameters:
      insulationType - insulation type
    • getInsulationThickness

      public double getInsulationThickness()
      Get insulation thickness.
      Specified by:
      getInsulationThickness in interface PipeLineInterface
      Overrides:
      getInsulationThickness in class PipeBeggsAndBrills
      Returns:
      insulation thickness in meters
    • setInsulationThickness

      public void setInsulationThickness(double insulationThickness)
      Set insulation thickness.
      Specified by:
      setInsulationThickness in interface PipeLineInterface
      Overrides:
      setInsulationThickness in class Pipeline
      Parameters:
      insulationThickness - insulation thickness in meters
    • getMaxOperatingPressure

      public double getMaxOperatingPressure()
      Get maximum operating pressure.
      Returns:
      maximum operating pressure in bara
    • setMaxOperatingPressure

      public void setMaxOperatingPressure(double maxOperatingPressure)
      Set maximum operating pressure.
      Parameters:
      maxOperatingPressure - maximum operating pressure in bara
    • getMinOperatingPressure

      public double getMinOperatingPressure()
      Get minimum operating pressure.
      Returns:
      minimum operating pressure in bara
    • setMinOperatingPressure

      public void setMinOperatingPressure(double minOperatingPressure)
      Set minimum operating pressure.
      Parameters:
      minOperatingPressure - minimum operating pressure in bara
    • getMaxOperatingTemperature

      public double getMaxOperatingTemperature()
      Get maximum operating temperature.
      Returns:
      maximum operating temperature in Celsius
    • setMaxOperatingTemperature

      public void setMaxOperatingTemperature(double maxOperatingTemperature)
      Set maximum operating temperature.
      Parameters:
      maxOperatingTemperature - maximum operating temperature in Celsius
    • getMinOperatingTemperature

      public double getMinOperatingTemperature()
      Get minimum operating temperature.
      Returns:
      minimum operating temperature in Celsius
    • setMinOperatingTemperature

      public void setMinOperatingTemperature(double minOperatingTemperature)
      Set minimum operating temperature.
      Parameters:
      minOperatingTemperature - minimum operating temperature in Celsius
    • getNumberOfElbows90

      public int getNumberOfElbows90()
      Get number of 90-degree elbows.
      Returns:
      number of 90-degree elbows
    • setNumberOfElbows90

      public void setNumberOfElbows90(int numberOfElbows90)
      Set number of 90-degree elbows.
      Parameters:
      numberOfElbows90 - number of 90-degree elbows
    • getNumberOfElbows45

      public int getNumberOfElbows45()
      Get number of 45-degree elbows.
      Returns:
      number of 45-degree elbows
    • setNumberOfElbows45

      public void setNumberOfElbows45(int numberOfElbows45)
      Set number of 45-degree elbows.
      Parameters:
      numberOfElbows45 - number of 45-degree elbows
    • getNumberOfTees

      public int getNumberOfTees()
      Get number of tees.
      Returns:
      number of tees
    • setNumberOfTees

      public void setNumberOfTees(int numberOfTees)
      Set number of tees.
      Parameters:
      numberOfTees - number of tees
    • getNumberOfReducers

      public int getNumberOfReducers()
      Get number of reducers.
      Returns:
      number of reducers
    • setNumberOfReducers

      public void setNumberOfReducers(int numberOfReducers)
      Set number of reducers.
      Parameters:
      numberOfReducers - number of reducers
    • getNumberOfValves

      public int getNumberOfValves()
      Get number of valves.
      Returns:
      number of valves
    • setNumberOfValves

      public void setNumberOfValves(int numberOfValves)
      Set number of valves.
      Parameters:
      numberOfValves - number of valves
    • getValveType

      public String getValveType()
      Get valve type.
      Returns:
      valve type
    • setValveType

      public void setValveType(String valveType)
      Set valve type.
      Parameters:
      valveType - valve type (Gate, Ball, Globe, Check)
    • getNumberOfFlanges

      public int getNumberOfFlanges()
      Get number of flanges.
      Returns:
      number of flanges
    • setNumberOfFlanges

      public void setNumberOfFlanges(int numberOfFlanges)
      Set number of flanges.
      Parameters:
      numberOfFlanges - number of flanges
    • getFlangeRating

      public int getFlangeRating()
      Get flange rating.
      Returns:
      flange rating class
    • setFlangeRating

      public void setFlangeRating(int flangeRating)
      Set flange rating.
      Parameters:
      flangeRating - flange rating class (150, 300, 600, 900, 1500, 2500)
    • getSupportSpacing

      public double getSupportSpacing()
      Get support spacing.
      Returns:
      support spacing in meters
    • setSupportSpacing

      public void setSupportSpacing(double supportSpacing)
      Set support spacing.
      Parameters:
      supportSpacing - support spacing in meters
    • getNumberOfSupports

      public int getNumberOfSupports()
      Get number of pipe supports.
      Returns:
      number of supports
    • setNumberOfSupports

      public void setNumberOfSupports(int numberOfSupports)
      Set number of pipe supports.
      Parameters:
      numberOfSupports - number of supports
    • getNumberOfAnchors

      public int getNumberOfAnchors()
      Get number of anchors.
      Returns:
      number of anchors
    • setNumberOfAnchors

      public void setNumberOfAnchors(int numberOfAnchors)
      Set number of anchors.
      Parameters:
      numberOfAnchors - number of anchors
    • getNumberOfGuides

      public int getNumberOfGuides()
      Get number of guides.
      Returns:
      number of guides
    • setNumberOfGuides

      public void setNumberOfGuides(int numberOfGuides)
      Set number of guides.
      Parameters:
      numberOfGuides - number of guides
    • getNumberOfExpansionLoops

      public int getNumberOfExpansionLoops()
      Get number of expansion loops.
      Returns:
      number of expansion loops
    • setNumberOfExpansionLoops

      public void setNumberOfExpansionLoops(int numberOfExpansionLoops)
      Set number of expansion loops.
      Parameters:
      numberOfExpansionLoops - number of expansion loops
    • getAmbientTemperature

      public double getAmbientTemperature()
      Get ambient temperature.
      Specified by:
      getAmbientTemperature in interface PipeLineInterface
      Overrides:
      getAmbientTemperature in class Pipeline
      Returns:
      ambient temperature in Celsius
    • setAmbientTemperature

      public void setAmbientTemperature(double ambientTemperature)
      Set ambient temperature.
      Specified by:
      setAmbientTemperature in interface PipeLineInterface
      Overrides:
      setAmbientTemperature in class Pipeline
      Parameters:
      ambientTemperature - ambient temperature in Celsius
    • getWindSpeed

      public double getWindSpeed()
      Get wind speed.
      Returns:
      wind speed in m/s
    • setWindSpeed

      public void setWindSpeed(double windSpeed)
      Set wind speed.
      Parameters:
      windSpeed - wind speed in m/s
    • isExposedToWeather

      public boolean isExposedToWeather()
      Check if piping is exposed to weather.
      Returns:
      true if exposed to weather
    • setExposedToWeather

      public void setExposedToWeather(boolean exposedToWeather)
      Set if piping is exposed to weather.
      Parameters:
      exposedToWeather - true if exposed to weather
    • isCorrosiveEnvironment

      public boolean isCorrosiveEnvironment()
      Check if in corrosive environment.
      Returns:
      true if in corrosive environment
    • setCorrosiveEnvironment

      public void setCorrosiveEnvironment(boolean corrosiveEnvironment)
      Set if in corrosive environment.
      Parameters:
      corrosiveEnvironment - true if in corrosive environment
    • setFittings

      public void setFittings(int elbows90, int elbows45, int tees, int valves)
      Set layout configuration for fittings.
      Parameters:
      elbows90 - number of 90-degree elbows
      elbows45 - number of 45-degree elbows
      tees - number of tees
      valves - number of valves
    • setInsulation

      public void setInsulation(TopsidePiping.InsulationType type, double thickness)
      Set insulation configuration.
      Parameters:
      type - insulation type
      thickness - thickness in meters
    • setOperatingEnvelope

      public void setOperatingEnvelope(double minPressure, double maxPressure, double minTemperature, double maxTemperature)
      Set operating envelope.
      Parameters:
      minPressure - minimum operating pressure in bara
      maxPressure - maximum operating pressure in bara
      minTemperature - minimum operating temperature in Celsius
      maxTemperature - maximum operating temperature in Celsius