Class FlexiblePipeMechanicalDesign

java.lang.Object
neqsim.process.mechanicaldesign.MechanicalDesign
neqsim.process.mechanicaldesign.subsea.FlexiblePipeMechanicalDesign
All Implemented Interfaces:
Serializable

public class FlexiblePipeMechanicalDesign extends MechanicalDesign
Mechanical design class for Flexible Pipe equipment.

Calculates layer design, tensile capacity, and bend radius requirements per:

  • 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
Version:
1.0
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

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

      private FlexiblePipe flexPipe
      Reference to flexible pipe equipment.
    • designStandardCode

      private String designStandardCode
      Design standard code.
    • requiredBurstPressure

      private double requiredBurstPressure
      Required burst pressure in bar.
    • requiredCollapsePressure

      private double requiredCollapsePressure
      Required collapse pressure in bar.
    • requiredTensileCapacity

      private double requiredTensileCapacity
      Required tensile capacity in kN.
    • carcassThickness

      private double carcassThickness
      Carcass thickness in mm.
    • internalSheathThickness

      private double internalSheathThickness
      Internal sheath thickness in mm.
    • pressureArmorThickness

      private double pressureArmorThickness
      Pressure armor thickness in mm.
    • tensileArmorWireSize

      private double tensileArmorWireSize
      Tensile armor wire size in mm.
    • calculatedMBR

      private double calculatedMBR
      Calculated minimum bend radius in meters.
    • storageMBR

      private double storageMBR
      Storage bend radius in meters.
    • designLife

      private int designLife
      Design life in years.
    • fatigueLifeCycles

      private double fatigueLifeCycles
      Fatigue life cycles.
    • costEstimator

      private transient SubseaCostEstimator costEstimator
      Cost estimator.
    • totalCostUSD

      private double totalCostUSD
      Total estimated cost in USD.
    • equipmentCostUSD

      private double equipmentCostUSD
      Equipment cost in USD.
    • installationCostUSD

      private double installationCostUSD
      Installation cost in USD.
    • vesselDays

      private double vesselDays
      Vessel days required.
    • totalManhours

      private double totalManhours
      Total manhours.
  • Constructor Details

    • FlexiblePipeMechanicalDesign

      public FlexiblePipeMechanicalDesign(ProcessEquipmentInterface equipment)
      Constructor.
      Parameters:
      equipment - flexible pipe equipment instance
  • Method Details

    • readDesignSpecifications

      public void readDesignSpecifications()

      readDesignSpecifications.

      Overrides:
      readDesignSpecifications in class MechanicalDesign
    • calcDesign

      public void calcDesign()

      calcDesign.

      Overrides:
      calcDesign in class MechanicalDesign
    • calculatePressureCapacity

      private void calculatePressureCapacity()
      Calculate pressure capacity requirements.
    • calculateTensileCapacity

      private void calculateTensileCapacity()
      Calculate tensile capacity requirements.
    • calculateLayerThickness

      private void calculateLayerThickness()
      Calculate layer thicknesses.
    • calculateBendRadius

      private void calculateBendRadius()
      Calculate bend radius requirements.
    • calculateFatigueLife

      private void calculateFatigueLife()
      Calculate fatigue life.
    • calculateWeight

      private void calculateWeight()
      Calculate weight.
    • calculateCostEstimate

      public void calculateCostEstimate()
      Calculate cost estimate for the flexible pipe.
      Overrides:
      calculateCostEstimate in class MechanicalDesign
    • getCostBreakdown

      public Map<String,Object> getCostBreakdown()
      Get cost breakdown.
      Returns:
      map of cost categories
    • generateBillOfMaterials

      public List<Map<String,Object>> generateBillOfMaterials()
      Generate bill of materials.
      Overrides:
      generateBillOfMaterials in class MechanicalDesign
      Returns:
      list of BOM items
    • getTotalCostUSD

      public double getTotalCostUSD()
      Get total cost USD.
      Returns:
      total cost
    • getEquipmentCostUSD

      public double getEquipmentCostUSD()
      Get equipment cost USD.
      Returns:
      equipment cost
    • getInstallationCostUSD

      public double getInstallationCostUSD()
      Get installation cost USD.
      Returns:
      installation cost
    • getVesselDays

      public double getVesselDays()
      Get vessel days.
      Returns:
      vessel days
    • getTotalManhours

      public double getTotalManhours()
      Get total manhours.
      Returns:
      total manhours
    • setRegion

      public void setRegion(SubseaCostEstimator.Region region)
      Set region for cost estimation.
      Parameters:
      region - cost region
    • toJson

      public String toJson()
      Export mechanical design data to JSON format.

      This method creates a MechanicalDesignResponse object and serializes it to JSON using Gson. The JSON includes equipment identification, weight breakdown, design conditions, dimensions, and materials information.

      Usage example:

      
      MechanicalDesign mecDesign = separator.getMechanicalDesign();
      mecDesign.calcDesign();
      String json = mecDesign.toJson();
      
      
      Overrides:
      toJson in class MechanicalDesign
      Returns:
      JSON string representation of the mechanical design
    • toMap

      public Map<String,Object> toMap()
      Get design results as Map.
      Returns:
      design results map
    • getDesignStandardCode

      public String getDesignStandardCode()
      Get design standard code.
      Returns:
      design standard code
    • setDesignStandardCode

      public void setDesignStandardCode(String designStandardCode)
      Set design standard code.
      Parameters:
      designStandardCode - design standard code
    • getRequiredBurstPressure

      public double getRequiredBurstPressure()
      Get required burst pressure.
      Returns:
      burst pressure in bar
    • getRequiredTensileCapacity

      public double getRequiredTensileCapacity()
      Get required tensile capacity.
      Returns:
      tensile capacity in kN
    • getCalculatedMBR

      public double getCalculatedMBR()
      Get calculated MBR.
      Returns:
      MBR in meters