Class ProductionProfileSeries

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

public final class ProductionProfileSeries extends Object implements Serializable
Ordered production profile for host base production or satellite production.

The planner aligns profiles by calendar year when possible and otherwise by list index. This keeps screening workflows compact while still allowing explicit year-by-year scheduling.

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

    • serialVersionUID

      private static final long serialVersionUID
      Serialization version UID.
      See Also:
    • name

      private final String name
      Profile name used in reporting.
    • loads

      private final List<ProductionLoad> loads
      Ordered list of production loads.
  • Constructor Details

    • ProductionProfileSeries

      public ProductionProfileSeries(String name)
      Creates an empty production profile.
      Parameters:
      name - profile name used in reports
  • Method Details

    • fromGasRates

      public static ProductionProfileSeries fromGasRates(String name, int startYear, double[] gasRatesMSm3d)
      Creates a gas-only profile from an array of rates.
      Parameters:
      name - profile name
      startYear - first calendar year
      gasRatesMSm3d - gas rates in MSm3/d
      Returns:
      profile containing one load per gas-rate entry
    • fromOilRates

      public static ProductionProfileSeries fromOilRates(String name, int startYear, double[] oilRatesBopd)
      Creates an oil-only profile from an array of rates.
      Parameters:
      name - profile name
      startYear - first calendar year
      oilRatesBopd - oil rates in bbl/d
      Returns:
      profile containing one load per oil-rate entry
    • getName

      public String getName()
      Gets the profile name.
      Returns:
      profile name
    • add

      Adds a production load to the profile.
      Parameters:
      load - production load to append
      Returns:
      this profile for method chaining
    • addPeriod

      public ProductionProfileSeries addPeriod(int year, double gasRateMSm3d, double oilRateBopd, double waterRateM3d, double liquidRateM3d)
      Adds a production period with a default period name.
      Parameters:
      year - calendar year
      gasRateMSm3d - gas rate in MSm3/d
      oilRateBopd - oil rate in bbl/d
      waterRateM3d - water rate in m3/d
      liquidRateM3d - explicit total-liquid rate in m3/d, or zero to infer
      Returns:
      this profile for method chaining
    • addPeriod

      public ProductionProfileSeries addPeriod(String periodName, int year, double gasRateMSm3d, double oilRateBopd, double waterRateM3d, double liquidRateM3d)
      Adds a named production period.
      Parameters:
      periodName - display name for the period
      year - calendar year
      gasRateMSm3d - gas rate in MSm3/d
      oilRateBopd - oil rate in bbl/d
      waterRateM3d - water rate in m3/d
      liquidRateM3d - explicit total-liquid rate in m3/d, or zero to infer
      Returns:
      this profile for method chaining
    • size

      public int size()
      Gets the number of loads in the profile.
      Returns:
      profile size
    • isEmpty

      public boolean isEmpty()
      Checks whether the profile has no loads.
      Returns:
      true if the profile is empty
    • getLoad

      public ProductionLoad getLoad(int index)
      Gets a load by zero-based index.
      Parameters:
      index - zero-based index
      Returns:
      production load
    • getLoadByYear

      public ProductionLoad getLoadByYear(int year)
      Finds a load by calendar year.
      Parameters:
      year - calendar year
      Returns:
      production load for the year, or null if none exists
    • getLoadByYearOrIndex

      public ProductionLoad getLoadByYearOrIndex(int year, int index, String fallbackPeriodName)
      Gets a load by year and falls back to list index.
      Parameters:
      year - calendar year to look up first
      index - zero-based fallback index
      fallbackPeriodName - period name used for a zero fallback load
      Returns:
      matching load or a zero load
    • getLoads

      public List<ProductionLoad> getLoads()
      Gets an unmodifiable view of the loads.
      Returns:
      production loads