Skip to the content.

Field Development Framework Documentation

This folder contains comprehensive documentation for NeqSim’s field development capabilities, enabling the creation of digital field twins that provide consistency from exploration through decommissioning.


Overview Documents

Document Description
DIGITAL_FIELD_TWIN.md Start here! Architecture showing how NeqSim integrates all lifecycle phases
MATHEMATICAL_REFERENCE.md Mathematical foundations for all calculations (EoS, economics, flow)
API_GUIDE.md Detailed usage examples for every class and method

The Digital Field Twin Concept

NeqSim’s strength is providing calculation consistency across the entire field lifecycle:

┌──────────────────────────────────────────────────────────────────────────┐
│                      DIGITAL FIELD TWIN LIFECYCLE                        │
├──────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│  DEVELOPMENT                    OPERATIONS                  LATE-LIFE   │
│  ───────────                    ──────────                  ─────────   │
│                                                                          │
│  ┌─────────┐  ┌─────────┐  ┌───────────┐  ┌────────────┐  ┌──────────┐ │
│  │ Concept │→ │ Select  │→ │  Design   │→ │  Optimize  │→ │ Decom-   │ │
│  │Screening│  │& MCDA   │  │& Execute  │  │& Operate   │  │ mission  │ │
│  └─────────┘  └─────────┘  └───────────┘  └────────────┘  └──────────┘ │
│       │            │             │              │              │        │
│       ▼            ▼             ▼              ▼              ▼        │
│  ┌──────────────────────────────────────────────────────────────────┐  │
│  │                SAME THERMODYNAMIC FOUNDATION                      │  │
│  │  • Same fluid (SystemInterface) throughout lifecycle             │  │
│  │  • Same EoS parameters tuned once, used everywhere               │  │
│  │  • Consistent properties from reservoir to export                │  │
│  └──────────────────────────────────────────────────────────────────┘  │
│                                                                          │
└──────────────────────────────────────────────────────────────────────────┘

Key Integration Points

1. PVT ↔ Process Integration

The same SystemInterface fluid flows through wells, separators, compressors, and pipelines:

// Create fluid once with tuned parameters
SystemInterface reservoir = new SystemSrkCPAstatoil(95, 320);
reservoir.addComponent("methane", 0.70);
// ... configure and tune ...

// Same fluid used throughout
Stream wellStream = new Stream("well", reservoir.clone());
Separator sep = new ThreePhaseSeparator("sep", wellStream);
// Properties remain consistent

2. Reservoir ↔ Facilities Integration

VFP tables ensure the same thermodynamics apply in both domains:

ReservoirCouplingExporter exporter = new ReservoirCouplingExporter(processModel);
exporter.generateVfpProd(1, "PROD-A1");
exporter.exportToFile("vfp.inc", ExportFormat.ECLIPSE_100);
// Reservoir simulator now uses NeqSim-consistent thermodynamics

3. Economics ↔ Technical Integration

Decision support tools use process simulation results directly:

ConceptEvaluator evaluator = new ConceptEvaluator();
ConceptKPIs kpis = evaluator.evaluate(concept);
// Economics (NPV, IRR) derived from technical (production, utilities)

Package Structure

neqsim.process.fielddevelopment/
├── concept/           # Core data structures (FieldConcept, ReservoirInput, etc.)
├── economics/         # NPV, tax, portfolio optimization
│   ├── CashFlowEngine
│   ├── NorwegianTaxModel
│   └── PortfolioOptimizer
├── evaluation/        # Decision support
│   ├── ConceptEvaluator
│   ├── DevelopmentOptionRanker
│   └── MonteCarloRunner
├── facility/          # Process generation
│   ├── ConceptToProcessLinker
│   └── FacilityBuilder
├── network/           # Pipeline network
│   ├── MultiphaseFlowIntegrator
│   └── NetworkSolver
├── reservoir/         # Reservoir coupling
│   ├── ReservoirCouplingExporter
│   └── TransientWellModel
├── screening/         # Technical screening
│   ├── FlowAssuranceScreener
│   ├── ArtificialLiftScreener
│   └── EmissionsTracker
├── subsea/            # Subsea systems
│   └── SubseaProductionSystem
└── tieback/           # Tieback analysis
    ├── TiebackAnalyzer
    └── HostFacility

Quick Start Examples

Evaluate a Field Concept

import neqsim.process.fielddevelopment.concept.*;
import neqsim.process.fielddevelopment.evaluation.*;

FieldConcept concept = FieldConcept.oilDevelopment("My Field", 100.0, 8, 5000.0);
ConceptEvaluator evaluator = new ConceptEvaluator();
evaluator.setOilPrice(75.0);
ConceptKPIs kpis = evaluator.evaluate(concept);

System.out.println("NPV: " + kpis.getNpv() + " MUSD");
System.out.println("IRR: " + kpis.getIrr() * 100 + "%");
System.out.println("CO2 Intensity: " + kpis.getCo2Intensity() + " kg/boe");

Compare Development Options

import neqsim.process.fielddevelopment.evaluation.*;

DevelopmentOptionRanker ranker = new DevelopmentOptionRanker();

DevelopmentOption fpso = ranker.addOption("FPSO");
fpso.setScore(Criterion.NPV, 1200.0);
fpso.setScore(Criterion.CO2_INTENSITY, 12.0);

DevelopmentOption tieback = ranker.addOption("Tieback");
tieback.setScore(Criterion.NPV, 650.0);
tieback.setScore(Criterion.CO2_INTENSITY, 7.0);

ranker.setWeightProfile("balanced");
RankingResult result = ranker.rank();
System.out.println("Recommended: " + result.getRankedOptions().get(0).getName());

Generate Process Model from Concept

import neqsim.process.fielddevelopment.facility.*;

ConceptToProcessLinker linker = new ConceptToProcessLinker();
ProcessSystem process = linker.generateProcessSystem(concept, FidelityLevel.PRE_FEED);
process.run();

double powerMW = linker.getTotalPowerMW(process);
System.out.println("Total Power Required: " + powerMW + " MW");

Topic Document
TPG4230 Course Support TPG4230_SUPPORT_GUIDE.md
Late-Life Operations LATE_LIFE_OPERATIONS.md
Field Development Strategy FIELD_DEVELOPMENT_STRATEGY.md
Integrated Framework INTEGRATED_FIELD_DEVELOPMENT_FRAMEWORK.md

See Also