Skip to the content.

🌱 Emissions & Sustainability

NeqSim provides physics-based emission calculations for offshore oil & gas operations, enabling accurate regulatory reporting and decarbonization planning.

Key Capability: Thermodynamic emission calculations use rigorous phase equilibrium modeling to account for process conditions, fluid composition, and dissolved gases including COβ‚‚β€”factors that simplified handbook correlations may approximate differently.

πŸ“š Documentation

πŸŽ“ Tutorials


Emission Sources Covered

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                 OFFSHORE PLATFORM EMISSIONS                  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚   COMBUSTION     β”‚    VENTING       β”‚     FUGITIVE          β”‚
β”‚   (typically     β”‚    (typically    β”‚     (typically        β”‚
β”‚    dominant)     β”‚    5-20%)        β”‚      <5%)             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ β€’ Gas turbines   β”‚ β€’ Cold vents     β”‚ β€’ Valve/flange leaks  β”‚
β”‚ β€’ Diesel engines β”‚ β€’ Tank breathing β”‚ β€’ Compressor seals    β”‚
β”‚ β€’ Flares         β”‚ β€’ PW degassing   β”‚ β€’ Pump seals          β”‚
β”‚ β€’ Heaters        β”‚ β€’ TEG regen.     β”‚ β€’ Pipe connections    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Source distribution varies significantly by facility type, age, and operations.

NeqSim specializes in venting emissions from:


Regulatory Compliance

Regulation/Framework Jurisdiction NeqSim Capability
Aktivitetsforskriften Β§70 Norway Virtual measurement methodology
EU ETS Directive European Union COβ‚‚ equivalent reporting
EU Methane Regulation 2024/1787 European Union Source-level CHβ‚„ quantification
OGMP 2.0 (voluntary) International Supports Level 4/5 site-specific methods
ISO 14064-1:2018 International Organization-level GHG inventory

Online Emission Calculation & Automated Reporting

NeqSim can be deployed for online emission calculations, enabling real-time monitoring and automated regulatory reporting. This capability transforms emissions management from a periodic reporting exercise into a continuous operational tool.

Field Deployment Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                 ONLINE EMISSION CALCULATION SYSTEM                      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                         β”‚
β”‚   PLANT DATA                    NEQSIM ENGINE              REPORTING    β”‚
β”‚   ──────────                    ─────────────              ─────────    β”‚
β”‚                                                                         β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚   β”‚   SCADA   │───────────────│  Thermodynamic  β”‚      β”‚  Dashboard  β”‚ β”‚
β”‚   β”‚  Real-timeβ”‚  Flow rates   β”‚     Model       β”‚      β”‚  (Real-time)β”‚ β”‚
β”‚   β”‚   tags    β”‚  Pressures    β”‚                 β”‚      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  Temperatures β”‚  β€’ CPA/SRK EoS  β”‚              β”‚       β”‚
β”‚                               β”‚  β€’ SΓΈreide-     β”‚              β–Ό       β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”               β”‚    Whitson      β”‚      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚   β”‚    Lab    │───────────────│  β€’ Multi-stage  │──────│  Automated  β”‚ β”‚
β”‚   β”‚  Analysis β”‚  Compositions β”‚    separation   β”‚      β”‚   Reports   β”‚ β”‚
β”‚   β”‚           β”‚  Water cuts   β”‚                 β”‚      β”‚  (Daily/    β”‚ β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β”‚   Monthly)  β”‚ β”‚
β”‚                                       β”‚                β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                       β”‚                        β”‚       β”‚
β”‚   β”‚ Historian β”‚β—€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                        β–Ό       β”‚
β”‚   β”‚  Archive  β”‚  Store calculated                      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚   β”‚           β”‚  emissions for audit                   β”‚ Regulatory  β”‚ β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                        β”‚ Submission  β”‚ β”‚
β”‚                                                        β”‚             β”‚
β”‚                                                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Thermodynamic Model: SΓΈreide-Whitson

For produced water emission calculations, NeqSim provides the SΓΈreide-Whitson thermodynamic model to account for the effect of formation water salinity on gas solubility (the β€œsalting-out” effect). This model is used in NeqSimLive for real-time emission calculations on offshore platforms.

Key features:

Reference: SΓΈreide, I. & Whitson, C.H. (1992). β€œPeng-Robinson predictions for hydrocarbons, COβ‚‚, Nβ‚‚, and Hβ‚‚S with pure water and NaCl brine”. Fluid Phase Equilibria, 77, 217-240.

πŸ“– Detailed SΓΈreide-Whitson Model Documentation β€” Mathematical formulation, salt type coefficients, validation data, and code examples.


Method Comparison

Aspect Conventional (Handbook) Thermodynamic (NeqSim)
Approach Empirical correlations Rigorous phase equilibrium (CPA-EoS)
COβ‚‚ accounting Simplified factors Explicit component tracking
Salinity effects Typically not included SΓΈreide-Whitson salting-out model
Temperature effects Linear correlations Full equation of state
Computational cost Low (spreadsheet) Moderate (requires simulator)
Regulatory acceptance Widely established Accepted under Aktivitetsforskriften Β§70
Transparency Published factors Open-source algorithms

Quick Start

Python (neqsim-python)

from neqsim import jneqsim

# Create CPA fluid for accurate water-hydrocarbon VLE
fluid = jneqsim.thermo.system.SystemSrkCPAstatoil(273.15 + 80, 30.0)
fluid.addComponent("water", 0.90)
fluid.addComponent("CO2", 0.03)
fluid.addComponent("methane", 0.05)
fluid.addComponent("ethane", 0.015)
fluid.addComponent("propane", 0.005)
fluid.setMixingRule(10)  # CPA mixing rule

# Create stream and separator
Stream = jneqsim.process.equipment.stream.Stream
Separator = jneqsim.process.equipment.separator.Separator
EmissionsCalculator = jneqsim.process.equipment.util.EmissionsCalculator

feed = Stream("PW-Feed", fluid)
feed.setFlowRate(100000, "kg/hr")  # ~100 mΒ³/hr
feed.run()

degasser = Separator("Degasser", feed)
degasser.run()

# Calculate emissions
calc = EmissionsCalculator(degasser.getGasOutStream())
calc.calculate()

print(f"CO2:     {calc.getCO2EmissionRate('tonnes/year'):.0f} tonnes/year")
print(f"Methane: {calc.getMethaneEmissionRate('tonnes/year'):.0f} tonnes/year")
print(f"CO2eq:   {calc.getCO2Equivalents('tonnes/year'):.0f} tonnes/year")

Java

import neqsim.process.equipment.util.EmissionsCalculator;
import neqsim.process.equipment.separator.Separator;

// After setting up your process...
EmissionsCalculator calc = new EmissionsCalculator(separator.getGasOutStream());
calc.calculate();

double co2eq = calc.getCO2Equivalents("tonnes/year");
System.out.println("CO2 Equivalent: " + co2eq + " tonnes/year");

Why NeqSim for Emissions?

🎯 Rigorous Thermodynamics

Physics-based CPA equation of state models water-hydrocarbon phase behavior including associating interactions.

πŸ“Š Comprehensive Accounting

Explicitly models all gas components including COβ‚‚, which can be significant in produced water emissions depending on reservoir fluid composition.

πŸ”“ Open Source

Transparent algorithms auditable by regulators. No vendor lock-in.

πŸš€ Future-Ready

Supports digital twins, live monitoring, online optimization, CO2 and hydrogen value chains.

Online Emission Calculation: Transforming Operator Visibility

The Value of Online Emission Monitoring

Traditional emission reporting is typically retrospective β€” operators compile emission data periodically (monthly, quarterly). Online monitoring provides more frequent visibility:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              PERIODIC vs ONLINE EMISSION MONITORING                     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                         β”‚
β”‚   PERIODIC (Retrospective)             ONLINE (Continuous)              β”‚
β”‚   ───────────────────────────          ────────────────────             β”‚
β”‚                                                                         β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”              β”‚
β”‚   β”‚Month│───▢│Month│───▢│Reportβ”‚      β”‚ Now │───▢│Reviewβ”‚              β”‚
β”‚   β”‚  1  β”‚    β”‚  2  β”‚    β”‚      β”‚      β”‚     β”‚    β”‚      β”‚              β”‚
β”‚   β””β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”˜       β””β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”˜              β”‚
β”‚                              β”‚              β”‚         β”‚                 β”‚
β”‚                              β–Ό              β”‚         β–Ό                 β”‚
β”‚                        "Emissions for       β”‚    "Current emission      β”‚
β”‚                         Q3: X tonnes"       β”‚     rate: Y kg/hr"        β”‚
β”‚                                             β”‚                           β”‚
β”‚   Established regulatory workflow           More frequent feedback      β”‚
β”‚   Aggregated reporting                      Better operations linkage   β”‚
β”‚   Compliance-oriented                       Supports optimization       β”‚
β”‚   Clear audit trail                         Enables trend analysis      β”‚
β”‚                                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Advantages of Online Emission Calculation

πŸ‘οΈ Real-Time Visibility

  • See emissions as they happen, not months later
  • Immediate feedback on operational changes
  • Dashboard showing live COβ‚‚eq/hour

πŸ”— Cause-Effect Understanding

  • Link operational decisions to emission impact
  • Correlate process changes with emission response
  • Data-driven decision making

🎯 Targeted Reduction

  • Identify highest emission sources instantly
  • Focus effort where impact is greatest
  • Track reduction initiatives in real-time

πŸ“ˆ Continuous Improvement

  • More frequent improvement cycles
  • Operational targets with emission KPIs
  • Team engagement through transparency

Operator Empowerment: From Compliance to Optimization

Online emission calculation transforms the operator mindset:

Traditional Approach Online-Enabled Approach
Emissions reported periodically (monthly/quarterly) Emissions calculated continuously
Compliance-focused reporting Combines compliance with operational insight
Targets set during planning Better visibility into emission drivers
Feedback through periodic reports More timely feedback on operational changes
Focus on meeting reporting requirements Enables data-driven emission management

Key Use Cases for Operators

1. Daily Emission Dashboards

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    PLATFORM EMISSION DASHBOARD                          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                         β”‚
β”‚  TODAY: 2026-02-01 14:35                          Target: 500 t COβ‚‚eq   β”‚
β”‚  ═══════════════════════════════════════════════════════════════════    β”‚
β”‚                                                                         β”‚
β”‚  TOTAL EMISSIONS                    BREAKDOWN BY SOURCE                 β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚                     β”‚           β”‚ Turbines      β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘  62%  β”‚  β”‚
β”‚  β”‚    487 t COβ‚‚eq      β”‚           β”‚ Flaring       β–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘  18%  β”‚  β”‚
β”‚  β”‚    ──────────────   β”‚           β”‚ PW Degassing  β–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  12%  β”‚  β”‚
β”‚  β”‚    Target: 500 t    β”‚           β”‚ Fugitive      β–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   5%  β”‚  β”‚
β”‚  β”‚    Status: βœ… ON TRACKβ”‚          β”‚ Other         β–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   3%  β”‚  β”‚
β”‚  β”‚                     β”‚           β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                                β”‚
β”‚                                                                         β”‚
β”‚  TREND (Last 24 Hours)              REDUCTION OPPORTUNITIES             β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚    β•±β•²               β”‚           β”‚ ⚑ Reduce sep pressure by 2 barβ”‚  β”‚
β”‚  β”‚   β•±  β•²    β•±β•²       β”‚           β”‚    Est. saving: 8 t/day        β”‚  β”‚
β”‚  β”‚  β•±    β•²  β•±  β•²  β•±   β”‚           β”‚                                β”‚  β”‚
β”‚  β”‚ β•±      β•²β•±    β•²β•±    β”‚           β”‚ ⚑ Optimize compressor load    β”‚  β”‚
β”‚  β”‚                     β”‚           β”‚    Est. saving: 12 t/day       β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜           β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

2. What-If Analysis

Operators can instantly evaluate emission impact of operational changes:

# Operator wants to know: "What if I increase separator temperature?"
scenarios = [
    {"sep_temp": 70, "description": "Current operation"},
    {"sep_temp": 75, "description": "+5Β°C"},
    {"sep_temp": 80, "description": "+10Β°C"},
    {"sep_temp": 85, "description": "+15Β°C"},
]

print("What-If Analysis: Separator Temperature Impact")
print("=" * 60)
for scenario in scenarios:
    result = evaluate_operation([sep_pressure, scenario['sep_temp']])
    print(f"{scenario['description']:20} | "
          f"Emissions: {result['emissions_co2eq']:,.0f} t/yr | "
          f"Production: {result['gas_rate']:.2f} MSmΒ³/d")

3. Emission Alerts & Anomaly Detection

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        EMISSION ALERT SYSTEM                            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                         β”‚
β”‚  πŸ”΄ ALERT: Methane emissions 35% above baseline                         β”‚
β”‚  ─────────────────────────────────────────────────                      β”‚
β”‚  Time: 14:32 UTC                                                        β”‚
β”‚  Source: HP Separator liquid outlet                                     β”‚
β”‚  Current: 45 kg/hr CHβ‚„    Baseline: 33 kg/hr CHβ‚„                       β”‚
β”‚                                                                         β”‚
β”‚  Possible causes:                                                       β”‚
β”‚  β€’ Separator level too high (check LIC-101)                            β”‚
β”‚  β€’ Gas carry-under to liquid phase                                      β”‚
β”‚  β€’ Changed feed composition                                             β”‚
β”‚                                                                         β”‚
β”‚  Recommended actions:                                                   β”‚
β”‚  1. Check separator level controller output                             β”‚
β”‚  2. Review feed analysis from last sample                               β”‚
β”‚  3. Consider reducing throughput temporarily                            β”‚
β”‚                                                                         β”‚
β”‚  [Acknowledge]  [Investigate]  [Dismiss]                                β”‚
β”‚                                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

4. Shift Handover with Emission Context

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    SHIFT HANDOVER REPORT                                β”‚
β”‚                    Night Shift β†’ Day Shift                              β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                         β”‚
β”‚  EMISSION SUMMARY (Last 12 hours)                                       β”‚
β”‚  ─────────────────────────────────                                      β”‚
β”‚  Total COβ‚‚eq:     245 tonnes (vs target 250) βœ…                         β”‚
β”‚  Methane vented:  12.3 tonnes                                           β”‚
β”‚  Flared gas:      0.8 MSmΒ³                                              β”‚
β”‚                                                                         β”‚
β”‚  KEY EVENTS                                                             β”‚
β”‚  ──────────                                                             β”‚
β”‚  β€’ 02:15 - Reduced flaring by 30% after compressor restart              β”‚
β”‚  β€’ 04:45 - PW degassing spike due to slug arrival (normalized by 05:30) β”‚
β”‚  β€’ 06:00 - Implemented new separator setpoint (emissions -8%)           β”‚
β”‚                                                                         β”‚
β”‚  HANDOVER NOTES                                                         β”‚
β”‚  ──────────────                                                         β”‚
β”‚  β€’ New separator setpoint working well - recommend keeping              β”‚
β”‚  β€’ Watch for another slug expected around 10:00                         β”‚
β”‚  β€’ Turbine B showing higher than normal emissions - maintenance aware   β”‚
β”‚                                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Emission Reduction Strategies Enabled by Online Monitoring

Strategy How Online Monitoring Helps Potential Benefit
Operating Envelope Optimization Identify conditions where production is maintained with lower emissions Site-specific; depends on operating flexibility
Flare Minimization Real-time flare gas tracking enables faster response Depends on current flaring levels
Leak Detection (LDAR) Anomaly detection can flag fugitive emission increases Depends on baseline fugitive levels
Produced Water Management Optimize degassing stages based on modeled dissolved gas Depends on water volume and gas content
Compressor Optimization Balance power consumption vs venting from recycle Depends on compressor operating range
Predictive Scheduling Plan maintenance during low-emission windows Depends on maintenance flexibility

Building an Emission-Aware Culture

Online emission monitoring can support cultural transformation toward emission awareness:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚               EMISSION-AWARE OPERATIONAL CULTURE                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                         β”‚
β”‚  LEVEL 1: AWARENESS                                                     β”‚
β”‚  ─────────────────────                                                  β”‚
β”‚  Real-time emissions visible in control room                            β”‚
β”‚  β†’ Dashboards display current emission rates                           β”‚
β”‚  β†’ Daily reports included in morning meetings                          β”‚
β”‚                                                                         β”‚
β”‚  LEVEL 2: UNDERSTANDING                                                 β”‚
β”‚  ─────────────────────────                                              β”‚
β”‚  Operations understand emission drivers                                 β”‚
β”‚  β†’ Training on emission sources and mechanisms                         β”‚
β”‚  β†’ What-if analysis tools available                                    β”‚
β”‚                                                                         β”‚
β”‚  LEVEL 3: OWNERSHIP                                                     β”‚
β”‚  ─────────────────────                                                  β”‚
β”‚  Teams take responsibility for emission performance                     β”‚
β”‚  β†’ Emission KPIs included in operational targets                       β”‚
β”‚  β†’ Operators propose and test reduction ideas                          β”‚
β”‚                                                                         β”‚
β”‚  LEVEL 4: OPTIMIZATION                                                  β”‚
β”‚  ────────────────────────                                               β”‚
β”‚  Active optimization for reduced emissions                              β”‚
β”‚  β†’ Automated advisory systems with emission constraints                 β”‚
β”‚  β†’ Continuous improvement integrated in daily operations                β”‚
β”‚                                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Implementation Roadmap

Phase Duration Activities Outcome
1. Pilot 1-2 months Deploy NeqSim model for one emission source Proof of concept
2. Expand 2-3 months Add all major emission sources Complete visibility
3. Integrate 1-2 months Connect to SCADA, build dashboards Real-time monitoring
4. Optimize Ongoing Implement reduction strategies Continuous improvement

Support

βœ… Support Infrastructure

Support Channel Description Response
GitHub Issues equinor/neqsim/issues Active maintainers, typically < 48h
GitHub Discussions Q&A forum Community + core team
Equinor Internal Internal Teams channel, expert network Same-day for critical issues
NTNU Collaboration Academic partnership for advanced thermodynamics Research support

βœ… Documentation

Documentation Type Status Location
API Reference βœ… Complete JavaDoc, Reference Manual
Getting Started βœ… Complete Wiki
Emission Calculations βœ… Complete This page + Guide
Interactive Tutorials βœ… Complete Jupyter Notebooks with Colab links
Code Examples βœ… Complete Java + Python examples for all features
Regulatory Context βœ… Complete Norwegian/EU framework documented
Validation Data βœ… Complete Gudrun case study, uncertainty analysis

βœ… Expertise & Learning Path

Time to Competency:

Level Timeframe Deliverable
Basic User 1-2 days Run emission calculations using provided notebooks
Process Engineer 1-2 weeks Build custom process models, interpret results
Developer 2-4 weeks Integrate into applications, extend functionality
Expert 2-3 months Customize thermodynamic models, contribute code

Learning Resources:

  1. Self-Paced
    • Interactive Jupyter notebooks (run in browser via Colab)
    • Step-by-step tutorials with explanations
    • Example code library
  2. Guided
    • Equinor internal training sessions (2-day workshop)
    • NTNU course modules (thermodynamics background)
    • Pair programming with experienced users
  3. Reference

βœ… Integration & Deployment Options

Deployment Complexity Use Case
Python Notebook ⭐ Low Ad-hoc analysis, prototyping
Python Script ⭐ Low Batch processing, automation
Java Application ⭐⭐ Medium Enterprise integration
REST API/Microservice ⭐⭐ Medium Real-time digital twins
Excel Add-in ⭐ Low End-user access (via Python)
Cloud Deployment ⭐⭐ Medium Azure, AWS, Kubernetes

Comparison: NeqSim vs Commercial Alternatives

Aspect NeqSim Commercial Tools
License Cost Free (Apache 2.0) Varies by vendor
Source Code Access Full access Typically limited
Customization Unlimited Vendor-dependent
Audit Trail Git history Vendor-dependent
Regulatory Defense Transparent algorithms, peer review Established vendor support
Long-term Availability Open source, community-maintained Vendor support agreements
Integration Flexibility Java/Python/REST Varies by product
Support Community + Equinor Vendor SLA
Validation/Certification User responsibility Often pre-validated

Production Optimization with Emission & Energy Minimization

The Multi-Objective Challenge

Modern offshore operations face competing objectives that must be optimized simultaneously:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚           MULTI-OBJECTIVE PRODUCTION OPTIMIZATION                       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                         β”‚
β”‚   MAXIMIZE                    MINIMIZE                                  β”‚
β”‚   ────────                    ────────                                  β”‚
β”‚   β€’ Oil/gas production        β€’ COβ‚‚ equivalent emissions                β”‚
β”‚   β€’ Revenue                   β€’ Energy consumption                      β”‚
β”‚   β€’ Export quality            β€’ Flaring/venting                         β”‚
β”‚   β€’ Uptime                    β€’ Operating costs                         β”‚
β”‚                                                                         β”‚
β”‚                     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                 β”‚
β”‚                     β”‚    NEQSIM       β”‚                                 β”‚
β”‚                     β”‚  PROCESS MODEL  β”‚                                 β”‚
β”‚                     β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                 β”‚
β”‚                              β”‚                                          β”‚
β”‚              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                          β”‚
β”‚              β–Ό               β–Ό               β–Ό                          β”‚
β”‚        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”                      β”‚
β”‚        β”‚PRODUCTIONβ”‚    β”‚EMISSIONSβ”‚     β”‚ ENERGY  β”‚                      β”‚
β”‚        β”‚  MODEL   β”‚    β”‚  CALC   β”‚     β”‚ BALANCE β”‚                      β”‚
β”‚        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                      β”‚
β”‚                                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

NeqSim Integrated Optimization Capabilities

NeqSim enables simultaneous optimization of production, emissions, and energy because all three are calculated from the same thermodynamic model:

Capability How NeqSim Supports It
Consistent Material Balance Single process model tracks mass flows for production and emissions
Energy Integration Heat/power duties calculated from same thermodynamic properties
Computational Speed Suitable for online optimization applications
Gradient Information Supports efficient optimization algorithms
What-If Analysis Rapid scenario evaluation for operational decisions

Optimization Problem Formulation

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    PARETO-OPTIMAL OPERATION                             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                         β”‚
β”‚   Multi-Objective Function:                                             β”‚
β”‚                                                                         β”‚
β”‚   minimize  f(x) = [ -Production(x),                                    β”‚
β”‚                      Emissions(x),                                      β”‚
β”‚                      Energy(x) ]                                        β”‚
β”‚                                                                         β”‚
β”‚   subject to:                                                           β”‚
β”‚     β€’ Process constraints (pressures, temperatures, capacities)         β”‚
β”‚     β€’ Product specifications (export quality, water content)            β”‚
β”‚     β€’ Equipment limits (compressor surge, pump curves)                  β”‚
β”‚     β€’ Regulatory limits (emission permits, flare consent)               β”‚
β”‚                                                                         β”‚
β”‚   Decision variables x:                                                 β”‚
β”‚     β€’ Separator pressures and temperatures                              β”‚
β”‚     β€’ Compressor speeds / recycle rates                                 β”‚
β”‚     β€’ Heat exchanger duties                                             β”‚
β”‚     β€’ Choke/valve positions                                             β”‚
β”‚     β€’ Gas lift / injection rates                                        β”‚
β”‚                                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Python Example: Integrated Optimization

from neqsim import jneqsim
from scipy.optimize import minimize, differential_evolution
import numpy as np

# === SETUP NEQSIM PROCESS MODEL ===
def create_process(sep_pressure, sep_temp, compressor_speed):
    """Create offshore process with given operating parameters."""
    
    # Reservoir fluid
    fluid = jneqsim.thermo.system.SystemSrkCPAstatoil(273.15 + 80, 50.0)
    fluid.addComponent("water", 0.15)
    fluid.addComponent("CO2", 0.02)
    fluid.addComponent("methane", 0.60)
    fluid.addComponent("ethane", 0.10)
    fluid.addComponent("propane", 0.08)
    fluid.addComponent("n-butane", 0.05)
    fluid.setMixingRule(10)
    
    # Build process
    Stream = jneqsim.process.equipment.stream.Stream
    Separator = jneqsim.process.equipment.separator.Separator
    Compressor = jneqsim.process.equipment.compressor.Compressor
    
    inlet = Stream("Well-Feed", fluid)
    inlet.setFlowRate(50000, "kg/hr")
    inlet.setTemperature(sep_temp, "C")
    inlet.setPressure(sep_pressure, "bara")
    
    sep = Separator("HP-Sep", inlet)
    
    compressor = Compressor("Export-Comp", sep.getGasOutStream())
    compressor.setOutletPressure(120.0, "bara")
    compressor.setPolytropicEfficiency(0.75)
    
    # Run simulation
    process = jneqsim.process.processmodel.ProcessSystem()
    process.add(inlet)
    process.add(sep)
    process.add(compressor)
    process.run()
    
    return process, sep, compressor

# === OBJECTIVE FUNCTIONS ===
def evaluate_operation(x):
    """Evaluate production, emissions, and energy for given operation."""
    sep_pressure, sep_temp = x
    
    try:
        process, sep, compressor = create_process(sep_pressure, sep_temp, 1.0)
        
        # 1. PRODUCTION: Gas export rate (maximize)
        gas_rate = sep.getGasOutStream().getFlowRate("MSm3/day")
        oil_rate = sep.getLiquidOutStream().getFlowRate("m3/hr")
        
        # 2. EMISSIONS: From liquid degassing (minimize)
        EmissionsCalculator = jneqsim.process.equipment.util.EmissionsCalculator
        calc = EmissionsCalculator(sep.getGasOutStream())
        calc.calculate()
        co2eq = calc.getCO2Equivalents("tonnes/year")
        
        # 3. ENERGY: Compressor power (minimize)
        power_MW = compressor.getPower("MW")
        
        return {
            'gas_rate': gas_rate,
            'oil_rate': oil_rate,
            'emissions_co2eq': co2eq,
            'power_MW': power_MW,
            'feasible': True
        }
    except Exception as e:
        return {'feasible': False, 'error': str(e)}

# === WEIGHTED OBJECTIVE (for single-objective solver) ===
def weighted_objective(x, weights={'production': 1.0, 'emissions': 0.5, 'energy': 0.3}):
    """Combined objective with configurable weights."""
    result = evaluate_operation(x)
    
    if not result['feasible']:
        return 1e10  # Penalty for infeasible
    
    # Normalize and combine (negative production because we maximize it)
    obj = (
        -weights['production'] * result['gas_rate'] / 10.0 +  # Normalize ~10 MSm3/d
        weights['emissions'] * result['emissions_co2eq'] / 10000.0 +  # Normalize ~10k t/yr
        weights['energy'] * result['power_MW'] / 5.0  # Normalize ~5 MW
    )
    return obj

# === OPTIMIZATION ===
# Bounds: [sep_pressure (bara), sep_temp (Β°C)]
bounds = [(20, 80), (40, 100)]

# Run optimization
result = differential_evolution(
    weighted_objective,
    bounds,
    maxiter=50,
    seed=42,
    workers=-1  # Parallel
)

print(f"Optimal separator pressure: {result.x[0]:.1f} bara")
print(f"Optimal separator temperature: {result.x[1]:.1f} Β°C")

# Evaluate optimal point
optimal = evaluate_operation(result.x)
print(f"\nOptimal Operation:")
print(f"  Gas production: {optimal['gas_rate']:.2f} MSm3/day")
print(f"  CO2 equivalent: {optimal['emissions_co2eq']:.0f} tonnes/year")
print(f"  Compressor power: {optimal['power_MW']:.2f} MW")

Pareto Front Analysis

For true multi-objective optimization, generate the Pareto front:

from scipy.optimize import minimize
import matplotlib.pyplot as plt

def generate_pareto_front(n_points=20):
    """Generate Pareto-optimal solutions trading off objectives."""
    
    pareto_points = []
    
    # Sweep emission weight from 0 (production only) to 1 (emissions only)
    for emission_weight in np.linspace(0.0, 1.0, n_points):
        weights = {
            'production': 1.0 - emission_weight,
            'emissions': emission_weight,
            'energy': 0.2  # Fixed energy weight
        }
        
        result = differential_evolution(
            lambda x: weighted_objective(x, weights),
            bounds=[(20, 80), (40, 100)],
            maxiter=30,
            seed=42
        )
        
        if result.success:
            eval_result = evaluate_operation(result.x)
            if eval_result['feasible']:
                pareto_points.append({
                    'pressure': result.x[0],
                    'temperature': result.x[1],
                    'gas_rate': eval_result['gas_rate'],
                    'emissions': eval_result['emissions_co2eq'],
                    'power': eval_result['power_MW'],
                    'emission_weight': emission_weight
                })
    
    return pareto_points

# Generate and plot Pareto front
pareto = generate_pareto_front()

plt.figure(figsize=(10, 6))
plt.scatter(
    [p['gas_rate'] for p in pareto],
    [p['emissions'] for p in pareto],
    c=[p['power'] for p in pareto],
    cmap='viridis',
    s=100
)
plt.colorbar(label='Compressor Power (MW)')
plt.xlabel('Gas Production (MSmΒ³/day)')
plt.ylabel('COβ‚‚ Equivalent Emissions (tonnes/year)')
plt.title('Pareto Front: Production vs Emissions Trade-off')
plt.grid(True, alpha=0.3)
plt.show()

Real-Time Optimization Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              REAL-TIME OPTIMIZATION WITH NEQSIM                         β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                         β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”‚
β”‚  β”‚  SCADA   │────▢│  STATE   │────▢│  NEQSIM  │────▢│OPTIMIZER β”‚       β”‚
β”‚  β”‚   DCS    β”‚     β”‚ESTIMATOR β”‚     β”‚  MODEL   β”‚     β”‚          β”‚       β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜       β”‚
β”‚       β”‚                                                   β”‚             β”‚
β”‚       β”‚           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜             β”‚
β”‚       β”‚           β”‚                                                     β”‚
β”‚       β”‚           β–Ό                                                     β”‚
β”‚       β”‚    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”             β”‚
β”‚       β”‚    β”‚           OPTIMAL SETPOINTS                 β”‚             β”‚
β”‚       β”‚    β”‚  β€’ Separator P/T        β€’ Compressor speed  β”‚             β”‚
β”‚       β”‚    β”‚  β€’ Valve positions      β€’ Heat duties       β”‚             β”‚
β”‚       β”‚    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜             β”‚
β”‚       β”‚           β”‚                                                     β”‚
β”‚       β”‚           β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”               β”‚
β”‚       β”‚           β”‚  β”‚      OBJECTIVE DASHBOARD        β”‚               β”‚
β”‚       β”‚           β”‚  β”‚                                 β”‚               β”‚
β”‚       β”‚           β”‚  β”‚  Production: β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘ 85%    β”‚               β”‚
β”‚       β”‚           β”‚  β”‚  Emissions:  β–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 15%    β”‚               β”‚
β”‚       β”‚           β”‚  β”‚  Energy:     β–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘ 25%    β”‚               β”‚
β”‚       β”‚           β”‚  β”‚                                 β”‚               β”‚
β”‚       β”‚           β”‚  β”‚  COβ‚‚eq Reduced: 2,500 t/month  β”‚               β”‚
β”‚       β”‚           β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜               β”‚
β”‚       β”‚           β”‚                                                     β”‚
β”‚       └───────────┴───────────────▢ CLOSED LOOP                        β”‚
β”‚                                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Potential Benefits of Online Emission Monitoring

Note: Actual benefits depend on facility-specific factors including current monitoring practices, operational flexibility, and emission source distribution.

Metric Potential Benefit Environmental Relevance
Emission Visibility Real-time monitoring vs periodic reporting Enables faster response to deviations
Methane Tracking Source-level attribution High-GWP gas (28Γ— COβ‚‚ over 100 years)
Flare Monitoring Improved flare efficiency tracking Direct combustion emission quantification
Reporting Quality More frequent, data-driven reports Better baseline for improvement tracking

Integration with NeqSim Production Optimizer

NeqSim includes a built-in ProductionOptimizer class that can be extended for multi-objective optimization:

import neqsim.process.processmodel.ProcessSystem;
import neqsim.process.util.optimization.ProductionOptimizer;

// Create process system
ProcessSystem process = new ProcessSystem();
// ... add equipment ...

// Create optimizer with emission constraints
ProductionOptimizer optimizer = new ProductionOptimizer(process);
optimizer.addObjective("gasProduction", "maximize");
optimizer.addObjective("emissions", "minimize");
optimizer.addConstraint("CO2eq", "<=", emissionPermit);

// Run multi-objective optimization
optimizer.runParetoOptimization();
List<Solution> paretoFront = optimizer.getParetoFront();

Documentation Structure

Document Purpose Audience
Offshore Emission Reporting Guide Reference with regulatory framework, methods, API, validation, literature Engineers, Regulators, Auditors
Produced Water Emissions Tutorial Step-by-step Jupyter notebook with runnable code Data Scientists, Developers
Norwegian Methods Comparison Validation against handbook, uncertainty analysis Engineers, Regulators
Java Example Complete Java code sample Java Developers
API Reference EmissionsCalculator class documentation All Developers

Run in Browser (No Installation)

Click to open the tutorial in Google Colab:

Open In Colab


Literature & Standards

Key references for emission calculations:

  1. Kontogeorgis & Folas (2010) - CPA equation of state theory
    DOI: 10.1002/9780470747537

  2. IOGP Report 521 (2019) - E&P emission estimation methods
    IOGP Bookstore

  3. IPCC AR5 (2014) - Global Warming Potentials (GWP)
    IPCC Report
    Note: NeqSim uses AR5 GWP100 values (CHβ‚„=28, Nβ‚‚O=265) by default. AR6 (2021) values (CHβ‚„=27.9) are also available.

  4. SΓΈreide & Whitson (1992) - Peng-Robinson predictions for hydrocarbons in brine
    Fluid Phase Equilibria, 77, 217-240

  5. EU Methane Regulation 2024/1787 - Methane emission requirements
    EUR-Lex

  6. Aktivitetsforskriften Β§70 - Norwegian offshore emission quantification requirements
    Lovdata

See full literature list in the guide.


Contact & Support


This documentation is part of NeqSim, an open-source thermodynamic and process simulation library by Equinor.