Class FieldConcept

java.lang.Object
neqsim.process.fielddevelopment.concept.FieldConcept
All Implemented Interfaces:
Serializable

public final class FieldConcept extends Object implements Serializable
Main field concept definition for rapid field development screening.

A FieldConcept encapsulates all the high-level inputs needed to screen a development option:

  • Reservoir fluid characteristics
  • Well configuration
  • Infrastructure and distances

This concept-first modeling approach enables rapid iteration during early field development phases (concept selection, FEED) where decisions must be made with limited data but need physical consistency.

Example Usage


FieldConcept concept = FieldConcept.builder("Marginal Gas Tieback")
    .reservoir(ReservoirInput.richGas().gor(1200).co2Percent(2.5).waterCut(0.1).build())
    .wells(WellsInput.builder().producerCount(4).thp(120).ratePerWell(1.5e6, "Sm3/d").build())
    .infrastructure(InfrastructureInput.builder().tiebackLength(35).waterDepth(350).build())
    .build();

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

  • Constructor Details

  • Method Details

    • builder

      public static FieldConcept.Builder builder(String name)
      Creates a new builder for FieldConcept.
      Parameters:
      name - concept name
      Returns:
      new builder instance
    • gasTieback

      public static FieldConcept gasTieback(String name, double tiebackKm, int wellCount, double ratePerWellMSm3d)
      Creates a simple gas tieback concept with defaults.
      Parameters:
      name - concept name
      tiebackKm - tieback distance in km
      wellCount - number of wells
      ratePerWellMSm3d - rate per well in MSm3/d
      Returns:
      configured FieldConcept
    • oilDevelopment

      public static FieldConcept oilDevelopment(String name, int wellCount, double ratePerWellBopd, double waterCut)
      Creates a simple oil development concept with defaults.
      Parameters:
      name - concept name
      wellCount - number of wells
      ratePerWellBopd - rate per well in bopd
      waterCut - water cut fraction
      Returns:
      configured FieldConcept
    • gasTieback

      public static FieldConcept gasTieback(String name)
      Creates a simple gas tieback concept with default parameters.
      Parameters:
      name - concept name
      Returns:
      configured FieldConcept
    • oilDevelopment

      public static FieldConcept oilDevelopment(String name)
      Creates a simple oil development concept with default parameters.
      Parameters:
      name - concept name
      Returns:
      configured FieldConcept
    • getId

      public String getId()
    • getName

      public String getName()
    • getDescription

      public String getDescription()
    • getReservoir

      public ReservoirInput getReservoir()
    • getWells

      public WellsInput getWells()
    • getInfrastructure

      public InfrastructureInput getInfrastructure()
    • getTotalProductionRate

      public double getTotalProductionRate()
      Gets the total production rate from all wells.
      Returns:
      total rate in the well's rate unit
    • getProductionRateUnit

      public String getProductionRateUnit()
      Gets the production rate unit.
      Returns:
      rate unit string
    • needsCO2Removal

      public boolean needsCO2Removal()
      Checks if this concept requires CO2 removal.
      Returns:
      true if CO2 > 2%
    • needsH2STreatment

      public boolean needsH2STreatment()
      Checks if this concept requires H2S treatment.
      Returns:
      true if H2S > 0.5%
    • needsH2SRemoval

      public boolean needsH2SRemoval()
      Checks if this concept requires H2S removal.
      Returns:
      true if H2S > 50 ppm (0.005%)
    • hasWaterInjection

      public boolean hasWaterInjection()
      Checks if this concept has water injection.
      Returns:
      true if water injection wells present
    • needsDehydration

      public boolean needsDehydration()
      Checks if this concept requires dehydration.
      Returns:
      true if exporting gas that requires dehydration
    • isSubseaTieback

      public boolean isSubseaTieback()
      Checks if this is a subsea tieback concept.
      Returns:
      true if subsea
    • getWaterDepth

      public double getWaterDepth()
      Gets the water depth in meters.
      Returns:
      water depth
    • getTiebackLength

      public double getTiebackLength()
      Gets the tieback length in km.
      Returns:
      tieback length
    • getSummary

      public String getSummary()
      Generates a summary string for this concept.
      Returns:
      summary description
    • toString

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

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object