Skip to the content.

Sustainability and Emissions Tracking

This module provides CO2 equivalent emissions tracking and energy consumption monitoring for process systems.

Overview

As sustainability becomes central to process design and operation, NeqSim provides:

Classes

EmissionsTracker

Calculates and tracks CO2 equivalent emissions from a ProcessSystem.

Emission Categories

Category Description Example Equipment
FLARING Direct CO2 from flare combustion Flare systems
COMBUSTION Direct CO2 from fuel burning Furnaces, fired heaters
COMPRESSION Indirect from compressor power Gas compressors
EXPANSION Power generated by expanders (negative) Turboexpanders
PUMPING Indirect from pump power Liquid pumps
HEATING Indirect from heater power Electric heaters
COOLING Indirect from cooler power Air coolers, fans
VENTING Direct methane/CO2 venting Vent systems

Note: Expanders generate power, so their emissions contribution is negative, offsetting other electrical consumption.

Usage Example

ProcessSystem process = new ProcessSystem();
// ... configure process with compressors, heaters, etc. ...
process.run();

// Create emissions tracker
EmissionsTracker tracker = new EmissionsTracker(process);

// Set grid emission factor based on location
tracker.setGridEmissionFactor(0.05);  // Norway: ~50 g CO2/kWh
// tracker.setGridEmissionFactor(0.4); // Global average: ~400 g CO2/kWh

// Calculate emissions
EmissionsReport report = tracker.calculateEmissions();

// Print summary
System.out.println(report.getSummary());

// Get specific values
double totalCO2e = report.getTotalCO2e("kg/hr");
double annualTonnes = report.getTotalCO2e("ton/yr");
double flaringOnly = report.getFlaringCO2e("kg/hr");
double totalPower = report.getTotalPower("MW");

// Export for regulatory reporting
report.exportToCSV("emissions_report.csv");

Convenience Methods on ProcessSystem

// Quick emissions calculation with default grid factor
EmissionsReport report = process.getEmissions();

// With custom grid emission factor
EmissionsReport reportNorway = process.getEmissions(0.05);

// Get total CO2 emissions directly
double totalCO2 = process.getTotalCO2Emissions();

EmissionsReport

Detailed breakdown of emissions from a calculation run.

Key Methods

Method Description
getTotalCO2e(unit) Total CO2e in kg/hr, ton/hr, ton/day, ton/yr
getTotalPower(unit) Total power consumption in kW, MW, hp
getFlaringCO2e(unit) Emissions from flaring only
getEmissionsByCategory() Breakdown by category
exportToCSV(path) Export for regulatory reporting
exportToJSON(path) Export to JSON format
toJson() Get report as JSON string
getSummary() Human-readable summary

Example Output

=== Emissions Report: GasExportProcess ===
Timestamp: 2024-01-15T10:30:00Z

Total CO2e: 1250.00 kg/hr (10950.00 tonne/yr)
Total Power: 5200.00 kW (5.20 MW)
Total Heat Duty: 8500.00 kW

Breakdown by Category:
  COMPRESSION: 850.00 kg/hr
  HEATING: 340.00 kg/hr
  COOLING: 60.00 kg/hr

Time-Series Tracking

For continuous monitoring applications:

EmissionsTracker tracker = new EmissionsTracker(process);

// Record snapshots over time
while (running) {
    process.run();
    tracker.recordSnapshot();
    Thread.sleep(60000); // Every minute
}

// Get cumulative emissions
double cumulativeKg = tracker.getCumulativeCO2e();

// Access history
List<EmissionsSnapshot> history = tracker.getHistory();

Grid Emission Factors

The grid emission factor (kg CO2/kWh) varies significantly by region:

Region Factor Notes
Norway 0.02-0.05 Hydropower dominated
France 0.05-0.08 Nuclear dominated
UK 0.20-0.30 Mixed grid
Germany 0.35-0.45 Coal + renewables
USA (avg) 0.40-0.45 Mixed grid
China 0.55-0.65 Coal dominated
Global avg 0.40 Default value

Regulatory Frameworks

The emissions data can be exported for various reporting requirements:

Framework Region Key Metrics
EU ETS Europe Total CO2e, by installation
EPA GHG USA Scope 1, 2, 3 emissions
NGER Australia Facility-level reporting
Carbon Tax Various Total CO2e

Best Practices

  1. Accurate Grid Factors: Use location-specific emission factors
  2. Regular Updates: Recalculate after process changes
  3. Baseline Comparison: Compare alternatives on equal footing
  4. Uncertainty: Consider factor uncertainty in reporting
  5. Scope Classification: Clearly distinguish direct vs indirect

Integration with Design Optimization

// Compare alternatives by emissions
for (ProcessSystem alternative : alternatives) {
    EmissionsReport report = new EmissionsTracker(alternative)
        .calculateEmissions();
    
    System.out.printf("%s: %.0f ton CO2e/yr%n", 
        alternative.getName(),
        report.getTotalCO2e("ton/yr"));
}