Class TiebackAnalyzer
java.lang.Object
neqsim.process.fielddevelopment.tieback.TiebackAnalyzer
- All Implemented Interfaces:
Serializable
Analyzes tie-back options for connecting satellite fields to host facilities.
The TiebackAnalyzer is the main entry point for evaluating subsea tie-back development options. For each potential host facility, it:
- Calculates distance and checks routing feasibility
- Evaluates host capacity constraints
- Performs flow assurance screening
- Estimates CAPEX breakdown
- Calculates NPV and other economics
- Ranks options by value
Cost Estimation Basis
The analyzer uses parametric cost models calibrated to Norwegian Continental Shelf benchmarks:
- Subsea tree: 25 MUSD per well
- Manifold/template: 30-50 MUSD
- Pipeline: 2-4 MUSD/km depending on diameter
- Umbilical: 1 MUSD/km
- Host modifications: 20-100 MUSD depending on scope
Example Usage
// Define discovery
FieldConcept discovery = FieldConcept.gasTieback("Marginal Gas", 25.0, 2, 1.5);
// Define potential hosts
List<HostFacility> hosts = new ArrayList<>();
hosts.add(HostFacility.builder("Platform A").location(61.5, 2.3).waterDepth(110)
.spareGasCapacity(3.0).minTieInPressure(80).build());
hosts.add(HostFacility.builder("FPSO B").location(61.8, 2.1).waterDepth(350)
.spareGasCapacity(5.0).build());
// Analyze
TiebackAnalyzer analyzer = new TiebackAnalyzer();
TiebackReport report = analyzer.analyze(discovery, hosts, 61.6, 2.5);
// Review results
System.out.println(report.getSummary());
TiebackOption best = report.getBestOption();
- Version:
- 1.0
- Author:
- ESOL
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classScreening result for quick tieback evaluation. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleDiscount rate for NPV calculations.private doubleDrilling cost per well in MUSD.private doubleDefault gas price in USD/Sm3.private doubleBase cost for host modifications in MUSD.private doubleBase cost for manifold/template in MUSD.private doubleMaximum tieback distance in km.private doubleMinimum hydrate margin for PASS in Celsius.private doubleDefault oil price in USD/bbl.private doubleOPEX as fraction of CAPEX per year.private doublePipeline cost per km in MUSD (base, adjusted for diameter).private doubleSeabed temperature for flow assurance in Celsius.private static final longprivate doubleCost per subsea tree in MUSD.private NorwegianTaxModelprivate doubleUmbilical cost per km in MUSD. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionanalyze(FieldConcept discovery, List<HostFacility> hosts) Analyzes tieback options using concept infrastructure input for location.analyze(FieldConcept discovery, List<HostFacility> hosts, double discoveryLatitude, double discoveryLongitude) Analyzes all tieback options for a discovery.private voidcalculateEconomics(TiebackOption option, boolean isGasField, int wellCount, double gasRateMSm3d, double oilRateBopd) private voidestimateCapex(TiebackOption option, int wellCount, double distanceKm, HostFacility host) private doubleestimateQuickCapex(double distanceKm, double waterDepthM) Quick CAPEX estimate for screening.private doubleestimateQuickNpv(double reservesMMboe, double capexMusd) Quick NPV estimate for screening.evaluateSingleTieback(FieldConcept discovery, HostFacility host, double discoveryLatitude, double discoveryLongitude) Evaluates a single tieback option.doubleGets the discount rate.doubleGets the gas price.doubleGets the maximum tieback distance.doubleGets the oil price.doubleGets the pipeline cost per km.doubleGets the subsea tree cost.Gets the tax model.quickScreen(double discoveryLat, double discoveryLon, double reservesMMboe, double waterDepthM, HostFacility host) Quick screening for tieback feasibility without full analysis.screenAllHosts(double discoveryLat, double discoveryLon, double reservesMMboe, double waterDepthM, List<HostFacility> hosts) Screen multiple hosts quickly and return ranked results.private voidscreenFlowAssurance(TiebackOption option, ReservoirInput reservoir, double distanceKm) voidsetDiscountRate(double discountRate) Sets the discount rate.voidsetGasPriceUsdPerSm3(double gasPriceUsdPerSm3) Sets the gas price.voidsetMaxTiebackDistanceKm(double maxTiebackDistanceKm) Sets the maximum tieback distance.voidsetOilPriceUsdPerBbl(double oilPriceUsdPerBbl) Sets the oil price.voidsetPipelineCostPerKmMusd(double pipelineCostPerKmMusd) Sets the pipeline cost per km.voidsetSubseaTreeCostMusd(double subseaTreeCostMusd) Sets the subsea tree cost.voidsetTaxModel(NorwegianTaxModel taxModel) Sets the tax model.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
subseaTreeCostMusd
private double subseaTreeCostMusdCost per subsea tree in MUSD. -
manifoldBaseCostMusd
private double manifoldBaseCostMusdBase cost for manifold/template in MUSD. -
pipelineCostPerKmMusd
private double pipelineCostPerKmMusdPipeline cost per km in MUSD (base, adjusted for diameter). -
umbilicalCostPerKmMusd
private double umbilicalCostPerKmMusdUmbilical cost per km in MUSD. -
hostModificationBaseCostMusd
private double hostModificationBaseCostMusdBase cost for host modifications in MUSD. -
drillingCostPerWellMusd
private double drillingCostPerWellMusdDrilling cost per well in MUSD. -
discountRate
private double discountRateDiscount rate for NPV calculations. -
gasPriceUsdPerSm3
private double gasPriceUsdPerSm3Default gas price in USD/Sm3. -
oilPriceUsdPerBbl
private double oilPriceUsdPerBblDefault oil price in USD/bbl. -
opexFraction
private double opexFractionOPEX as fraction of CAPEX per year. -
maxTiebackDistanceKm
private double maxTiebackDistanceKmMaximum tieback distance in km. -
minHydrateMarginC
private double minHydrateMarginCMinimum hydrate margin for PASS in Celsius. -
seabedTemperatureC
private double seabedTemperatureCSeabed temperature for flow assurance in Celsius. -
taxModel
-
-
Constructor Details
-
TiebackAnalyzer
public TiebackAnalyzer()Creates a new tieback analyzer with default parameters.
-
-
Method Details
-
analyze
public TiebackReport analyze(FieldConcept discovery, List<HostFacility> hosts, double discoveryLatitude, double discoveryLongitude) Analyzes all tieback options for a discovery.For each host facility, evaluates the technical feasibility and economic attractiveness of a tieback connection. Options are ranked by NPV, with infeasible options marked accordingly.
- Parameters:
discovery- the satellite field concepthosts- list of potential host facilitiesdiscoveryLatitude- discovery latitude in degreesdiscoveryLongitude- discovery longitude in degrees- Returns:
- comprehensive tieback report with ranked options
-
analyze
Analyzes tieback options using concept infrastructure input for location.- Parameters:
discovery- the satellite field concepthosts- list of potential host facilities- Returns:
- comprehensive tieback report
-
evaluateSingleTieback
public TiebackOption evaluateSingleTieback(FieldConcept discovery, HostFacility host, double discoveryLatitude, double discoveryLongitude) Evaluates a single tieback option.- Parameters:
discovery- the satellite field concepthost- the host facilitydiscoveryLatitude- discovery latitudediscoveryLongitude- discovery longitude- Returns:
- evaluated tieback option
-
screenFlowAssurance
-
estimateCapex
private void estimateCapex(TiebackOption option, int wellCount, double distanceKm, HostFacility host) -
calculateEconomics
private void calculateEconomics(TiebackOption option, boolean isGasField, int wellCount, double gasRateMSm3d, double oilRateBopd) -
getDiscountRate
public double getDiscountRate()Gets the discount rate.- Returns:
- discount rate (0-1)
-
setDiscountRate
public void setDiscountRate(double discountRate) Sets the discount rate.- Parameters:
discountRate- discount rate (0-1)
-
getGasPriceUsdPerSm3
public double getGasPriceUsdPerSm3()Gets the gas price.- Returns:
- gas price in USD/Sm3
-
setGasPriceUsdPerSm3
public void setGasPriceUsdPerSm3(double gasPriceUsdPerSm3) Sets the gas price.- Parameters:
gasPriceUsdPerSm3- gas price in USD/Sm3
-
getOilPriceUsdPerBbl
public double getOilPriceUsdPerBbl()Gets the oil price.- Returns:
- oil price in USD/bbl
-
setOilPriceUsdPerBbl
public void setOilPriceUsdPerBbl(double oilPriceUsdPerBbl) Sets the oil price.- Parameters:
oilPriceUsdPerBbl- oil price in USD/bbl
-
getSubseaTreeCostMusd
public double getSubseaTreeCostMusd()Gets the subsea tree cost.- Returns:
- cost in MUSD per tree
-
setSubseaTreeCostMusd
public void setSubseaTreeCostMusd(double subseaTreeCostMusd) Sets the subsea tree cost.- Parameters:
subseaTreeCostMusd- cost in MUSD per tree
-
getPipelineCostPerKmMusd
public double getPipelineCostPerKmMusd()Gets the pipeline cost per km.- Returns:
- cost in MUSD/km
-
setPipelineCostPerKmMusd
public void setPipelineCostPerKmMusd(double pipelineCostPerKmMusd) Sets the pipeline cost per km.- Parameters:
pipelineCostPerKmMusd- cost in MUSD/km
-
getMaxTiebackDistanceKm
public double getMaxTiebackDistanceKm()Gets the maximum tieback distance.- Returns:
- maximum distance in km
-
setMaxTiebackDistanceKm
public void setMaxTiebackDistanceKm(double maxTiebackDistanceKm) Sets the maximum tieback distance.- Parameters:
maxTiebackDistanceKm- maximum distance in km
-
getTaxModel
-
setTaxModel
Sets the tax model.- Parameters:
taxModel- tax model
-
quickScreen
public TiebackAnalyzer.TiebackScreeningResult quickScreen(double discoveryLat, double discoveryLon, double reservesMMboe, double waterDepthM, HostFacility host) Quick screening for tieback feasibility without full analysis.Performs rapid go/no-go screening based on key constraints:
- Distance to host
- Water depth compatibility
- Host capacity
- Pressure compatibility
- Parameters:
discoveryLat- discovery latitudediscoveryLon- discovery longitudereservesMMboe- reserves in MMboewaterDepthM- water depth in metershost- potential host facility- Returns:
- screening result with pass/fail and reason
-
screenAllHosts
public List<TiebackAnalyzer.TiebackScreeningResult> screenAllHosts(double discoveryLat, double discoveryLon, double reservesMMboe, double waterDepthM, List<HostFacility> hosts) Screen multiple hosts quickly and return ranked results.- Parameters:
discoveryLat- discovery latitudediscoveryLon- discovery longitudereservesMMboe- reserves in MMboewaterDepthM- water depth in metershosts- list of potential hosts- Returns:
- list of screening results, ranked by estimated NPV
-
estimateQuickCapex
private double estimateQuickCapex(double distanceKm, double waterDepthM) Quick CAPEX estimate for screening. -
estimateQuickNpv
private double estimateQuickNpv(double reservesMMboe, double capexMusd) Quick NPV estimate for screening.
-