Class ScenarioAnalyzer
java.lang.Object
neqsim.process.fielddevelopment.evaluation.ScenarioAnalyzer
- All Implemented Interfaces:
Serializable
Scenario analyzer for production scheduling and what-if analysis.
Supports TPG4230 course requirements for:
- Production scenario comparison (plateau, decline, high water cut)
- Sensitivity analysis on operating parameters
- Time-series KPI extraction
- Export to Excel/Python for scheduling
Example Usage
ScenarioAnalyzer analyzer = new ScenarioAnalyzer(processSystem);
analyzer.addScenario("Base Case", new ScenarioParameters().setOilRate(10000.0).setGOR(150.0));
analyzer.addScenario("High WC", new ScenarioParameters().setOilRate(8000.0).setWaterCut(0.60));
ScenarioResults results = analyzer.runAll();
- Version:
- 1.0
- Author:
- ESOL
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classParameters for a scenario.static classResult from a single scenario run. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate StreamInterfaceprivate final ProcessSystemprivate final List<ScenarioAnalyzer.ScenarioResult> private final Map<String, ScenarioAnalyzer.ScenarioParameters> private static final long -
Constructor Summary
ConstructorsConstructorDescriptionScenarioAnalyzer(ProcessSystem processSystem) Creates a scenario analyzer for a process system. -
Method Summary
Modifier and TypeMethodDescriptionaddScenario(String name, ScenarioAnalyzer.ScenarioParameters parameters) Adds a scenario to analyze.private doublecalculateCO2Emissions(double powerMW) Calculates CO2 emissions from power consumption.private doubleCalculates total cooling duty.private doubleCalculates total heating duty.private doubleCalculates total power consumption from compressors and pumps.Clears all scenarios.Generates a comparison report.Gets results for a specific scenario.Gets all results.runAll()Runs all scenarios and collects results.private ScenarioAnalyzer.ScenarioResultrunScenario(String name, ScenarioAnalyzer.ScenarioParameters params) Runs a single scenario.setFeedStream(StreamInterface feedStream) Sets the feed stream to modify for scenarios.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
processSystem
-
scenarios
-
results
-
feedStream
-
-
Constructor Details
-
ScenarioAnalyzer
Creates a scenario analyzer for a process system.- Parameters:
processSystem- the process system to analyze
-
-
Method Details
-
setFeedStream
Sets the feed stream to modify for scenarios.- Parameters:
feedStream- the feed stream- Returns:
- this for chaining
-
addScenario
Adds a scenario to analyze.- Parameters:
name- scenario nameparameters- scenario parameters- Returns:
- this for chaining
-
clearScenarios
-
runAll
Runs all scenarios and collects results.- Returns:
- list of scenario results
-
runScenario
private ScenarioAnalyzer.ScenarioResult runScenario(String name, ScenarioAnalyzer.ScenarioParameters params) Runs a single scenario.- Parameters:
name- scenario nameparams- scenario parameters- Returns:
- scenario result
-
calculateTotalPower
private double calculateTotalPower()Calculates total power consumption from compressors and pumps.- Returns:
- total power in MW
-
calculateCO2Emissions
private double calculateCO2Emissions(double powerMW) Calculates CO2 emissions from power consumption.- Parameters:
powerMW- power in MW- Returns:
- CO2 emissions in tonnes/day
-
calculateHeatingDuty
private double calculateHeatingDuty()Calculates total heating duty.- Returns:
- heating duty in MW
-
calculateCoolingDuty
private double calculateCoolingDuty()Calculates total cooling duty.- Returns:
- cooling duty in MW (positive value)
-
getResult
Gets results for a specific scenario.- Parameters:
name- scenario name- Returns:
- scenario result or null if not found
-
getResults
Gets all results.- Returns:
- list of all scenario results
-
generateReport
-