Class ProductionProfileSeries
java.lang.Object
neqsim.process.fielddevelopment.tieback.capacity.ProductionProfileSeries
- All Implemented Interfaces:
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 Summary
FieldsModifier and TypeFieldDescriptionprivate final List<ProductionLoad> Ordered list of production loads.private final StringProfile name used in reporting.private static final longSerialization version UID. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionadd(ProductionLoad load) Adds a production load to the profile.addPeriod(int year, double gasRateMSm3d, double oilRateBopd, double waterRateM3d, double liquidRateM3d) Adds a production period with a default period name.addPeriod(String periodName, int year, double gasRateMSm3d, double oilRateBopd, double waterRateM3d, double liquidRateM3d) Adds a named production period.static ProductionProfileSeriesfromGasRates(String name, int startYear, double[] gasRatesMSm3d) Creates a gas-only profile from an array of rates.static ProductionProfileSeriesfromOilRates(String name, int startYear, double[] oilRatesBopd) Creates an oil-only profile from an array of rates.getLoad(int index) Gets a load by zero-based index.getLoadByYear(int year) Finds a load by calendar year.getLoadByYearOrIndex(int year, int index, String fallbackPeriodName) Gets a load by year and falls back to list index.getLoads()Gets an unmodifiable view of the loads.getName()Gets the profile name.booleanisEmpty()Checks whether the profile has no loads.intsize()Gets the number of loads in the profile.
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
name
Profile name used in reporting. -
loads
Ordered list of production loads.
-
-
Constructor Details
-
ProductionProfileSeries
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 namestartYear- first calendar yeargasRatesMSm3d- 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 namestartYear- first calendar yearoilRatesBopd- oil rates in bbl/d- Returns:
- profile containing one load per oil-rate entry
-
getName
-
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 yeargasRateMSm3d- gas rate in MSm3/doilRateBopd- oil rate in bbl/dwaterRateM3d- water rate in m3/dliquidRateM3d- 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 periodyear- calendar yeargasRateMSm3d- gas rate in MSm3/doilRateBopd- oil rate in bbl/dwaterRateM3d- water rate in m3/dliquidRateM3d- 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
Gets a load by zero-based index.- Parameters:
index- zero-based index- Returns:
- production load
-
getLoadByYear
Finds a load by calendar year.- Parameters:
year- calendar year- Returns:
- production load for the year, or null if none exists
-
getLoadByYearOrIndex
Gets a load by year and falls back to list index.- Parameters:
year- calendar year to look up firstindex- zero-based fallback indexfallbackPeriodName- period name used for a zero fallback load- Returns:
- matching load or a zero load
-
getLoads
Gets an unmodifiable view of the loads.- Returns:
- production loads
-