Class TiebackOption

java.lang.Object
neqsim.process.fielddevelopment.tieback.TiebackOption
All Implemented Interfaces:
Serializable, Comparable<TiebackOption>

public class TiebackOption extends Object implements Serializable, Comparable<TiebackOption>
Represents a specific tie-back option evaluated by the TiebackAnalyzer.

A TiebackOption encapsulates all the technical and economic parameters for connecting a satellite field to a host facility. It includes:

  • Technical parameters: Distance, pipeline size, flow assurance requirements
  • Economic parameters: CAPEX breakdown, NPV, payback
  • Constraints: Host capacity limits, pressure requirements
  • Flow assurance: Hydrate, wax, and corrosion screening results
Version:
1.0
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • discoveryName

      private String discoveryName
    • hostName

      private String hostName
    • optionId

      private String optionId
    • distanceKm

      private double distanceKm
      Tieback distance in kilometers.
    • pipelineDiameterInches

      private double pipelineDiameterInches
      Pipeline diameter in inches.
    • maxWaterDepthM

      private double maxWaterDepthM
      Maximum water depth along route in meters.
    • arrivalPressureBara

      private double arrivalPressureBara
      Estimated arrival pressure at host in bara.
    • arrivalTemperatureC

      private double arrivalTemperatureC
      Estimated arrival temperature at host in Celsius.
    • wellCount

      private int wellCount
      Number of subsea wells.
    • maxProductionRate

      private double maxProductionRate
      Maximum production rate constrained by host capacity (gas: MSm3/d, oil: bbl/d).
    • rateUnit

      private String rateUnit
      Production rate unit.
    • recoverableReserves

      private double recoverableReserves
      Total recoverable reserves.
    • reservesUnit

      private String reservesUnit
      Reserves unit.
    • fieldLifeYears

      private double fieldLifeYears
      Expected field life in years.
    • subseaCapexMusd

      private double subseaCapexMusd
      Subsea equipment CAPEX (trees, manifolds, controls).
    • pipelineCapexMusd

      private double pipelineCapexMusd
      Pipeline CAPEX.
    • umbilicalCapexMusd

      private double umbilicalCapexMusd
      Umbilical CAPEX.
    • drillingCapexMusd

      private double drillingCapexMusd
      Drilling and completion CAPEX.
    • hostModificationCapexMusd

      private double hostModificationCapexMusd
      Host modifications CAPEX.
    • totalCapexMusd

      private double totalCapexMusd
      Total CAPEX.
    • npvMusd

      private double npvMusd
      Net Present Value in MUSD.
    • irr

      private double irr
      Internal Rate of Return (0-1).
    • paybackYears

      private double paybackYears
      Payback period in years.
    • breakevenPrice

      private double breakevenPrice
      Breakeven price (oil: USD/bbl, gas: USD/Sm3).
    • hydrateResult

      private FlowAssuranceResult hydrateResult
      Hydrate screening result.
    • waxResult

      private FlowAssuranceResult waxResult
      Wax screening result.
    • corrosionResult

      private FlowAssuranceResult corrosionResult
      Corrosion screening result.
    • hydrateMarginC

      private double hydrateMarginC
      Hydrate subcooling margin in Celsius.
    • watMarginC

      private double watMarginC
      WAT margin in Celsius.
    • flowAssuranceNotes

      private String flowAssuranceNotes
      Flow assurance notes/recommendations.
    • feasible

      private boolean feasible
      Whether the option is technically feasible.
    • infeasibilityReason

      private String infeasibilityReason
      Reason for infeasibility (if not feasible).
  • Constructor Details

    • TiebackOption

      public TiebackOption(String discoveryName, String hostName)
      Creates a new tieback option.
      Parameters:
      discoveryName - name of the satellite field
      hostName - name of the host facility
  • Method Details

    • calculateTotalCapex

      public double calculateTotalCapex()
      Calculates total CAPEX from breakdown.
      Returns:
      total CAPEX in MUSD
    • estimatePipelineCapex

      public double estimatePipelineCapex(double costPerKmMusd)
      Estimates pipeline CAPEX based on distance and diameter.
      Parameters:
      costPerKmMusd - cost per km in MUSD
      Returns:
      pipeline CAPEX in MUSD
    • hasFlowAssuranceIssues

      public boolean hasFlowAssuranceIssues()
      Checks if the option has any critical flow assurance issues.
      Returns:
      true if any flow assurance category fails
    • getOverallFlowAssuranceResult

      public FlowAssuranceResult getOverallFlowAssuranceResult()
      Gets the overall flow assurance status.
      Returns:
      worst flow assurance result across all categories
    • getCapexPerKm

      public double getCapexPerKm()
      Gets CAPEX per km of tieback.
      Returns:
      CAPEX intensity in MUSD/km
    • getCapexPerReserveUnit

      public double getCapexPerReserveUnit()
      Gets CAPEX per unit of reserves.
      Returns:
      CAPEX intensity in MUSD per reserve unit
    • compareTo

      public int compareTo(TiebackOption other)
      Compares by NPV (descending - higher NPV is better).
      Specified by:
      compareTo in interface Comparable<TiebackOption>
      Parameters:
      other - other option to compare
      Returns:
      comparison result
    • getSummary

      public String getSummary()
      Generates a summary string.
      Returns:
      formatted summary
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getDiscoveryName

      public String getDiscoveryName()
      Gets the discovery name.
      Returns:
      discovery name
    • getHostName

      public String getHostName()
      Gets the host name.
      Returns:
      host name
    • getOptionId

      public String getOptionId()
      Gets the option ID.
      Returns:
      option ID
    • getDistanceKm

      public double getDistanceKm()
      Gets the distance.
      Returns:
      distance in km
    • setDistanceKm

      public void setDistanceKm(double distanceKm)
      Sets the distance.
      Parameters:
      distanceKm - distance in km
    • getPipelineDiameterInches

      public double getPipelineDiameterInches()
      Gets the pipeline diameter.
      Returns:
      pipeline diameter in inches
    • setPipelineDiameterInches

      public void setPipelineDiameterInches(double pipelineDiameterInches)
      Sets the pipeline diameter.
      Parameters:
      pipelineDiameterInches - pipeline diameter in inches
    • getMaxWaterDepthM

      public double getMaxWaterDepthM()
      Gets the maximum water depth.
      Returns:
      water depth in meters
    • setMaxWaterDepthM

      public void setMaxWaterDepthM(double maxWaterDepthM)
      Sets the maximum water depth.
      Parameters:
      maxWaterDepthM - water depth in meters
    • getArrivalPressureBara

      public double getArrivalPressureBara()
      Gets the arrival pressure.
      Returns:
      arrival pressure in bara
    • setArrivalPressureBara

      public void setArrivalPressureBara(double arrivalPressureBara)
      Sets the arrival pressure.
      Parameters:
      arrivalPressureBara - arrival pressure in bara
    • getArrivalTemperatureC

      public double getArrivalTemperatureC()
      Gets the arrival temperature.
      Returns:
      arrival temperature in Celsius
    • setArrivalTemperatureC

      public void setArrivalTemperatureC(double arrivalTemperatureC)
      Sets the arrival temperature.
      Parameters:
      arrivalTemperatureC - arrival temperature in Celsius
    • getWellCount

      public int getWellCount()
      Gets the well count.
      Returns:
      well count
    • setWellCount

      public void setWellCount(int wellCount)
      Sets the well count.
      Parameters:
      wellCount - well count
    • getMaxProductionRate

      public double getMaxProductionRate()
      Gets the maximum production rate.
      Returns:
      production rate
    • setMaxProductionRate

      public void setMaxProductionRate(double maxProductionRate)
      Sets the maximum production rate.
      Parameters:
      maxProductionRate - production rate
    • getRateUnit

      public String getRateUnit()
      Gets the rate unit.
      Returns:
      rate unit string
    • setRateUnit

      public void setRateUnit(String rateUnit)
      Sets the rate unit.
      Parameters:
      rateUnit - rate unit string
    • getRecoverableReserves

      public double getRecoverableReserves()
      Gets the recoverable reserves.
      Returns:
      recoverable reserves
    • setRecoverableReserves

      public void setRecoverableReserves(double recoverableReserves)
      Sets the recoverable reserves.
      Parameters:
      recoverableReserves - reserves amount
    • getReservesUnit

      public String getReservesUnit()
      Gets the reserves unit.
      Returns:
      reserves unit string
    • setReservesUnit

      public void setReservesUnit(String reservesUnit)
      Sets the reserves unit.
      Parameters:
      reservesUnit - reserves unit string
    • getFieldLifeYears

      public double getFieldLifeYears()
      Gets the field life.
      Returns:
      field life in years
    • setFieldLifeYears

      public void setFieldLifeYears(double fieldLifeYears)
      Sets the field life.
      Parameters:
      fieldLifeYears - field life in years
    • getSubseaCapexMusd

      public double getSubseaCapexMusd()
      Gets the subsea CAPEX.
      Returns:
      subsea CAPEX in MUSD
    • setSubseaCapexMusd

      public void setSubseaCapexMusd(double subseaCapexMusd)
      Sets the subsea CAPEX.
      Parameters:
      subseaCapexMusd - subsea CAPEX in MUSD
    • getPipelineCapexMusd

      public double getPipelineCapexMusd()
      Gets the pipeline CAPEX.
      Returns:
      pipeline CAPEX in MUSD
    • setPipelineCapexMusd

      public void setPipelineCapexMusd(double pipelineCapexMusd)
      Sets the pipeline CAPEX.
      Parameters:
      pipelineCapexMusd - pipeline CAPEX in MUSD
    • getUmbilicalCapexMusd

      public double getUmbilicalCapexMusd()
      Gets the umbilical CAPEX.
      Returns:
      umbilical CAPEX in MUSD
    • setUmbilicalCapexMusd

      public void setUmbilicalCapexMusd(double umbilicalCapexMusd)
      Sets the umbilical CAPEX.
      Parameters:
      umbilicalCapexMusd - umbilical CAPEX in MUSD
    • getDrillingCapexMusd

      public double getDrillingCapexMusd()
      Gets the drilling CAPEX.
      Returns:
      drilling CAPEX in MUSD
    • setDrillingCapexMusd

      public void setDrillingCapexMusd(double drillingCapexMusd)
      Sets the drilling CAPEX.
      Parameters:
      drillingCapexMusd - drilling CAPEX in MUSD
    • getHostModificationCapexMusd

      public double getHostModificationCapexMusd()
      Gets the host modification CAPEX.
      Returns:
      host modification CAPEX in MUSD
    • setHostModificationCapexMusd

      public void setHostModificationCapexMusd(double hostModificationCapexMusd)
      Sets the host modification CAPEX.
      Parameters:
      hostModificationCapexMusd - host modification CAPEX in MUSD
    • getTotalCapexMusd

      public double getTotalCapexMusd()
      Gets the total CAPEX.
      Returns:
      total CAPEX in MUSD
    • setTotalCapexMusd

      public void setTotalCapexMusd(double totalCapexMusd)
      Sets the total CAPEX.
      Parameters:
      totalCapexMusd - total CAPEX in MUSD
    • getNpvMusd

      public double getNpvMusd()
      Gets the NPV.
      Returns:
      NPV in MUSD
    • setNpvMusd

      public void setNpvMusd(double npvMusd)
      Sets the NPV.
      Parameters:
      npvMusd - NPV in MUSD
    • getIrr

      public double getIrr()
      Gets the IRR.
      Returns:
      IRR (0-1)
    • setIrr

      public void setIrr(double irr)
      Sets the IRR.
      Parameters:
      irr - IRR (0-1)
    • getPaybackYears

      public double getPaybackYears()
      Gets the payback period.
      Returns:
      payback in years
    • setPaybackYears

      public void setPaybackYears(double paybackYears)
      Sets the payback period.
      Parameters:
      paybackYears - payback in years
    • getBreakevenPrice

      public double getBreakevenPrice()
      Gets the breakeven price.
      Returns:
      breakeven price
    • setBreakevenPrice

      public void setBreakevenPrice(double breakevenPrice)
      Sets the breakeven price.
      Parameters:
      breakevenPrice - breakeven price
    • getHydrateResult

      public FlowAssuranceResult getHydrateResult()
      Gets the hydrate result.
      Returns:
      hydrate screening result
    • setHydrateResult

      public void setHydrateResult(FlowAssuranceResult hydrateResult)
      Sets the hydrate result.
      Parameters:
      hydrateResult - hydrate screening result
    • getWaxResult

      public FlowAssuranceResult getWaxResult()
      Gets the wax result.
      Returns:
      wax screening result
    • setWaxResult

      public void setWaxResult(FlowAssuranceResult waxResult)
      Sets the wax result.
      Parameters:
      waxResult - wax screening result
    • getCorrosionResult

      public FlowAssuranceResult getCorrosionResult()
      Gets the corrosion result.
      Returns:
      corrosion screening result
    • setCorrosionResult

      public void setCorrosionResult(FlowAssuranceResult corrosionResult)
      Sets the corrosion result.
      Parameters:
      corrosionResult - corrosion screening result
    • getHydrateMarginC

      public double getHydrateMarginC()
      Gets the hydrate margin.
      Returns:
      hydrate margin in Celsius
    • setHydrateMarginC

      public void setHydrateMarginC(double hydrateMarginC)
      Sets the hydrate margin.
      Parameters:
      hydrateMarginC - hydrate margin in Celsius
    • getWatMarginC

      public double getWatMarginC()
      Gets the WAT margin.
      Returns:
      WAT margin in Celsius
    • setWatMarginC

      public void setWatMarginC(double watMarginC)
      Sets the WAT margin.
      Parameters:
      watMarginC - WAT margin in Celsius
    • getFlowAssuranceNotes

      public String getFlowAssuranceNotes()
      Gets the flow assurance notes.
      Returns:
      flow assurance notes
    • setFlowAssuranceNotes

      public void setFlowAssuranceNotes(String flowAssuranceNotes)
      Sets the flow assurance notes.
      Parameters:
      flowAssuranceNotes - notes string
    • isFeasible

      public boolean isFeasible()
      Checks if the option is feasible.
      Returns:
      true if feasible
    • setFeasible

      public void setFeasible(boolean feasible)
      Sets the feasibility flag.
      Parameters:
      feasible - true if feasible
    • getInfeasibilityReason

      public String getInfeasibilityReason()
      Gets the infeasibility reason.
      Returns:
      reason string or null
    • setInfeasibilityReason

      public void setInfeasibilityReason(String infeasibilityReason)
      Sets the infeasibility reason.
      Parameters:
      infeasibilityReason - reason string