Class DecommissioningEstimator

java.lang.Object
neqsim.process.fielddevelopment.evaluation.DecommissioningEstimator
All Implemented Interfaces:
Serializable

public class DecommissioningEstimator extends Object implements Serializable
Decommissioning cost estimation for offshore oil and gas facilities.

Provides order-of-magnitude cost estimates for late-life planning and abandonment liability calculations. Based on Norwegian Continental Shelf (NCS) experience and industry benchmarks.

Cost Categories

  • Well P&A - Plug and abandon wells
  • Topside removal - Platform topside structures
  • Substructure removal - Jackets, GBS, floaters
  • Pipeline decommissioning - Pipelines and risers
  • Site remediation - Seabed clearing

Facility Types

  • Fixed platform - Steel jacket or GBS
  • Floating production - FPSO, semi-sub, TLP, spar
  • Subsea tieback - Subsea wells tied to host

Example Usage


DecommissioningEstimator estimator =
    new DecommissioningEstimator().setFacilityType(FacilityType.FIXED_JACKET).setWaterDepth(120)
        .setTopsideWeight(15000).setNumberOfWells(12).setPipelineLength(45);

double totalCost = estimator.getTotalCostMUSD();
System.out.println("Decom cost: $" + totalCost + "M");

Version:
1.0
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • facilityType

      Facility type.
    • waterDepthM

      private double waterDepthM
      Water depth in meters.
    • topsideWeightTonnes

      private double topsideWeightTonnes
      Topside weight in tonnes.
    • substructureWeightTonnes

      private double substructureWeightTonnes
      Jacket/substructure weight in tonnes.
    • numberOfWells

      private int numberOfWells
      Number of wells to P&A.
    • averageWellDepthM

      private double averageWellDepthM
      Average well depth in meters.
    • pipelineLengthKm

      private double pipelineLengthKm
      Pipeline length in km.
    • pipelineDiameterInch

      private double pipelineDiameterInch
      Pipeline diameter in inches.
    • numberOfRisers

      private int numberOfRisers
      Number of risers.
    • numberOfSubseaStructures

      private int numberOfSubseaStructures
      Subsea manifolds/templates.
    • WELL_PA_COST_SHALLOW

      private static final double WELL_PA_COST_SHALLOW
      Well P&A cost per well (shallow, simple).
      See Also:
    • WELL_PA_COST_MEDIUM

      private static final double WELL_PA_COST_MEDIUM
      Well P&A cost per well (medium depth).
      See Also:
    • WELL_PA_COST_DEEP

      private static final double WELL_PA_COST_DEEP
      Well P&A cost per well (deep, complex).
      See Also:
    • TOPSIDE_REMOVAL_PER_TONNE

      private static final double TOPSIDE_REMOVAL_PER_TONNE
      Topside removal cost per tonne.
      See Also:
    • JACKET_REMOVAL_SHALLOW

      private static final double JACKET_REMOVAL_SHALLOW
      Jacket removal base cost (shallow).
      See Also:
    • JACKET_REMOVAL_DEEP

      private static final double JACKET_REMOVAL_DEEP
      Jacket removal base cost (deep).
      See Also:
    • PIPELINE_DECOM_LIP_PER_KM

      private static final double PIPELINE_DECOM_LIP_PER_KM
      Pipeline decom cost per km (leave in place).
      See Also:
    • PIPELINE_DECOM_REMOVE_PER_KM

      private static final double PIPELINE_DECOM_REMOVE_PER_KM
      Pipeline decom cost per km (full removal).
      See Also:
    • RISER_REMOVAL_COST

      private static final double RISER_REMOVAL_COST
      Riser removal cost per riser.
      See Also:
    • SITE_REMEDIATION_BASE

      private static final double SITE_REMEDIATION_BASE
      Site remediation base cost.
      See Also:
    • SUBSEA_STRUCTURE_REMOVAL

      private static final double SUBSEA_STRUCTURE_REMOVAL
      Subsea structure removal cost each.
      See Also:
  • Constructor Details

    • DecommissioningEstimator

      public DecommissioningEstimator()
  • Method Details

    • setFacilityType

      Sets facility type.
      Parameters:
      type - facility type
      Returns:
      this for chaining
    • setWaterDepth

      public DecommissioningEstimator setWaterDepth(double depthM)
      Sets water depth.
      Parameters:
      depthM - water depth in meters
      Returns:
      this for chaining
    • setTopsideWeight

      public DecommissioningEstimator setTopsideWeight(double tonnes)
      Sets topside weight.
      Parameters:
      tonnes - topside weight in tonnes
      Returns:
      this for chaining
    • setSubstructureWeight

      public DecommissioningEstimator setSubstructureWeight(double tonnes)
      Sets substructure weight.
      Parameters:
      tonnes - jacket/substructure weight in tonnes
      Returns:
      this for chaining
    • setNumberOfWells

      public DecommissioningEstimator setNumberOfWells(int wells)
      Sets number of wells.
      Parameters:
      wells - number of wells
      Returns:
      this for chaining
    • setAverageWellDepth

      public DecommissioningEstimator setAverageWellDepth(double depthM)
      Sets average well depth.
      Parameters:
      depthM - well depth in meters
      Returns:
      this for chaining
    • setPipelineLength

      public DecommissioningEstimator setPipelineLength(double lengthKm)
      Sets pipeline length.
      Parameters:
      lengthKm - pipeline length in km
      Returns:
      this for chaining
    • setPipelineDiameter

      public DecommissioningEstimator setPipelineDiameter(double diameterInch)
      Sets pipeline diameter.
      Parameters:
      diameterInch - pipeline diameter in inches
      Returns:
      this for chaining
    • setNumberOfRisers

      public DecommissioningEstimator setNumberOfRisers(int risers)
      Sets number of risers.
      Parameters:
      risers - number of risers
      Returns:
      this for chaining
    • setNumberOfSubseaStructures

      public DecommissioningEstimator setNumberOfSubseaStructures(int structures)
      Sets number of subsea structures.
      Parameters:
      structures - number of manifolds/templates
      Returns:
      this for chaining
    • getWellPACostMUSD

      public double getWellPACostMUSD()
      Calculates total well P&A cost.
      Returns:
      cost in MUSD
    • getTopsideRemovalCostMUSD

      public double getTopsideRemovalCostMUSD()
      Calculates topside removal cost.
      Returns:
      cost in MUSD
    • getSubstructureRemovalCostMUSD

      public double getSubstructureRemovalCostMUSD()
      Calculates substructure removal cost.
      Returns:
      cost in MUSD
    • getPipelineDecomCostMUSD

      public double getPipelineDecomCostMUSD(DecommissioningEstimator.PipelineStrategy strategy)
      Calculates pipeline decommissioning cost.
      Parameters:
      strategy - decommissioning strategy
      Returns:
      cost in MUSD
    • getPipelineDecomCostMUSD

      public double getPipelineDecomCostMUSD()
      Calculates pipeline decommissioning cost with leave-in-place strategy.
      Returns:
      cost in MUSD
    • getSiteRemediationCostMUSD

      public double getSiteRemediationCostMUSD()
      Calculates site remediation cost.
      Returns:
      cost in MUSD
    • getTotalCostMUSD

      public double getTotalCostMUSD()
      Gets total decommissioning cost.
      Returns:
      total cost in MUSD
    • getTotalCostMUSD

      public double getTotalCostMUSD(DecommissioningEstimator.PipelineStrategy pipelineStrategy)
      Gets total decommissioning cost with specified pipeline strategy.
      Parameters:
      pipelineStrategy - pipeline decommissioning approach
      Returns:
      total cost in MUSD
    • getCostBreakdown

      public List<DecommissioningEstimator.CostItem> getCostBreakdown()
      Gets cost breakdown.
      Returns:
      list of cost items
    • getEstimatedDurationMonths

      public int getEstimatedDurationMonths()
      Estimates decommissioning duration.
      Returns:
      estimated duration in months
    • generateReport

      public String generateReport()
      Generates a decommissioning cost report.
      Returns:
      markdown formatted report