Class DetailedEmissionsCalculator

java.lang.Object
neqsim.process.fielddevelopment.screening.DetailedEmissionsCalculator
All Implemented Interfaces:
Serializable

public class DetailedEmissionsCalculator extends Object implements Serializable
Detailed emissions calculator for oil and gas facilities.

This class provides comprehensive greenhouse gas emissions modeling including:

  • Scope 1: Direct emissions (combustion, flaring, venting, fugitives)
  • Scope 2: Indirect emissions from purchased energy
  • Scope 3: Value chain emissions (optional)
  • Detailed source breakdown: Equipment-level emissions
  • Emission factors: Region and fuel-specific factors
  • Regulatory compliance: EU ETS, EPA, IOGP methods

Emission Categories

Emission Categories
Category Sources Typical Contribution
Combustion Turbines, engines, heaters, boilers 60-80%
Flaring Safety flare, pilot, process upsets 5-20%
Venting Cold vents, tank breathing, process vents 1-10%
Fugitive Leaks from valves, flanges, seals 0.5-3%

Global Warming Potentials (GWP-100)

  • CO2: 1
  • CH4: 28 (AR5) / 25 (AR4)
  • N2O: 265 (AR5) / 298 (AR4)

Usage Example

DetailedEmissionsCalculator calc = new DetailedEmissionsCalculator();

// Set production
calc.setOilProduction(10000, "bbl/day");
calc.setGasProduction(5.0, "MMSm3/day");

// Set combustion sources
calc.addGasTurbine("GT-1", 25.0, "MW"); // 25 MW gas turbine
calc.addGasTurbine("GT-2", 25.0, "MW");
calc.addHeater("Reboiler", 5.0, "MW");

// Set flaring
calc.setFlaringRate(0.02, "MMSm3/day");
calc.setFlareEfficiency(0.98);

// Set fugitives
calc.setFugitiveRate(0.01); // 0.01% of throughput

// Calculate
DetailedEmissionsReport report = calc.calculate();

System.out.println("Scope 1: " + report.getScope1Emissions() + " tCO2e/yr");
System.out.println("Scope 2: " + report.getScope2Emissions() + " tCO2e/yr");
System.out.println("Intensity: " + report.getIntensity() + " kg CO2e/boe");
System.out.println("\nBreakdown:");
for (Map.Entry<String, Double> entry : report.getEmissionsBySource().entrySet()) {
  System.out.println("  " + entry.getKey() + ": " + entry.getValue() + " tCO2e/yr");
}
Version:
1.0
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • GWP_CO2

      private static final double GWP_CO2
      See Also:
    • GWP_CH4

      private static final double GWP_CH4
      See Also:
    • GWP_N2O

      private static final double GWP_N2O
      See Also:
    • NG_CO2_KG_PER_SM3

      private static final double NG_CO2_KG_PER_SM3
      See Also:
    • NG_CH4_G_PER_SM3

      private static final double NG_CH4_G_PER_SM3
      See Also:
    • NG_N2O_G_PER_SM3

      private static final double NG_N2O_G_PER_SM3
      See Also:
    • FLARE_CO2_KG_PER_SM3

      private static final double FLARE_CO2_KG_PER_SM3
      See Also:
    • GT_FUEL_SM3_PER_MWH_SIMPLE

      private static final double GT_FUEL_SM3_PER_MWH_SIMPLE
      See Also:
    • GT_FUEL_SM3_PER_MWH_COMBINED

      private static final double GT_FUEL_SM3_PER_MWH_COMBINED
      See Also:
    • DIESEL_CO2_KG_PER_L

      private static final double DIESEL_CO2_KG_PER_L
      See Also:
    • GRID_FACTORS

      private static final Map<String,Double> GRID_FACTORS
    • oilProductionBblPerDay

      private double oilProductionBblPerDay
    • gasProductionMSm3PerDay

      private double gasProductionMSm3PerDay
    • condensateProductionBblPerDay

      private double condensateProductionBblPerDay
    • combustionSources

    • flaringRateMSm3PerDay

      private double flaringRateMSm3PerDay
    • flareEfficiency

      private double flareEfficiency
    • flareCO2ContentPercent

      private double flareCO2ContentPercent
    • coldVentingRateMSm3PerDay

      private double coldVentingRateMSm3PerDay
    • tankBreathingRateSm3PerDay

      private double tankBreathingRateSm3PerDay
    • processVentingRateSm3PerDay

      private double processVentingRateSm3PerDay
    • fugitiveRatePercent

      private double fugitiveRatePercent
    • flangeCount

      private int flangeCount
    • valveCount

      private int valveCount
    • compressorSealCount

      private int compressorSealCount
    • pumpSealCount

      private int pumpSealCount
    • purchasedElectricityMWh

      private double purchasedElectricityMWh
    • gridRegion

      private String gridRegion
    • producedCO2ContentPercent

      private double producedCO2ContentPercent
    • ventingProducedCO2

      private boolean ventingProducedCO2
    • operatingHoursPerYear

      private double operatingHoursPerYear
  • Constructor Details

    • DetailedEmissionsCalculator

      public DetailedEmissionsCalculator()
      Creates a new detailed emissions calculator.
  • Method Details

    • calculate

      Calculates comprehensive emissions inventory.
      Returns:
      detailed emissions report
    • calculateCombustionEmissions

      private void calculateCombustionEmissions(DetailedEmissionsCalculator.DetailedEmissionsReport report)
      Calculates combustion emissions from all sources.
    • calculateFlaringEmissions

      private void calculateFlaringEmissions(DetailedEmissionsCalculator.DetailedEmissionsReport report)
      Calculates flaring emissions.
    • calculateVentingEmissions

      private void calculateVentingEmissions(DetailedEmissionsCalculator.DetailedEmissionsReport report)
      Calculates venting emissions.
    • calculateFugitiveEmissions

      private void calculateFugitiveEmissions(DetailedEmissionsCalculator.DetailedEmissionsReport report)
      Calculates fugitive emissions using EPA method.
    • calculateScope2Emissions

      private void calculateScope2Emissions(DetailedEmissionsCalculator.DetailedEmissionsReport report)
      Calculates Scope 2 emissions from purchased electricity.
    • calculateAnnualProductionBoe

      private double calculateAnnualProductionBoe()
      Calculates annual production in boe.
    • calculateEmissionsRating

      private String calculateEmissionsRating(double intensity)
      Calculates emissions rating based on intensity.
    • setOilProduction

      public DetailedEmissionsCalculator setOilProduction(double rate, String unit)
      Sets oil production rate.
      Parameters:
      rate - rate value
      unit - unit ("bbl/day", "Sm3/day")
      Returns:
      this for chaining
    • setGasProduction

      public DetailedEmissionsCalculator setGasProduction(double rate, String unit)
      Sets gas production rate.
      Parameters:
      rate - rate value
      unit - unit ("MMSm3/day", "MSm3/day")
      Returns:
      this for chaining
    • addGasTurbine

      public DetailedEmissionsCalculator addGasTurbine(String name, double power, String unit)
      Adds a gas turbine combustion source.
      Parameters:
      name - turbine name
      power - power output
      unit - power unit ("MW", "kW")
      Returns:
      this for chaining
    • addCombinedCycleTurbine

      public DetailedEmissionsCalculator addCombinedCycleTurbine(String name, double power)
      Adds a combined cycle gas turbine.
      Parameters:
      name - unit name
      power - power output (MW)
      Returns:
      this for chaining
    • addHeater

      public DetailedEmissionsCalculator addHeater(String name, double duty, String unit)
      Adds a heater/boiler.
      Parameters:
      name - heater name
      duty - heat duty
      unit - unit ("MW", "kW")
      Returns:
      this for chaining
    • addDieselEngine

      public DetailedEmissionsCalculator addDieselEngine(String name, double fuelRateLitersPerHour)
      Adds a diesel engine.
      Parameters:
      name - engine name
      fuelRateLitersPerHour - fuel consumption rate
      Returns:
      this for chaining
    • setFlaringRate

      public DetailedEmissionsCalculator setFlaringRate(double rate, String unit)
      Sets flaring rate.
      Parameters:
      rate - rate value
      unit - unit ("MMSm3/day", "MSm3/day")
      Returns:
      this for chaining
    • setFlareEfficiency

      public DetailedEmissionsCalculator setFlareEfficiency(double efficiency)
      Sets flare combustion efficiency.
      Parameters:
      efficiency - efficiency (0-1)
      Returns:
      this for chaining
    • setFugitiveRate

      public DetailedEmissionsCalculator setFugitiveRate(double percent)
      Sets fugitive emission rate as percentage of throughput.
      Parameters:
      percent - fugitive rate (%)
      Returns:
      this for chaining
    • setComponentCounts

      public DetailedEmissionsCalculator setComponentCounts(int flanges, int valves, int compressorSeals, int pumpSeals)
      Sets component counts for fugitive emissions calculation.
      Parameters:
      flanges - number of flanges
      valves - number of valves
      compressorSeals - number of compressor seals
      pumpSeals - number of pump seals
      Returns:
      this for chaining
    • setPurchasedElectricity

      public DetailedEmissionsCalculator setPurchasedElectricity(double mwhPerYear, String gridRegion)
      Sets purchased electricity.
      Parameters:
      mwhPerYear - annual electricity consumption (MWh)
      gridRegion - grid region for emission factor
      Returns:
      this for chaining
    • setProducedCO2

      public DetailedEmissionsCalculator setProducedCO2(double percent, boolean venting)
      Sets produced CO2 content.
      Parameters:
      percent - CO2 content in produced gas (%)
      venting - true if vented, false if reinjected
      Returns:
      this for chaining
    • setColdVentingRate

      public DetailedEmissionsCalculator setColdVentingRate(double rate)
      Sets cold venting rate.
      Parameters:
      rate - rate (MSm3/day)
      Returns:
      this for chaining
    • setTankBreathingRate

      public DetailedEmissionsCalculator setTankBreathingRate(double rate)
      Sets tank breathing emissions.
      Parameters:
      rate - rate (Sm3/day)
      Returns:
      this for chaining
    • setOperatingHours

      public DetailedEmissionsCalculator setOperatingHours(double hours)
      Sets operating hours per year.
      Parameters:
      hours - operating hours
      Returns:
      this for chaining