Class ScenarioAnalyzer

java.lang.Object
neqsim.process.fielddevelopment.evaluation.ScenarioAnalyzer
All Implemented Interfaces:
Serializable

public class ScenarioAnalyzer extends Object implements 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:
  • Field Details

  • Constructor Details

    • ScenarioAnalyzer

      public ScenarioAnalyzer(ProcessSystem processSystem)
      Creates a scenario analyzer for a process system.
      Parameters:
      processSystem - the process system to analyze
  • Method Details

    • setFeedStream

      public ScenarioAnalyzer setFeedStream(StreamInterface feedStream)
      Sets the feed stream to modify for scenarios.
      Parameters:
      feedStream - the feed stream
      Returns:
      this for chaining
    • addScenario

      public ScenarioAnalyzer addScenario(String name, ScenarioAnalyzer.ScenarioParameters parameters)
      Adds a scenario to analyze.
      Parameters:
      name - scenario name
      parameters - scenario parameters
      Returns:
      this for chaining
    • clearScenarios

      public ScenarioAnalyzer clearScenarios()
      Clears all scenarios.
      Returns:
      this for chaining
    • runAll

      Runs all scenarios and collects results.
      Returns:
      list of scenario results
    • runScenario

      Runs a single scenario.
      Parameters:
      name - scenario name
      params - 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

      public ScenarioAnalyzer.ScenarioResult getResult(String name)
      Gets results for a specific scenario.
      Parameters:
      name - scenario name
      Returns:
      scenario result or null if not found
    • getResults

      public List<ScenarioAnalyzer.ScenarioResult> getResults()
      Gets all results.
      Returns:
      list of all scenario results
    • generateReport

      public String generateReport()
      Generates a comparison report.
      Returns:
      formatted comparison report