Class SubseaCostEstimator

java.lang.Object
neqsim.process.mechanicaldesign.subsea.SubseaCostEstimator

public class SubseaCostEstimator extends Object
Cost estimation calculator for subsea SURF equipment.

Provides cost estimation capabilities for subsea equipment including:

  • Equipment procurement costs
  • Material costs
  • Fabrication costs
  • Installation costs (vessel, labor, ROV)
  • Engineering and project management
  • Contingency and risk allowances
Version:
1.0
Author:
ESOL
  • Field Details

    • equipmentCost

      private double equipmentCost
      Equipment/material procurement cost.
    • fabricationCost

      private double fabricationCost
      Fabrication cost.
    • installationCost

      private double installationCost
      Installation cost.
    • vesselCost

      private double vesselCost
      Vessel cost.
    • engineeringCost

      private double engineeringCost
      Engineering cost.
    • projectManagementCost

      private double projectManagementCost
      Project management cost.
    • contingency

      private double contingency
      Contingency allowance.
    • totalCost

      private double totalCost
      Total project cost.
    • engineeringManhours

      private double engineeringManhours
      Engineering manhours.
    • fabricationManhours

      private double fabricationManhours
      Fabrication manhours.
    • installationManhours

      private double installationManhours
      Installation manhours.
    • totalManhours

      private double totalManhours
      Total manhours.
    • vesselDays

      private double vesselDays
      Vessel days required.
    • rovHours

      private double rovHours
      ROV hours required.
    • divingHours

      private double divingHours
      Diving hours required (if applicable).
    • region

      Region for cost adjustment.
    • currency

      private SubseaCostEstimator.Currency currency
      Currency for reporting.
    • currencyRate

      private double currencyRate
      Currency conversion rate to USD.
    • engineeringRate

      private double engineeringRate
      Engineering rate per hour USD.
    • fabricationRate

      private double fabricationRate
      Fabrication rate per hour USD.
    • installationRate

      private double installationRate
      Installation crew rate per hour USD.
    • vesselDayRate

      private double vesselDayRate
      Vessel day rate USD.
    • rovDayRate

      private double rovDayRate
      ROV spread day rate USD.
    • engineeringPct

      private double engineeringPct
      Engineering percentage of equipment cost.
    • projectMgmtPct

      private double projectMgmtPct
      Project management percentage.
    • contingencyPct

      private double contingencyPct
      Contingency percentage.
  • Constructor Details

    • SubseaCostEstimator

      public SubseaCostEstimator()
      Default constructor.
    • SubseaCostEstimator

      public SubseaCostEstimator(SubseaCostEstimator.Region region)
      Constructor with region.
      Parameters:
      region - cost region
  • Method Details

    • applyRegionFactor

      private void applyRegionFactor()
      Apply region cost factor.
    • calculatePLETCost

      public void calculatePLETCost(double dryWeightTonnes, double hubSizeInches, double waterDepthM, boolean hasIsolationValve, boolean hasPiggingFacility)
      Calculate PLET cost estimate.
      Parameters:
      dryWeightTonnes - dry weight in tonnes
      hubSizeInches - hub size in inches
      waterDepthM - water depth in meters
      hasIsolationValve - has isolation valve
      hasPiggingFacility - has pigging facilities
    • calculateTreeCost

      public void calculateTreeCost(double pressureRatingPsi, double boreSizeInches, double waterDepthM, boolean isHorizontal, boolean isDualBore)
      Calculate Subsea Tree cost estimate.
      Parameters:
      pressureRatingPsi - pressure rating in psi
      boreSizeInches - bore size in inches
      waterDepthM - water depth in meters
      isHorizontal - is horizontal tree
      isDualBore - is dual bore tree
    • calculateManifoldCost

      public void calculateManifoldCost(int numberOfSlots, double dryWeightTonnes, double waterDepthM, boolean hasTestHeader)
      Calculate Subsea Manifold cost estimate.
      Parameters:
      numberOfSlots - number of well slots
      dryWeightTonnes - dry weight in tonnes
      waterDepthM - water depth in meters
      hasTestHeader - has test header
    • calculateJumperCost

      public void calculateJumperCost(double lengthM, double diameterInches, boolean isRigid, double waterDepthM)
      Calculate Subsea Jumper cost estimate.
      Parameters:
      lengthM - length in meters
      diameterInches - diameter in inches
      isRigid - is rigid jumper
      waterDepthM - water depth in meters
    • calculateUmbilicalCost

      public void calculateUmbilicalCost(double lengthKm, int numberOfHydraulicLines, int numberOfChemicalLines, int numberOfElectricalCables, double waterDepthM, boolean isDynamic)
      Calculate Umbilical cost estimate.
      Parameters:
      lengthKm - length in kilometers
      numberOfHydraulicLines - number of hydraulic lines
      numberOfChemicalLines - number of chemical lines
      numberOfElectricalCables - number of electrical cables
      waterDepthM - water depth in meters
      isDynamic - is dynamic section
    • calculateFlexiblePipeCost

      public void calculateFlexiblePipeCost(double lengthM, double innerDiameterInches, double waterDepthM, boolean isDynamic, boolean hasBuoyancy)
      Calculate Flexible Pipe cost estimate.
      Parameters:
      lengthM - length in meters
      innerDiameterInches - inner diameter in inches
      waterDepthM - water depth in meters
      isDynamic - is dynamic riser
      hasBuoyancy - has buoyancy modules
    • calculateBoosterCost

      public void calculateBoosterCost(double powerMW, boolean isCompressor, double waterDepthM, boolean hasRedundancy)
      Calculate Subsea Booster cost estimate.
      Parameters:
      powerMW - power in MW
      isCompressor - is compressor (vs pump)
      waterDepthM - water depth in meters
      hasRedundancy - has redundant motor
    • calculateSubseaInstallation

      private void calculateSubseaInstallation(double weightTonnes, double waterDepthM, boolean requiresPrecision)
      Calculate generic subsea installation cost.
      Parameters:
      weightTonnes - equipment weight in tonnes
      waterDepthM - water depth in meters
      requiresPrecision - requires precision landing
    • calculateTotals

      private void calculateTotals()
      Calculate total costs.
    • getCostBreakdown

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

      public List<Map<String,Object>> generateBillOfMaterials(String equipmentType, Map<String,Object> details)
      Generate bill of materials.
      Parameters:
      equipmentType - equipment type name
      details - equipment details
      Returns:
      list of BOM items
    • toJson

      public String toJson()
      Get cost as JSON string.
      Returns:
      JSON string
    • getEquipmentCost

      public double getEquipmentCost()
      Get equipment cost.
      Returns:
      equipment cost in USD
    • getFabricationCost

      public double getFabricationCost()
      Get fabrication cost.
      Returns:
      fabrication cost in USD
    • getInstallationCost

      public double getInstallationCost()
      Get installation cost.
      Returns:
      installation cost in USD
    • getTotalCost

      public double getTotalCost()
      Get total cost.
      Returns:
      total cost in USD
    • getVesselDays

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

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

      public SubseaCostEstimator.Region getRegion()
      Get region.
      Returns:
      region
    • setRegion

      public void setRegion(SubseaCostEstimator.Region region)
      Set region.
      Parameters:
      region - region
    • setContingencyPct

      public void setContingencyPct(double contingencyPct)
      Set contingency percentage.
      Parameters:
      contingencyPct - contingency percentage (0.0 - 1.0)
    • getCurrency

      public SubseaCostEstimator.Currency getCurrency()
      Get currency.
      Returns:
      currency
    • setCurrency

      public void setCurrency(SubseaCostEstimator.Currency currency)
      Set currency.
      Parameters:
      currency - currency
    • generateBOM

      public List<Map<String,Object>> generateBOM(String equipmentType, double weightTonnes, double waterDepth)
      Generate bill of materials for subsea equipment.
      Parameters:
      equipmentType - type of equipment
      weightTonnes - equipment weight in tonnes
      waterDepth - water depth in meters
      Returns:
      list of BOM items