Class ProductionProfile.DeclineParameters

java.lang.Object
neqsim.process.util.fielddevelopment.ProductionProfile.DeclineParameters
All Implemented Interfaces:
Serializable
Enclosing class:
ProductionProfile

public static final class ProductionProfile.DeclineParameters extends Object implements Serializable
Container for decline curve parameters.

Immutable class that holds all parameters needed to calculate production rate at any point in time using Arps decline curve equations.

Parameter Guidelines:

Typical decline parameters by reservoir type
Reservoir Type Decline Type D (1/year) b
Solution gas drive Hyperbolic 0.10-0.30 0.3-0.5
Water drive Exponential 0.05-0.15 0
Gas cap drive Hyperbolic 0.15-0.25 0.4-0.6
Tight gas Hyperbolic 0.30-0.60 0.5-0.8
Version:
1.0
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • initialRate

      private final double initialRate
    • declineRate

      private final double declineRate
    • hyperbolicExponent

      private final double hyperbolicExponent
    • type

      private final ProductionProfile.DeclineType type
    • rateUnit

      private final String rateUnit
    • timeUnit

      private final String timeUnit
  • Constructor Details

    • DeclineParameters

      public DeclineParameters(double initialRate, double declineRate, ProductionProfile.DeclineType type, String rateUnit)
      Creates decline parameters with default hyperbolic exponent of 0.5.
      Parameters:
      initialRate - initial production rate (q_i)
      declineRate - nominal decline rate (D), typically per year
      type - decline curve type
      rateUnit - engineering unit for rate (e.g., "Sm3/day", "kg/hr")
    • DeclineParameters

      public DeclineParameters(double initialRate, double declineRate, double hyperbolicExponent, ProductionProfile.DeclineType type, String rateUnit)
      Creates decline parameters with specified hyperbolic exponent.
      Parameters:
      initialRate - initial production rate (q_i)
      declineRate - nominal decline rate (D)
      hyperbolicExponent - Arps b-factor (0 < b < 1 for hyperbolic, ignored for exponential)
      type - decline curve type
      rateUnit - engineering unit for rate (e.g., "Sm3/day", "kg/hr")
    • DeclineParameters

      public DeclineParameters(double initialRate, double declineRate, double hyperbolicExponent, ProductionProfile.DeclineType type, String rateUnit, String timeUnit)
      Creates decline parameters with full specification.
      Parameters:
      initialRate - initial production rate (q_i)
      declineRate - nominal decline rate (D)
      hyperbolicExponent - Arps b-factor (0 < b <= 1 for hyperbolic)
      type - decline curve type
      rateUnit - engineering unit for rate
      timeUnit - time unit for decline rate (e.g., "year", "day")
      Throws:
      IllegalArgumentException - if parameters are invalid
  • Method Details

    • getInitialRate

      public double getInitialRate()
      Gets the initial production rate (q_i).
      Returns:
      initial rate in specified rate units
    • getDeclineRate

      public double getDeclineRate()
      Gets the nominal decline rate (D).
      Returns:
      decline rate in inverse time units (e.g., 1/year)
    • getHyperbolicExponent

      public double getHyperbolicExponent()
      Gets the hyperbolic exponent (b-factor).
      Returns:
      b-factor (0 for exponential, 1 for harmonic, between for hyperbolic)
    • getType

      Gets the decline curve type.
      Returns:
      decline type enum
    • getRateUnit

      public String getRateUnit()
      Gets the rate unit string.
      Returns:
      rate unit (e.g., "Sm3/day")
    • getTimeUnit

      public String getTimeUnit()
      Gets the time unit string.
      Returns:
      time unit (e.g., "year")
    • withInitialRate

      public ProductionProfile.DeclineParameters withInitialRate(double newInitialRate)
      Creates a copy with a different initial rate.
      Parameters:
      newInitialRate - new initial rate
      Returns:
      new DeclineParameters with updated initial rate
    • toString

      public String toString()
      Overrides:
      toString in class Object