Class TiebackOption
java.lang.Object
neqsim.process.fielddevelopment.tieback.TiebackOption
- All Implemented Interfaces:
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 Summary
FieldsModifier and TypeFieldDescriptionprivate doubleEstimated arrival pressure at host in bara.private doubleEstimated arrival temperature at host in Celsius.private doubleBreakeven price (oil: USD/bbl, gas: USD/Sm3).private FlowAssuranceResultCorrosion screening result.private Stringprivate doubleTieback distance in kilometers.private doubleDrilling and completion CAPEX.private booleanWhether the option is technically feasible.private doubleExpected field life in years.private StringFlow assurance notes/recommendations.private doubleHost modifications CAPEX.private Stringprivate doubleHydrate subcooling margin in Celsius.private FlowAssuranceResultHydrate screening result.private StringReason for infeasibility (if not feasible).private doubleInternal Rate of Return (0-1).private doubleMaximum production rate constrained by host capacity (gas: MSm3/d, oil: bbl/d).private doubleMaximum water depth along route in meters.private doubleNet Present Value in MUSD.private Stringprivate doublePayback period in years.private doublePipeline CAPEX.private doublePipeline diameter in inches.private StringProduction rate unit.private doubleTotal recoverable reserves.private StringReserves unit.private static final longprivate doubleSubsea equipment CAPEX (trees, manifolds, controls).private doubleTotal CAPEX.private doubleUmbilical CAPEX.private doubleWAT margin in Celsius.private FlowAssuranceResultWax screening result.private intNumber of subsea wells. -
Constructor Summary
ConstructorsConstructorDescriptionTiebackOption(String discoveryName, String hostName) Creates a new tieback option. -
Method Summary
Modifier and TypeMethodDescriptiondoubleCalculates total CAPEX from breakdown.intcompareTo(TiebackOption other) Compares by NPV (descending - higher NPV is better).doubleestimatePipelineCapex(double costPerKmMusd) Estimates pipeline CAPEX based on distance and diameter.doubleGets the arrival pressure.doubleGets the arrival temperature.doubleGets the breakeven price.doubleGets CAPEX per km of tieback.doubleGets CAPEX per unit of reserves.Gets the corrosion result.Gets the discovery name.doubleGets the distance.doubleGets the drilling CAPEX.doubleGets the field life.Gets the flow assurance notes.doubleGets the host modification CAPEX.Gets the host name.doubleGets the hydrate margin.Gets the hydrate result.Gets the infeasibility reason.doublegetIrr()Gets the IRR.doubleGets the maximum production rate.doubleGets the maximum water depth.doubleGets the NPV.Gets the option ID.Gets the overall flow assurance status.doubleGets the payback period.doubleGets the pipeline CAPEX.doubleGets the pipeline diameter.Gets the rate unit.doubleGets the recoverable reserves.Gets the reserves unit.doubleGets the subsea CAPEX.Generates a summary string.doubleGets the total CAPEX.doubleGets the umbilical CAPEX.doubleGets the WAT margin.Gets the wax result.intGets the well count.booleanChecks if the option has any critical flow assurance issues.booleanChecks if the option is feasible.voidsetArrivalPressureBara(double arrivalPressureBara) Sets the arrival pressure.voidsetArrivalTemperatureC(double arrivalTemperatureC) Sets the arrival temperature.voidsetBreakevenPrice(double breakevenPrice) Sets the breakeven price.voidsetCorrosionResult(FlowAssuranceResult corrosionResult) Sets the corrosion result.voidsetDistanceKm(double distanceKm) Sets the distance.voidsetDrillingCapexMusd(double drillingCapexMusd) Sets the drilling CAPEX.voidsetFeasible(boolean feasible) Sets the feasibility flag.voidsetFieldLifeYears(double fieldLifeYears) Sets the field life.voidsetFlowAssuranceNotes(String flowAssuranceNotes) Sets the flow assurance notes.voidsetHostModificationCapexMusd(double hostModificationCapexMusd) Sets the host modification CAPEX.voidsetHydrateMarginC(double hydrateMarginC) Sets the hydrate margin.voidsetHydrateResult(FlowAssuranceResult hydrateResult) Sets the hydrate result.voidsetInfeasibilityReason(String infeasibilityReason) Sets the infeasibility reason.voidsetIrr(double irr) Sets the IRR.voidsetMaxProductionRate(double maxProductionRate) Sets the maximum production rate.voidsetMaxWaterDepthM(double maxWaterDepthM) Sets the maximum water depth.voidsetNpvMusd(double npvMusd) Sets the NPV.voidsetPaybackYears(double paybackYears) Sets the payback period.voidsetPipelineCapexMusd(double pipelineCapexMusd) Sets the pipeline CAPEX.voidsetPipelineDiameterInches(double pipelineDiameterInches) Sets the pipeline diameter.voidsetRateUnit(String rateUnit) Sets the rate unit.voidsetRecoverableReserves(double recoverableReserves) Sets the recoverable reserves.voidsetReservesUnit(String reservesUnit) Sets the reserves unit.voidsetSubseaCapexMusd(double subseaCapexMusd) Sets the subsea CAPEX.voidsetTotalCapexMusd(double totalCapexMusd) Sets the total CAPEX.voidsetUmbilicalCapexMusd(double umbilicalCapexMusd) Sets the umbilical CAPEX.voidsetWatMarginC(double watMarginC) Sets the WAT margin.voidsetWaxResult(FlowAssuranceResult waxResult) Sets the wax result.voidsetWellCount(int wellCount) Sets the well count.toString()
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
discoveryName
-
hostName
-
optionId
-
distanceKm
private double distanceKmTieback distance in kilometers. -
pipelineDiameterInches
private double pipelineDiameterInchesPipeline diameter in inches. -
maxWaterDepthM
private double maxWaterDepthMMaximum water depth along route in meters. -
arrivalPressureBara
private double arrivalPressureBaraEstimated arrival pressure at host in bara. -
arrivalTemperatureC
private double arrivalTemperatureCEstimated arrival temperature at host in Celsius. -
wellCount
private int wellCountNumber of subsea wells. -
maxProductionRate
private double maxProductionRateMaximum production rate constrained by host capacity (gas: MSm3/d, oil: bbl/d). -
rateUnit
Production rate unit. -
recoverableReserves
private double recoverableReservesTotal recoverable reserves. -
reservesUnit
Reserves unit. -
fieldLifeYears
private double fieldLifeYearsExpected field life in years. -
subseaCapexMusd
private double subseaCapexMusdSubsea equipment CAPEX (trees, manifolds, controls). -
pipelineCapexMusd
private double pipelineCapexMusdPipeline CAPEX. -
umbilicalCapexMusd
private double umbilicalCapexMusdUmbilical CAPEX. -
drillingCapexMusd
private double drillingCapexMusdDrilling and completion CAPEX. -
hostModificationCapexMusd
private double hostModificationCapexMusdHost modifications CAPEX. -
totalCapexMusd
private double totalCapexMusdTotal CAPEX. -
npvMusd
private double npvMusdNet Present Value in MUSD. -
irr
private double irrInternal Rate of Return (0-1). -
paybackYears
private double paybackYearsPayback period in years. -
breakevenPrice
private double breakevenPriceBreakeven price (oil: USD/bbl, gas: USD/Sm3). -
hydrateResult
Hydrate screening result. -
waxResult
Wax screening result. -
corrosionResult
Corrosion screening result. -
hydrateMarginC
private double hydrateMarginCHydrate subcooling margin in Celsius. -
watMarginC
private double watMarginCWAT margin in Celsius. -
flowAssuranceNotes
Flow assurance notes/recommendations. -
feasible
private boolean feasibleWhether the option is technically feasible. -
infeasibilityReason
Reason for infeasibility (if not feasible).
-
-
Constructor Details
-
TiebackOption
-
-
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
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
Compares by NPV (descending - higher NPV is better).- Specified by:
compareToin interfaceComparable<TiebackOption>- Parameters:
other- other option to compare- Returns:
- comparison result
-
getSummary
-
toString
-
getDiscoveryName
-
getHostName
-
getOptionId
-
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
-
setRateUnit
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
-
setReservesUnit
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
Gets the hydrate result.- Returns:
- hydrate screening result
-
setHydrateResult
Sets the hydrate result.- Parameters:
hydrateResult- hydrate screening result
-
getWaxResult
-
setWaxResult
Sets the wax result.- Parameters:
waxResult- wax screening result
-
getCorrosionResult
Gets the corrosion result.- Returns:
- corrosion screening result
-
setCorrosionResult
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
-
setFlowAssuranceNotes
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
Gets the infeasibility reason.- Returns:
- reason string or null
-
setInfeasibilityReason
Sets the infeasibility reason.- Parameters:
infeasibilityReason- reason string
-