Class FiredHeater

All Implemented Interfaces:
Serializable, Runnable, AutoSizeable, CapacityConstrainedEquipment, HeaterInterface, ProcessEquipmentInterface, TwoPortInterface, ProcessElementInterface, SimulationInterface, NamedInterface

public class FiredHeater extends Heater
Duty-controlled fired heater with thermal efficiency modeling.

Models a process heater where the process stream is heated by burning fuel. Unlike a simple Heater which applies duty directly, this class accounts for thermal efficiency, fuel consumption, stack losses, and CO2 emissions.

The user specifies the desired outlet temperature, and the heater calculates the required absorbed duty, fuel consumption (based on thermal efficiency and fuel LHV), and flue gas emissions.

Usage example:


FiredHeater heater = new FiredHeater("Crude Heater", feedStream);
heater.setOutTemperature(273.15 + 350.0); // Outlet temperature in K
heater.setThermalEfficiency(0.85); // 85% efficiency
heater.setFuelLHV(48.0e6); // J/kg (natural gas)
heater.setFuelCO2Factor(2.75); // kg CO2 per kg fuel
heater.run();
double fuelRate = heater.getFuelConsumption("kg/hr");
double co2 = heater.getCO2Emissions("kg/hr");
double firedDuty = heater.getFiredDuty("kW");

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

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • logger

      static org.apache.logging.log4j.Logger logger
      Logger object for class.
    • thermalEfficiency

      private double thermalEfficiency
      Thermal efficiency (fraction, 0.0 to 1.0). Default 0.85.
    • fuelLHV

      private double fuelLHV
      Fuel lower heating value in J/kg. Default 48 MJ/kg (natural gas).
    • fuelCO2Factor

      private double fuelCO2Factor
      CO2 emission factor in kg CO2 per kg fuel. Default 2.75 (natural gas).
    • noxFactor

      private double noxFactor
      NOx emission factor in kg NOx per GJ fired duty. Default 0.08.
    • stackTemperature

      private double stackTemperature
      Stack temperature in K. Default 423.15 K (150 C).
    • absorbedDuty

      private double absorbedDuty
    • firedDuty

      private double firedDuty
    • fuelConsumptionKgPerSec

      private double fuelConsumptionKgPerSec
    • co2EmissionsKgPerSec

      private double co2EmissionsKgPerSec
    • noxEmissionsKgPerSec

      private double noxEmissionsKgPerSec
    • stackLoss

      private double stackLoss
  • Constructor Details

    • FiredHeater

      public FiredHeater(String name)
      Creates a fired heater with the specified name.
      Parameters:
      name - equipment name
    • FiredHeater

      public FiredHeater(String name, StreamInterface inletStream)
      Creates a fired heater with an inlet stream.
      Parameters:
      name - equipment name
      inletStream - inlet process stream
  • Method Details

    • setThermalEfficiency

      public void setThermalEfficiency(double efficiency)
      Sets the thermal efficiency of the fired heater.
      Parameters:
      efficiency - thermal efficiency as fraction (0.0 to 1.0)
    • getThermalEfficiency

      public double getThermalEfficiency()
      Gets the thermal efficiency.
      Returns:
      thermal efficiency as fraction
    • setFuelLHV

      public void setFuelLHV(double lhvJPerKg)
      Sets the fuel lower heating value.
      Parameters:
      lhvJPerKg - fuel LHV in J/kg
    • getFuelLHV

      public double getFuelLHV()
      Gets the fuel lower heating value.
      Returns:
      LHV in J/kg
    • setFuelCO2Factor

      public void setFuelCO2Factor(double factor)
      Sets the CO2 emission factor per kg of fuel burned.
      Parameters:
      factor - kg CO2 per kg fuel
    • setNoxFactor

      public void setNoxFactor(double factor)
      Sets the NOx emission factor per GJ of fired duty.
      Parameters:
      factor - kg NOx per GJ
    • setStackTemperature

      public void setStackTemperature(double temperatureK)
      Sets the stack (flue gas exit) temperature.
      Parameters:
      temperatureK - stack temperature in K
    • getStackTemperature

      public double getStackTemperature()
      Gets the stack temperature.
      Returns:
      stack temperature in K
    • run

      public void run(UUID id)

      In this method all thermodynamic and unit operations will be calculated in a steady state calculation.

      Specified by:
      run in interface SimulationInterface
      Overrides:
      run in class Heater
      Parameters:
      id - UUID
    • getAbsorbedDuty

      public double getAbsorbedDuty(String unit)
      Gets the absorbed duty (heat transferred to process stream).
      Parameters:
      unit - unit string ("W", "kW", "MW", "BTU/hr")
      Returns:
      absorbed duty in specified units
    • getFiredDuty

      public double getFiredDuty(String unit)
      Gets the total fired duty (fuel energy input).
      Parameters:
      unit - unit string ("W", "kW", "MW", "BTU/hr")
      Returns:
      fired duty in specified units
    • getStackLoss

      public double getStackLoss(String unit)
      Gets the stack heat loss.
      Parameters:
      unit - unit string ("W", "kW", "MW", "BTU/hr")
      Returns:
      stack loss in specified units
    • getFuelConsumption

      public double getFuelConsumption(String unit)
      Gets the fuel consumption rate.
      Parameters:
      unit - unit string ("kg/hr", "kg/sec", "tonnes/hr")
      Returns:
      fuel consumption in specified units
    • getCO2Emissions

      public double getCO2Emissions(String unit)
      Gets the CO2 emissions rate.
      Parameters:
      unit - unit string ("kg/hr", "kg/sec", "tonnes/hr")
      Returns:
      CO2 emissions in specified units
    • getNOxEmissions

      public double getNOxEmissions(String unit)
      Gets the NOx emissions rate.
      Parameters:
      unit - unit string ("kg/hr", "kg/sec", "tonnes/hr")
      Returns:
      NOx emissions in specified units
    • convertPower

      private double convertPower(double valueW, String unit)
      Converts power from Watts to the specified unit.
      Parameters:
      valueW - power in Watts
      unit - target unit
      Returns:
      converted value
    • toJson

      public String toJson()
      Returns a JSON report of the fired heater performance.
      Specified by:
      toJson in interface ProcessEquipmentInterface
      Overrides:
      toJson in class Heater
      Returns:
      JSON string with heater performance data