Class HostFacility

java.lang.Object
neqsim.process.fielddevelopment.tieback.HostFacility
All Implemented Interfaces:
Serializable

public class HostFacility extends Object implements Serializable
Represents an existing host facility with available capacity for tie-backs.

A host facility is an existing offshore installation (platform, FPSO, or onshore terminal) that can receive production from satellite fields. This class captures the key parameters needed for tie-back screening:

  • Location: Geographic coordinates for distance calculations
  • Capacity: Processing limits for gas, oil, water, and liquids
  • Utilization: Current production levels relative to capacity
  • Tie-in requirements: Pressure and temperature constraints

Example Usage

// Create a platform with spare gas capacity
HostFacility platform = HostFacility.builder("Troll A").location(60.6, 3.7).waterDepth(330)
    .gasCapacity(40.0, "MSm3/d").gasUtilization(0.85).minTieInPressure(80).maxTieInPressure(150)
    .build();

// Check spare capacity
double spareGas = platform.getSpareGasCapacity(); // ~6 MSm3/d

// Check if discovery can be accommodated
if (platform.canAcceptGasRate(2.0)) {
  System.out.println("Tieback feasible");
}
Version:
1.0
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • name

      private String name
    • operator

      private String operator
    • type

    • latitude

      private double latitude
      Latitude in decimal degrees (positive = North).
    • longitude

      private double longitude
      Longitude in decimal degrees (positive = East).
    • waterDepthM

      private double waterDepthM
      Water depth in meters.
    • gasCapacityMSm3d

      private double gasCapacityMSm3d
      Maximum gas processing capacity in MSm3/d.
    • gasUtilization

      private double gasUtilization
      Current gas utilization (0-1).
    • oilCapacityBopd

      private double oilCapacityBopd
      Maximum oil processing capacity in bbl/d.
    • oilUtilization

      private double oilUtilization
      Current oil utilization (0-1).
    • waterCapacityM3d

      private double waterCapacityM3d
      Maximum water handling capacity in m3/d.
    • waterUtilization

      private double waterUtilization
      Current water utilization (0-1).
    • liquidCapacityM3d

      private double liquidCapacityM3d
      Maximum total liquid capacity in m3/d (oil + water + condensate).
    • liquidUtilization

      private double liquidUtilization
      Current liquid utilization (0-1).
    • minTieInPressureBara

      private double minTieInPressureBara
      Minimum tie-in pressure in bara.
    • maxTieInPressureBara

      private double maxTieInPressureBara
      Maximum tie-in pressure in bara.
    • maxTieInTemperatureC

      private double maxTieInTemperatureC
      Maximum tie-in temperature in Celsius.
    • processSystem

      private transient ProcessSystem processSystem
      Optional detailed process model for capacity analysis.
  • Constructor Details

    • HostFacility

      public HostFacility(String name)
      Creates a new host facility with the specified name.
      Parameters:
      name - facility name
  • Method Details

    • builder

      public static HostFacility.Builder builder(String name)
      Creates a builder for constructing a HostFacility.
      Parameters:
      name - facility name
      Returns:
      new builder instance
    • getSpareGasCapacity

      public double getSpareGasCapacity()
      Gets spare gas capacity.
      Returns:
      spare gas capacity in MSm3/d
    • getSpareOilCapacity

      public double getSpareOilCapacity()
      Gets spare oil capacity.
      Returns:
      spare oil capacity in bbl/d
    • getSpareWaterCapacity

      public double getSpareWaterCapacity()
      Gets spare water capacity.
      Returns:
      spare water capacity in m3/d
    • getSpareLiquidCapacity

      public double getSpareLiquidCapacity()
      Gets spare liquid capacity.
      Returns:
      spare liquid capacity in m3/d
    • canAcceptGasRate

      public boolean canAcceptGasRate(double additionalRateMSm3d)
      Checks if the facility can accept additional gas production.
      Parameters:
      additionalRateMSm3d - additional gas rate in MSm3/d
      Returns:
      true if capacity is available
    • canAcceptOilRate

      public boolean canAcceptOilRate(double additionalRateBopd)
      Checks if the facility can accept additional oil production.
      Parameters:
      additionalRateBopd - additional oil rate in bbl/d
      Returns:
      true if capacity is available
    • distanceToKm

      public double distanceToKm(double targetLatitude, double targetLongitude)
      Calculates the great-circle distance to another location.
      Parameters:
      targetLatitude - target latitude in degrees
      targetLongitude - target longitude in degrees
      Returns:
      distance in kilometers
    • isPressureAcceptable

      public boolean isPressureAcceptable(double arrivalPressureBara)
      Checks if tie-in pressure is within acceptable range.
      Parameters:
      arrivalPressureBara - expected arrival pressure at host
      Returns:
      true if pressure is acceptable
    • getName

      public String getName()
      Gets the facility name.
      Returns:
      facility name
    • setName

      public void setName(String name)
      Sets the facility name.
      Parameters:
      name - facility name
    • getOperator

      public String getOperator()
      Gets the operator name.
      Returns:
      operator name
    • setOperator

      public void setOperator(String operator)
      Sets the operator name.
      Parameters:
      operator - operator name
    • getType

      public HostFacility.FacilityType getType()
      Gets the facility type.
      Returns:
      facility type
    • setType

      public void setType(HostFacility.FacilityType type)
      Sets the facility type.
      Parameters:
      type - facility type
    • getLatitude

      public double getLatitude()
      Gets the latitude.
      Returns:
      latitude in degrees
    • setLatitude

      public void setLatitude(double latitude)
      Sets the latitude.
      Parameters:
      latitude - latitude in degrees
    • getLongitude

      public double getLongitude()
      Gets the longitude.
      Returns:
      longitude in degrees
    • setLongitude

      public void setLongitude(double longitude)
      Sets the longitude.
      Parameters:
      longitude - longitude in degrees
    • getWaterDepthM

      public double getWaterDepthM()
      Gets the water depth.
      Returns:
      water depth in meters
    • setWaterDepthM

      public void setWaterDepthM(double waterDepthM)
      Sets the water depth.
      Parameters:
      waterDepthM - water depth in meters
    • getGasCapacityMSm3d

      public double getGasCapacityMSm3d()
      Gets the gas capacity.
      Returns:
      gas capacity in MSm3/d
    • setGasCapacityMSm3d

      public void setGasCapacityMSm3d(double gasCapacityMSm3d)
      Sets the gas capacity.
      Parameters:
      gasCapacityMSm3d - gas capacity in MSm3/d
    • getGasUtilization

      public double getGasUtilization()
      Gets the gas utilization.
      Returns:
      gas utilization (0-1)
    • setGasUtilization

      public void setGasUtilization(double gasUtilization)
      Sets the gas utilization.
      Parameters:
      gasUtilization - gas utilization (0-1)
    • getOilCapacityBopd

      public double getOilCapacityBopd()
      Gets the oil capacity.
      Returns:
      oil capacity in bbl/d
    • setOilCapacityBopd

      public void setOilCapacityBopd(double oilCapacityBopd)
      Sets the oil capacity.
      Parameters:
      oilCapacityBopd - oil capacity in bbl/d
    • getOilUtilization

      public double getOilUtilization()
      Gets the oil utilization.
      Returns:
      oil utilization (0-1)
    • setOilUtilization

      public void setOilUtilization(double oilUtilization)
      Sets the oil utilization.
      Parameters:
      oilUtilization - oil utilization (0-1)
    • getMinTieInPressureBara

      public double getMinTieInPressureBara()
      Gets the minimum tie-in pressure.
      Returns:
      minimum tie-in pressure in bara
    • setMinTieInPressureBara

      public void setMinTieInPressureBara(double minTieInPressureBara)
      Sets the minimum tie-in pressure.
      Parameters:
      minTieInPressureBara - minimum tie-in pressure in bara
    • getMaxTieInPressureBara

      public double getMaxTieInPressureBara()
      Gets the maximum tie-in pressure.
      Returns:
      maximum tie-in pressure in bara
    • setMaxTieInPressureBara

      public void setMaxTieInPressureBara(double maxTieInPressureBara)
      Sets the maximum tie-in pressure.
      Parameters:
      maxTieInPressureBara - maximum tie-in pressure in bara
    • getWaterCapacityM3d

      public double getWaterCapacityM3d()
      Gets the water capacity.
      Returns:
      water capacity in m3/d
    • setWaterCapacityM3d

      public void setWaterCapacityM3d(double waterCapacityM3d)
      Sets the water capacity.
      Parameters:
      waterCapacityM3d - water capacity in m3/d
    • getWaterUtilization

      public double getWaterUtilization()
      Gets the water utilization.
      Returns:
      water utilization (0-1)
    • setWaterUtilization

      public void setWaterUtilization(double waterUtilization)
      Sets the water utilization.
      Parameters:
      waterUtilization - water utilization (0-1)
    • getProcessSystem

      public ProcessSystem getProcessSystem()
      Gets the associated process system.
      Returns:
      process system or null
    • setProcessSystem

      public void setProcessSystem(ProcessSystem processSystem)
      Sets the associated process system.
      Parameters:
      processSystem - process system for detailed analysis
    • toString

      public String toString()
      Overrides:
      toString in class Object