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:
| 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 Summary
FieldsModifier and TypeFieldDescriptionprivate final doubleprivate final doubleprivate final doubleprivate final Stringprivate static final longprivate final Stringprivate final ProductionProfile.DeclineType -
Constructor Summary
ConstructorsConstructorDescriptionDeclineParameters(double initialRate, double declineRate, double hyperbolicExponent, ProductionProfile.DeclineType type, String rateUnit) Creates decline parameters with specified hyperbolic exponent.DeclineParameters(double initialRate, double declineRate, double hyperbolicExponent, ProductionProfile.DeclineType type, String rateUnit, String timeUnit) Creates decline parameters with full specification.DeclineParameters(double initialRate, double declineRate, ProductionProfile.DeclineType type, String rateUnit) Creates decline parameters with default hyperbolic exponent of 0.5. -
Method Summary
Modifier and TypeMethodDescriptiondoubleGets the nominal decline rate (D).doubleGets the hyperbolic exponent (b-factor).doubleGets the initial production rate (q_i).Gets the rate unit string.Gets the time unit string.getType()Gets the decline curve type.toString()withInitialRate(double newInitialRate) Creates a copy with a different initial rate.
-
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
-
rateUnit
-
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 yeartype- decline curve typerateUnit- 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 typerateUnit- 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 typerateUnit- engineering unit for ratetimeUnit- 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
-
getTimeUnit
-
withInitialRate
Creates a copy with a different initial rate.- Parameters:
newInitialRate- new initial rate- Returns:
- new DeclineParameters with updated initial rate
-
toString
-