Class ConceptEvaluator

java.lang.Object
neqsim.process.fielddevelopment.evaluation.ConceptEvaluator

public class ConceptEvaluator extends Object
Main orchestrator for field development concept evaluation.

This class is the primary entry point for the Field Development Engine. It coordinates all screening analyses (flow assurance, safety, emissions, economics) and aggregates results into a comprehensive ConceptKPIs object for decision support.

Evaluation Workflow

The evaluator runs the following analyses:

  1. Production KPIs: Calculate plateau rate, field life, and recovery estimates
  2. Flow Assurance: Screen hydrate, wax, corrosion, and other risks
  3. Safety: Assess blowdown requirements, ESD complexity, and H2S considerations
  4. Emissions: Calculate CO2 emissions and intensity
  5. Economics: Estimate CAPEX, OPEX, and unit costs
  6. Scoring: Generate technical, economic, and environmental scores

Scoring System

The evaluator calculates normalized scores (0-1) for concept comparison:

  • Technical Score (35%): Based on flow assurance and safety outcomes
  • Economic Score (40%): Based on CAPEX relative to baseline
  • Environmental Score (25%): Based on CO2 intensity

Usage Examples

Full Evaluation

ConceptEvaluator evaluator = new ConceptEvaluator();
ConceptKPIs kpis = evaluator.evaluate(concept);

// Access individual reports
FlowAssuranceReport fa = kpis.getFlowAssuranceReport();
EconomicsEstimator.EconomicsReport econ = kpis.getEconomicsReport();

// Check warnings
kpis.getWarnings().forEach((category, message) -> {
  System.out.println("WARNING: " + message);
});

// Get overall score
System.out.println("Overall Score: " + kpis.getOverallScore());

Evaluation with Custom Facility

FacilityConfig facility =
    FacilityBuilder.builder().addBlock(BlockConfig.of(BlockType.INLET_SEPARATION))
        .addBlock(BlockConfig.of(BlockType.TEG_DEHYDRATION)).build();

ConceptKPIs kpis = evaluator.evaluate(concept, facility);

Quick Screening (Reduced Fidelity)

ConceptKPIs quickKpis = evaluator.quickScreen(concept);
// Note: Safety assessment not included in quick screen

Thread Safety

This class is stateless and thread-safe. Multiple concepts can be evaluated concurrently using the same evaluator instance, though thermodynamic database operations may require synchronization.

Version:
1.0
Author:
ESOL
See Also:
  • Field Details

    • flowAssuranceScreener

      private final FlowAssuranceScreener flowAssuranceScreener
      Flow assurance screener for hydrate, wax, and corrosion assessment.
    • safetyScreener

      private final SafetyScreener safetyScreener
      Safety screener for blowdown, ESD, and H2S assessment.
    • emissionsTracker

      private final EmissionsTracker emissionsTracker
      Emissions tracker for CO2 calculations.
    • economicsEstimator

      private final EconomicsEstimator economicsEstimator
      Economics estimator for CAPEX/OPEX calculations.
  • Constructor Details

    • ConceptEvaluator

      public ConceptEvaluator()
      Creates a new concept evaluator with default screeners.

      This is the recommended constructor for typical usage. Each screener is instantiated with default parameters suitable for screening-level analysis.

    • ConceptEvaluator

      public ConceptEvaluator(FlowAssuranceScreener flowAssuranceScreener, SafetyScreener safetyScreener, EmissionsTracker emissionsTracker, EconomicsEstimator economicsEstimator)
      Creates a concept evaluator with custom screeners.

      Use this constructor when you need to customize screener behavior, such as using different cost factors or risk thresholds.

      Parameters:
      flowAssuranceScreener - custom flow assurance screener
      safetyScreener - custom safety screener
      emissionsTracker - custom emissions tracker
      economicsEstimator - custom economics estimator
  • Method Details

    • evaluate

      public ConceptKPIs evaluate(FieldConcept concept)
      Evaluates a concept with auto-generated facility configuration.

      The facility configuration is automatically generated based on the concept's reservoir properties and processing requirements. This is suitable for initial screening when detailed facility design is not yet available.

      Parameters:
      concept - field concept to evaluate (must not be null)
      Returns:
      comprehensive concept KPIs including all screening results
      See Also:
    • evaluate

      public ConceptKPIs evaluate(FieldConcept concept, FacilityConfig facilityConfig)
      Evaluates a concept with a provided facility configuration.

      Use this method when you have a specific facility design to evaluate, such as when comparing different processing configurations for the same reservoir.

      Parameters:
      concept - field concept to evaluate (must not be null)
      facilityConfig - facility configuration defining process blocks
      Returns:
      comprehensive concept KPIs including all screening results
    • quickScreen

      public ConceptKPIs quickScreen(FieldConcept concept)
      Performs quick screening without full facility evaluation.

      This method provides a faster, lower-fidelity evaluation that skips safety screening and uses simplified facility assumptions. It's useful for:

      • Initial concept filtering before detailed analysis
      • Rapid sensitivity studies with many variations
      • Early-phase feasibility checks

      Note: The results are marked with a "fidelity" note indicating reduced accuracy. Safety reports are not included in quick screening.

      Parameters:
      concept - field concept to screen
      Returns:
      concept KPIs with reduced fidelity (no safety assessment)
    • calculateProductionKPIs

      private void calculateProductionKPIs(ConceptKPIs.Builder builder, FieldConcept concept)
    • calculateScores

      private void calculateScores(ConceptKPIs.Builder builder, FlowAssuranceReport faReport, SafetyReport safetyReport, EmissionsTracker.EmissionsReport emissionsReport, EconomicsEstimator.EconomicsReport economicsReport)
    • addWarnings

      private void addWarnings(ConceptKPIs.Builder builder, FlowAssuranceReport faReport, SafetyReport safetyReport, EmissionsTracker.EmissionsReport emissionsReport)